From e4b71fe37ce86c332598dc67f645afa05fa48083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Sat, 18 Aug 2018 03:50:30 +0200 Subject: [PATCH] WIP: Make the hot corner show the top bar Having the hot corner activate the overview works rather poorly with scrolling through the workspaces. We override the functionality to instead show the top bar, making it possible to scroll to another workspace if a fullscreen window is active. --- kludges.js | 31 ++++++++++++++++++ schemas/gschemas.compiled | Bin 3964 -> 4028 bytes ....shell.extensions.org-scrollwm.gschema.xml | 5 +++ settings.js | 4 ++- 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/kludges.js b/kludges.js index b5c0199..c0e1ccb 100644 --- a/kludges.js +++ b/kludges.js @@ -4,15 +4,43 @@ around these problems. */ +var Extension = imports.misc.extensionUtils.extensions['paperwm@hedning:matrix.org']; + var Meta = imports.gi.Meta; +var Main = imports.ui.main; +var prefs = Extension.imports.settings.prefs; +var utils = Extension.imports.utils; + +function overrideHotCorners() { + for (let corner of Main.layoutManager.hotCorners) { + if (!corner) + return; + + corner._toggleOverview = function() { + }; + + corner._pressureBarrier._trigger = function() { + this._isTriggered = true; + Extension.imports.topbar.show(); + this._reset(); + }; + } +} var orgUpdateState; +var signals; function init() { orgUpdateState = imports.ui.messageTray.MessageTray.prototype._updateState; + signals = new utils.Signals(); } function enable() { + if (prefs.override_hot_corner) { + overrideHotCorners(); + signals.connect(Main.layoutManager, 'hot-corners-changed', overrideHotCorners); + } + // Don't hide notifications when there's fullscreen windows in the workspace. // Fullscreen windows aren't special in paperWM and might not even be // visible, so hiding notifications makes no sense. @@ -81,4 +109,7 @@ function enable() { function disable() { imports.ui.messageTray.MessageTray.prototype._updateState = orgUpdateState; + + Main.layoutManager._updateHotCorners(); + signals.destroy(); } diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index cc11b6373e77207e8fd000ca569e2f6a59d0bb67..9963fb491ce003c3aac5c331a7739baf4f2a2613 100644 GIT binary patch delta 789 zcmX|s*sA^Uvl`bY6xl7@Zyj4+9S>GCT~1=wS!HCNT}ol9FWWlxeSm z7bS?pIS@QZcdgdauTXNdSl`avIFSzqa? z<+#f3vj@snk^%d`{#|;YomX=kd^NQRmfzY%CiI5P$_BIzKHh(zajW!MHCn+L5J{tUnUOXYj*r`lQkeBk4B8&JDzx!Naf&LH*4JZf93G4-&1}DG?b%QM6WM-Wx z@hs(=(<*Yk010YoUAr(`3M21c7$pB|hglo(3T5YR(F<%ZaO1OSQ$O`&J%1#whEX}L zD9bUe&<~@Sy&~y%t$t3$rWeFm$9HU0gFBvUCeC!lSBbOJHc~89v0_*?T~(1>TGz*q zhS*u;*^XHX6Z|U*oQS(eYdVv+YP=X6%mQ=?bWWC@C;JlG09W7=}M>qSf4aQH&I-W{sFw5nAftCL+?oQiKW-yj()K#@>aCCTWR{qu>(w zkpxSo7OGupX$uYxf{UYWr3lX5giIAd-#426@bbL8_y6C0|95v7z8`^Uq!7E>^i;4?rK} zhdS@|5Tw5TNG3?OU`SpnU=37vJkir4SYKO%bY%d{0MA7f9CrP=JZ3zgSc-9+N%0~GpE;(N5Dm> zH8*uRlXMtzIg6m~+S<_0z zEO*8Aa;l*1^}3$@-gQ?0*XUO-^*I&R!+nv&NGA0zfl{`U&OJdH71f>&f*lZt%|Uau zLHq!I^-H(P{Bj)UYj6o_bx+Ukm%%JFqkSy#B)t#&i{Ls`5A7Mu={f#QumVj_Of_?Q z<~6VmB}^-m_S`im$@-$IJ=;@J<8IG$@C{@R?3DN?(eqtda1CnpM&JA+!IH9#SGP0d Bj?(}D diff --git a/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml b/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml index f88fc2b..d66003d 100644 --- a/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml +++ b/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml @@ -196,6 +196,11 @@ Minimum gap between windows + + true + Make the hot corner force top bar visibility + +