Detached plugins are breaking ShowDesktop actions because they are "normal" windows
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cairo-Dock Plug-ins |
New
|
Undecided
|
Unassigned |
Bug Description
Hi,
on Openbox, when I show the desktop while having some plug-in detached from the dock, I can't hide the desktop back because the detached plug-ins are windows of type "normal" and they try to show themselves immediately after a ShowDesktop (hence breaking its revert action).
Dana Jansens, the Openbox developer says:
------------------
So right, because openbox hides "normal" windows, it hides the clock. The clock then immediately shows itself again, causing openbox to not restore stuff.
I think the clock should be a type "dock" or type "desktop" window (depending if they want it above or below other windows).
Otherwise, if the window is going to be a "normal" window, it shouldn't try to prevent itself from being hidden.
[...]
The clock plugin is actually doing a MapRequest, and then also a NET_ACTIVE_WINDOW request when it is hidden, which also causes it to take focus. It seems rather misbehaved in this regard.
-------------------
You can check his full diagnosis of the situation on the Openbox bug report, and also in particular in this comment, he gives debug output: https:/
Note: I am not sure if this is specific to some plug-ins. It has been verified by myself with the clock and the notification area plug-ins at least (and the OpenBox maintainer saw also the behavior with the "Desktop Pager"). I have not tried to detach exhaustively all plug-ins but it looks kind of general.
Tested using the bazaar development branch.
$ cairo-dock -v
3.2.99.beta2
Distribution: Linux Mint 15
Window Manager: openbox
Reproduction Steps:
1/ openbox with cairo dock. Have the clock plug-in detached and shown on the desktop;
2/ have some normal windows opened;
3/ Show the desktop using openbox ToggleShowDesktop action; => the windows hide, as expected
4/ Try to "unshow" the desktop by repeating the ToggleShowDesktop action.
Expected result: the previously hidden window should unhide so that you get back to state of the desktop in step 2/.
Actual Result: all windows stay hidden.
Note: I have tried also with the Cinnamon desktop.
What would happen there is that the detached clock plug-in would also be minimized by a call to ShowDesktop, which is also not expected (at least I think). I expect my detached cairo-dock plug-in to "belong to the desktop" and stay on the desktop when I "show" it, without blocking the revert "unshow" action.