From 4f91e0668ace88a4c4022a705d00b8340cac607c Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Thu, 4 May 2023 16:33:24 +0200 Subject: [PATCH] :beetle: Fix wayland-window picking --- docs/changelog.md | 1 + src/WindowPicker.js | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 4c02fe4..f911eed 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -12,6 +12,7 @@ SPDX-License-Identifier: CC-BY-4.0 #### Bug Fixes * Fixed an issue which made windows invisible which did not set the `WM_CLASS` X11 property correctly. +* Fixed an issue which made window-picking of Wayland windows impossible on GNOME 44. ## [Burn My Windows 30](https://github.com/schneegans/Burn-My-Windows/releases/tag/v30) diff --git a/src/WindowPicker.js b/src/WindowPicker.js index 61cbc7d..ae4e861 100644 --- a/src/WindowPicker.js +++ b/src/WindowPicker.js @@ -57,15 +57,18 @@ var WindowPicker = class WindowPicker { .filter(e => e.toString().includes('lookingGlass_RedBorderEffect')) .forEach(e => target.remove_effect(e)); - let actor = target; if (target.toString().includes('MetaSurfaceActor')) { - actor = target.get_parent(); + target = target.get_parent(); + } + + if (target.toString().includes('ContainerActor')) { + target = target.get_parent(); } let wmClass = 'window-not-found'; - if (actor.toString().includes('WindowActor') && - actor.meta_window.get_wm_class() != '') { - wmClass = actor.meta_window.get_wm_class(); + if (target.toString().includes('WindowActor') && + target.meta_window.get_wm_class() != '') { + wmClass = target.meta_window.get_wm_class(); } this._dbus.emit_signal('WindowPicked', new GLib.Variant('(s)', [wmClass]));