The csd-input-helper utility doesn't detect all potential devices,
leaving users that have suitable hardware unable to make use of it.
To reliably check for devices would require root access to read
/dev/input, which isn't something that can be done inside cinnamon
or from cinnamon-settings (other than with setuid).
Menu applet: Fix bug where menu is partly behind panel (#11788)
* Fix bug where menu is partly behind panel
Call peekPanel() before toggling menu open to ensure menu is positioned correctly.
* panel.js: Use better method to determine when panel is visible.
this._shouldShow is set to false when mouse leaves auto-hide panel even if panel remains open due to an applet being open so use !this._hidden instead.
Instead of starting at the primary window and iterating thru
transients to check for focus, check the MetaDisplay's focus-window
to see if the primary window is an ancestor.
Cjs seems to have an issue nesting the meta_window_foreach_transient
closure inside the notify closure for the window 'appears-focused'
property. This causes a reference count warning for GClosure, and
occasionally a crash.
This is reproducible with a normal GtkDialog with a transient
parent set, and toggle the window list item for the application.
Fix thumbnails not appearing for windows created while menu is open (#11759)
With this change, I don't have #11106 happen anymore.
For me, the bug happened whenever a window is created while the hover
menu is open.
Thumbnails objects were being created and added to the list of
thumbnails in the AppThumbnailHoverMenu. However, then refreshThumbnail
is called, which calls getThumbnail. In getThumbnail, metaWindowActor
is still null and metaWindow.get_compositor_private returned null,
causing it to remove the thumbnail again before it was ever visible.
With the setTimeout(..., 0), getThumbnail is called on the next
event loop turn, so that the actor will be returned by
get_compositor_private.
If the menu isn't open when the window is created, then the window is
added to the queuedWindows array and added later on when the actor is
available.
- Remember the last page shown, and return to it when the Themes
page is revisited.
- Do better with syncing the stack switcher's visibility with the
current page.