labwc 0.6.6 Added - Add `fixedPosition` window-rule property to avoid re-positioning windows on reserved-output-space changes (determined by *<margin>* settings or exclusive layer-shell clients) and to disallow interactive move or resize, for example by alt+press. - Add `Unfocus` action to enable unfocusing windows on desktop click. Issue: #1230 - Add config option `<keyboard layoutScope="window">` to use per-window keyboard layout. Issue #1076 - Support separate horizontal and vertical maximize by adding a `direction` option to actions Maximize and ToggleMaximize. - Add actions GrowToEdge and ShrinkToEdge. Written-by: @digint - Add `snapWindows` option to MoveToEdge action. Written-by: @digint - Add MoveToCursor action. Written-by: @Arnaudv6 - Add config option `<keyboard><numlock>` to enable Num Lock on startup. - Support Meta (M), Hyper (H), Mod1, Mod3, Mod4 and Mod5 modifiers in keybind definitions. Fixes: #1061 - Add themerc 'titlebar.height' option. Written-by: @mozlima - Add If and ForEach actions. Written-by: @consus - Allow referencing the current workspace in actions, for example: `<action name="SendToDesktop" to="current"/>` Fixed - Do not reset XWayland window SSD on unminimize - Keep XWayland stacking order in sync when switching workspaces - Update top-layer visiblity on workspace-switch in order to show top-layer layer-shell clients correctly when there is a window in fullscreen mode on another workspace. Issues: #1040 #1158 - Make interactive window snapping with mouse more intuitive in multi-output setups. Written-by: @tokyo4j - Try to handle missing `set_window_geometry` with Qt apps which occasionally fail to call `set_window_geometry` after a configure request, but correctly update the actual surface extent. Issue: #1194 - Update XWayland stacking order when moving a window to the front/back. - Prevent switching workspaces for always-on-bottom windows. Fixes: #1170 - Fix invisible cursor after wlopm --off && wlopm --on. - When a session is locked using 'session-lock' protocol, reconfigure for output layout changes to avoid incorrect positioning - Account for window base size in resize indicator so that the displayed size exactly matches the terminal grid, for example 80x25. - The following focus related issues: - Allow re-focusing xwayland-unmanaged surfaces in response to pointer action (click or movement if focus-follow-mouse is enabled). This enables clients such as dmenu, rofi and jgmenu to regain keyboard-focus if it was lost to another client. - Fix code paths which could lead to a lock-screen losing focus, making the session impossible to unlock or another surface to gain focus thus breaching the session lock. - Only focus topmost view on unmap if unmapped view was focused. - Fix `xwayland_surface->data` bug relating to unmanaged surfaces. - Fix layer subsurface focus bug to make waybar's minimize-raise work. Fixes: #1131 - Ignore focus change to unmanaged surface belonging to same PID to fix an issue with menus immediately closing in some X11 apps. - Avoid focusing xwayland views that do not want focus using the ICCCM "Globally Active" input model. - Allow re-focus between "globally active" XWayland views of the same PID. - Assume that views that want decorations also want focus - The following keyboard and keybind related issues: - Send pressed keys correctly when focusing new surface. - Refactor handling of pressed/bound keys to send (to client) the release events for any pressed key that was not part of a keybind, typically because an unrelated non-modifier key was pressed before and held during a keybind invocation. Fixes #1091 #1245 - Fix keyboard release event bug after session lock. Fixes: #1114 - Raise xdg and xwayland sub-views correctly relative to other sub-views, by letting the relative stacking order between them change. - Honor initially maximized requests for XWayland views via `_NET_WM_STATE`. - For initially maximized XWayland views, set the stored natural geometry to be output-centered. - Fix regions rounding error sometimes resulting in incorrect gaps between regions. Changed - Move floating windows in response to changes in reserved output space (determined by *<margin>* settings or exclusive layer-shell clients such as panels). Users with window-rules for panels and/or desktops should add the `fixedPosition` property to avoid regression. Issue: #1235 - Restore `SIGPIPE` default handler before exec. Fixes: #1209 - With the introduction of directional Maximize, right-click on the maximize button now toggles horizontal maximize, while middle-click toggles vertical maximize. - Make MoveToEdge snap to the next window edge by default rather than just the screen edge. - Comment out variables in `docs/environment` to avoid users using the file without editing it and ending up with unwanted settings. Fixes: #1011 - Set `_JAVA_AWT_WM_NONREPARENTING=1` unless already set. - This release has seen significant refactoring and minor improvements with respect to window and surface focus (particular thanks to @jlindgren). This work has helped uncover and fix some hard-to-find bugs. We don't believe that there are any regressions, but can't say for sure. - Set Num Lock to enabled by default on start up - Allow switching VT when locked - Use `fnmatch()` for pattern matching instead of `g_pattern_match_simple()` because it is a POSIX-compliant function which has a glob(7) manual page for reference. - Title context is used instead of TitleBar for the default client-menu on click. This means that if a button is right-clicked, the client-menu will not appear anymore. - Always switch to the workspace containing the view being focused.