From 8182e0c36b460c95c61df8a00aaf6874fe5437bd Mon Sep 17 00:00:00 2001 From: ItsLemmy Date: Tue, 4 Nov 2025 16:50:17 -0500 Subject: [PATCH] ControlCenter: respect settings for opening position --- Modules/Bar/Widgets/ControlCenter.qml | 10 +++++++++- Modules/Settings/Tabs/ControlCenterTab.qml | 18 +++++++++--------- Services/IPCService.qml | 8 ++++++-- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Modules/Bar/Widgets/ControlCenter.qml b/Modules/Bar/Widgets/ControlCenter.qml index d6950a35..ae009ee1 100644 --- a/Modules/Bar/Widgets/ControlCenter.qml +++ b/Modules/Bar/Widgets/ControlCenter.qml @@ -44,7 +44,15 @@ NIconButton { colorBgHover: useDistroLogo ? Color.mSurfaceVariant : Color.mHover colorBorder: Color.transparent colorBorderHover: useDistroLogo ? Color.mHover : Color.transparent - onClicked: PanelService.getPanel("controlCenterPanel", screen)?.toggle(this) + onClicked: { + var controlCenterPanel = PanelService.getPanel("controlCenterPanel", screen) + if (Settings.data.controlCenter.position === "close_to_bar_button") { + // Willopen the panel next to the bar button. + controlCenterPanel.toggle(this) + } else { + controlCenterPanel.toggle() + } + } onRightClicked: PanelService.getPanel("settingsPanel", screen)?.toggle() IconImage { diff --git a/Modules/Settings/Tabs/ControlCenterTab.qml b/Modules/Settings/Tabs/ControlCenterTab.qml index 01bb894b..c12ef6a2 100644 --- a/Modules/Settings/Tabs/ControlCenterTab.qml +++ b/Modules/Settings/Tabs/ControlCenterTab.qml @@ -135,27 +135,27 @@ ColumnLayout { model: [{ "key": "close_to_bar_button", "name": I18n.tr("options.control-center.position.close_to_bar_button") + }, { + "key": "center", + "name": I18n.tr("options.control-center.position.center") + }, { + "key": "top_center", + "name": I18n.tr("options.control-center.position.top_center") }, { "key": "top_left", "name": I18n.tr("options.control-center.position.top_left") }, { "key": "top_right", "name": I18n.tr("options.control-center.position.top_right") + }, { + "key": "bottom_center", + "name": I18n.tr("options.control-center.position.bottom_center") }, { "key": "bottom_left", "name": I18n.tr("options.control-center.position.bottom_left") }, { "key": "bottom_right", "name": I18n.tr("options.control-center.position.bottom_right") - }, { - "key": "bottom_center", - "name": I18n.tr("options.control-center.position.bottom_center") - }, { - "key": "top_center", - "name": I18n.tr("options.control-center.position.top_center") - }, { - "key": "center", - "name": I18n.tr("options.control-center.position.center") }] currentKey: Settings.data.controlCenter.position onSelected: function (key) { diff --git a/Services/IPCService.qml b/Services/IPCService.qml index aec9fa91..1db68a2e 100644 --- a/Services/IPCService.qml +++ b/Services/IPCService.qml @@ -188,10 +188,14 @@ Item { IpcHandler { target: "controlCenter" function toggle() { - // Will attempt to open the panel next to the bar button if any. root.withTargetScreen(screen => { var controlCenterPanel = PanelService.getPanel("controlCenterPanel", screen) - controlCenterPanel.toggle(null, "ControlCenter") + if (Settings.data.controlCenter.position === "close_to_bar_button") { + // Will attempt to open the panel next to the bar button if any. + controlCenterPanel.toggle(null, "ControlCenter") + } else { + controlCenterPanel.toggle() + } }) } }