From 78740e76cebdbe8f53576fe6ce8bc014e8d61262 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] Disable the hot corner by default Having the hot corner activate the overview works rather poorly with scrolling through the workspaces. We disable the functionality by default. The preference `override-hot-corner` controls the functionality, so set it to false if you want it back. A possibility is having the hot-corner force the top bar to be visible when a fullscreen window has focus, but it's not yet implemented. --- kludges.js | 41 ++++++++++++++++++ schemas/gschemas.compiled | Bin 3964 -> 4028 bytes ....shell.extensions.org-scrollwm.gschema.xml | 5 +++ 3 files changed, 46 insertions(+) diff --git a/kludges.js b/kludges.js index b5c0199..e060c63 100644 --- a/kludges.js +++ b/kludges.js @@ -4,15 +4,53 @@ around these problems. */ +var Extension = imports.misc.extensionUtils.extensions['paperwm@hedning:matrix.org']; + var Meta = imports.gi.Meta; +var Main = imports.ui.main; +var utils = Extension.imports.utils; + +var Convenience = Extension.imports.convenience; +var settings = Convenience.getSettings(); + +function overrideHotCorners() { + for (let corner of Main.layoutManager.hotCorners) { + if (!corner) + return; + + corner._toggleOverview = function() {}; + + corner._pressureBarrier._trigger = function() {}; + } +} + +function disableHotcorners() { + let override = settings.get_boolean("override-hot-corner"); + if (override) { + overrideHotCorners(); + signals.connect(Main.layoutManager, + 'hot-corners-changed', + overrideHotCorners); + } else { + signals.disconnect(Main.layoutManager); + Main.layoutManager._updateHotCorners(); + } +} var orgUpdateState; +var signals; function init() { orgUpdateState = imports.ui.messageTray.MessageTray.prototype._updateState; + signals = new utils.Signals(); } function enable() { + signals.connect(settings, + 'changed::override-hot-corner', + disableHotcorners); + disableHotcorners(); + // 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 +119,7 @@ function enable() { function disable() { imports.ui.messageTray.MessageTray.prototype._updateState = orgUpdateState; + + signals.destroy(); + Main.layoutManager._updateHotCorners(); } 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..071df20 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 + Disable the upper left hot corner + +