From ec69988c054705cd5e17f2f7de8cd78928f95a49 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Sat, 18 May 2024 19:30:51 +0700 Subject: [PATCH] fix weird focus for slideleft & slideright (#502) --- .../ags/modules/.commonwidgets/clickcloseregion.js | 11 +++++++++-- .config/ags/modules/.commonwidgets/tabcontainer.js | 2 -- .config/ags/modules/click2close/main.js | 4 +--- .config/ags/modules/sideleft/main.js | 10 +++++++++- .config/ags/modules/sideleft/sideleft.js | 1 - .config/ags/modules/sideright/main.js | 10 +++++++++- 6 files changed, 28 insertions(+), 10 deletions(-) diff --git a/.config/ags/modules/.commonwidgets/clickcloseregion.js b/.config/ags/modules/.commonwidgets/clickcloseregion.js index c31114971..60a80b1fe 100644 --- a/.config/ags/modules/.commonwidgets/clickcloseregion.js +++ b/.config/ags/modules/.commonwidgets/clickcloseregion.js @@ -1,10 +1,17 @@ import App from 'resource:///com/github/Aylur/ags/app.js'; import Widget from 'resource:///com/github/Aylur/ags/widget.js'; +import { monitors } from '../.miscutils/hyprlanddata.js'; const { Box, EventBox } = Widget; -export const clickCloseRegion = ({ name, multimonitor = true, expand = true }) => { +export const clickCloseRegion = ({ name, multimonitor = true, monitor = 0, expand = true, fillMonitor = '' }) => { return EventBox({ - child: Box({ expand: expand }), + child: Box({ + expand: expand, + css: fillMonitor ? ` + min-width: ${fillMonitor.includes('h') ? monitors[monitor].width : 0}px; + min-height: ${fillMonitor.includes('v') ? monitors[monitor].height : 0}px; + ` : null, + }), setup: (self) => self.on('button-press-event', (self, event) => { // Any mouse button if (multimonitor) closeWindowOnAllMonitors(name); else App.closeWindow(name); diff --git a/.config/ags/modules/.commonwidgets/tabcontainer.js b/.config/ags/modules/.commonwidgets/tabcontainer.js index 9dc56f22e..93fa74d56 100644 --- a/.config/ags/modules/.commonwidgets/tabcontainer.js +++ b/.config/ags/modules/.commonwidgets/tabcontainer.js @@ -35,7 +35,6 @@ export const TabContainer = ({ icons, names, children, className = '', setup = ( }), }); const tabIndicatorLine = Box({ - hexpand: true, vertical: true, homogeneous: true, setup: (self) => self.hook(shownIndex, (self) => { @@ -54,7 +53,6 @@ export const TabContainer = ({ icons, names, children, className = '', setup = ( onScrollDown: () => mainBox.nextTab(), child: Box({ vertical: true, - hexpand: true, children: [ tabs, tabIndicatorLine diff --git a/.config/ags/modules/click2close/main.js b/.config/ags/modules/click2close/main.js index 5760abd17..71cbbc448 100644 --- a/.config/ags/modules/click2close/main.js +++ b/.config/ags/modules/click2close/main.js @@ -3,9 +3,7 @@ import Widget from 'resource:///com/github/Aylur/ags/widget.js'; import PopupWindow from '../.widgethacks/popupwindow.js'; import { monitors } from '../.miscutils/hyprlanddata.js'; -const WINDOWS_NEED_CLICK2CLOSE = [ - 'sideleft', 'sideright' -]; +const WINDOWS_NEED_CLICK2CLOSE = []; const range = (length, start = 1) => Array.from({ length }, (_, i) => i + start); diff --git a/.config/ags/modules/sideleft/main.js b/.config/ags/modules/sideleft/main.js index a9ddf2232..3127ea884 100644 --- a/.config/ags/modules/sideleft/main.js +++ b/.config/ags/modules/sideleft/main.js @@ -1,10 +1,18 @@ import PopupWindow from '../.widgethacks/popupwindow.js'; import SidebarLeft from "./sideleft.js"; +import Widget from 'resource:///com/github/Aylur/ags/widget.js'; +const { Box } = Widget; +import clickCloseRegion from '../.commonwidgets/clickcloseregion.js'; export default () => PopupWindow({ keymode: 'on-demand', anchor: ['left', 'top', 'bottom'], name: 'sideleft', layer: 'overlay', - child: SidebarLeft(), + child: Box({ + children: [ + SidebarLeft(), + clickCloseRegion({ name: 'sideleft', multimonitor: false, fillMonitor: 'horizontal' }), + ] + }) }); diff --git a/.config/ags/modules/sideleft/sideleft.js b/.config/ags/modules/sideleft/sideleft.js index d27ad1876..509122641 100644 --- a/.config/ags/modules/sideleft/sideleft.js +++ b/.config/ags/modules/sideleft/sideleft.js @@ -74,7 +74,6 @@ export const widgetContent = TabContainer({ export default () => Box({ // vertical: true, vexpand: true, - hexpand: true, css: 'min-width: 2px;', children: [ widgetContent, diff --git a/.config/ags/modules/sideright/main.js b/.config/ags/modules/sideright/main.js index e961cbb0a..69a58b21e 100644 --- a/.config/ags/modules/sideright/main.js +++ b/.config/ags/modules/sideright/main.js @@ -1,10 +1,18 @@ import PopupWindow from '../.widgethacks/popupwindow.js'; import SidebarRight from "./sideright.js"; +import Widget from 'resource:///com/github/Aylur/ags/widget.js'; +const { Box } = Widget; +import clickCloseRegion from '../.commonwidgets/clickcloseregion.js'; export default () => PopupWindow({ keymode: 'on-demand', anchor: ['right', 'top', 'bottom'], name: 'sideright', layer: 'overlay', - child: SidebarRight(), + child: Box({ + children: [ + clickCloseRegion({ name: 'sideright', multimonitor: false, fillMonitor: 'horizontal' }), + SidebarRight(), + ] + }) });