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
+
+