diff --git a/intellihide.js b/intellihide.js index fde0801..436e4c8 100644 --- a/intellihide.js +++ b/intellihide.js @@ -203,6 +203,14 @@ var Intellihide = class { () => this._queueUpdatePanelPosition() ] ); + + if (Meta.is_wayland_compositor()) { + this._signalsHandler.add([ + this._panelBox, + 'notify::visible', + () => Utils.setDisplayUnredirect(!this._panelBox.visible) + ]); + } } _onHoverChanged() { diff --git a/taskbar.js b/taskbar.js index 0e3b3a6..e688ee9 100644 --- a/taskbar.js +++ b/taskbar.js @@ -1282,14 +1282,12 @@ var Taskbar = class { else { if (this.forcedOverview) { // force exiting overview if needed - Main.overview.hide(); - this.forcedOverview = false; - } - else { + } else { selector._showAppsButton.checked = false; - this.forcedOverview = false; } + + this.forcedOverview = false; } } } diff --git a/utils.js b/utils.js index e06ea05..284540e 100644 --- a/utils.js +++ b/utils.js @@ -208,6 +208,16 @@ var DisplayWrapper = { } }; +let unredirectEnabled = true +var setDisplayUnredirect = (enable) => { + if (enable && !unredirectEnabled) + Meta.enable_unredirect_for_display(global.display); + else if (!enable && unredirectEnabled) + Meta.disable_unredirect_for_display(global.display); + + unredirectEnabled = enable; +}; + var getSystemMenuInfo = function() { if (Config.PACKAGE_VERSION < '43') return {