when a window is hidden e.g. on focus out it will still appear in the
compositor's window actors list, however its monitor field is already
unset. This will lead to a crash if an unmanaged window is in the window
actors list and we call meta_window_get_monitor() on its metawindow.
This updates the window switcher to use the latest API features of mutter, probably most importantly removing block on the keybindings while the switcher is active and getting the keybindings directly from mutter instead of trying to interpret key events. It also moves around a lot of code to improve the code structure and hopefully provide a faster startup (e.g. we were doing blocking I/O to count the plank dock items when starting to alt-tab). For easier handling a destroy-on-unmanaged property to both WindowIcon and SafeWindowClone was added.
On the user-facing side, this also introduces support for different plank positions on the screen.
Add docs to WindowManager interface, rework modal mode handling API and add functionality to control keybinding filtering, add interface to properly replace core components with plugins.
This implements activation of the "default" action and adds the "actions" capability
to the server in order to make all apps set their actions if they have any.
This implements activation of the "default" action and adds the "actions" capability
to the server in order to make all apps set their actions if they have any.
Rename now internal InputArea.HOTCORNER to DEFAULT for a more fitting description since
it is used by plugins as well and not just HOTCORNERS in the "default" mode.
Fix InputArea.NONE being always assigned when no hotcorners are configured.
Plugins won't need access to the InputArea functions since they're all handled within
the wm and reconfigured when the plugin changes its area or the wm's modal mode.
The close button would be beyond the clip region of the stack for the first notification
so we have to move them down slightly in order to prevent it from getting cut off.
Adding a delay should help preventing accidentally closing a workspace.
Checking the condition whether a close button should be shown in a central place fixes the button
appearing after clicking on the last workspace.