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