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 cc11b63..9963fb4 100644 Binary files a/schemas/gschemas.compiled and b/schemas/gschemas.compiled differ 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 + +