bismuth icon indicating copy to clipboard operation
bismuth copied to clipboard

[Bug]: "Floating windows always on top" option doesn't work for some windows

Open ikajdan opened this issue 4 years ago • 2 comments

Summary

Plasma shell configuration windows aren't kept on top despite the setting turned on.

Steps to Reproduce

  1. Make sure that the option "Floating windows always on top" is checked.
  2. Open some window in tiling mode.
  3. Right-click on the system tray (also works with the system clock widget).
  4. From the menu choose "Configure System Tray...".
  5. Click on the tiled window and notice how the configuration page gets overlapped.

Expected behavior

Floating windows always stay on top.

Screenshots

No response

Bismuth version

v2.0.0

KDE Plasma version

5.22.5

The platform KWin is running on

X11

Additional context

No response

ikajdan avatar Nov 06 '21 07:11 ikajdan

This probably happens, because the class of the popup of the window is plasmashell, which is placed in the ignored bin to not break the Plasma widgets and panels.

Perhaps, if the unique combo of window properties is found for these types of windows, they could be popped out of the "ignore bin".

gikari avatar Nov 07 '21 12:11 gikari

Here is the part of the xprop output:

_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE

So I have tried to add (resourceClass === "plasmashell" && !this.client.resizeable) || in here, and it started to tile those windows correctly, however it now tries to tile panel's toolbox in the edit mode:

_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DOCK
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP

I don't know why, since it doesn't contain the _NET_WM_ACTION_RESIZE property.

The question is how can I select windows based on the _NET_WM_WINDOW_TYPE. Also, how can I list all the properties of the Client?

--- Edit: just found this. It would be nice to have it linked in the CONTRIBUTING.MD, also how to enable logging.

ikajdan avatar Nov 12 '21 21:11 ikajdan