labwc/include
tokyo4j bad788ccdd Clear keyboard/pointer focus on Move/Resize, window switcher and menu
The previous revert fixed the problem of stuck modifier keys with
keybinds in Blender, but made Firefox show its menu bar with Alt-*
keybinds. This is fundamentally inevitable due to the limitation of
wayland protocol, but at least for the default Alt-Tab keybind for
window switcher, we can mitigate this problem by clearing the keyboard
focus when the window switcher is activated. This is what KWin does, and
we decided to follow that.

So in this commit, keyboard and pointer focus are temporarily cleared
while Move/Resize, window switcher and menu interactions and restored
after them. We slightly deviate from KWin as KWin doesn't clear the
keyboard focus while Move/Resize, but it solves our existing problem
that Firefox shows its menu bar after dragging it with default Alt-Drag
mousebind, and this is what Mutter does.

We considered other solutions, but they don't work well:
1. Send wl_keyboard.{leave,enter} every time keybinds/mousebinds are
   triggered. This solves the Firefox's menu bar problem, but that
   sounds like a workaround and sending unnecessary events every time is
   not desirable.
2. Send release events for both modifiers and keys even when they are
   bound to keybinds. This is what Mutter is doing, but it looks like an
   implementation issue and violates wayland protocol.
2024-12-29 16:27:34 +09:00
..
common ssd: rework titlebar button rendering 2024-12-23 18:11:32 +09:00
config rcxml.c: fix mem leak when deduplicating keybinds 2024-11-16 22:13:17 +00:00
img ssd: rework titlebar button rendering 2024-12-23 18:11:32 +09:00
input Revert "keyboard: include pressed modifiers in bound set" 2024-12-29 16:27:34 +09:00
menu menu: improve algorithm for menu placement with xdg-positioner 2024-12-15 11:43:23 +09:00
protocols ext-workspace protocol implementation 2024-12-23 04:14:53 +01:00
action.h Refactor the logic of placing client-menu with ShowMenu action 2024-09-21 18:07:34 +01:00
buffer.h ssd: rework titlebar button rendering 2024-12-23 18:11:32 +09:00
debug.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
decorations.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
desktop-entry.h ssd: rework titlebar button rendering 2024-12-23 18:11:32 +09:00
dnd.h chase (dnd): refactor to use wlroot's scene_drag_icon 2023-12-03 18:24:26 +00:00
edges.h snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
foreign-toplevel-internal.h foreign-toplevel: add ext-toplevel-list support 2024-11-09 20:06:19 +00:00
foreign-toplevel.h foreign-toplevel: create generic abstraction 2024-11-09 20:06:19 +00:00
idle.h Add support for ext_idle_notify_v1.. 2023-07-09 08:26:33 +01:00
labwc.h Clear keyboard/pointer focus on Move/Resize, window switcher and menu 2024-12-29 16:27:34 +09:00
layers.h layer: update pointer focus on popup destruction 2024-12-20 00:43:06 +09:00
magnifier.h backend/drm: Implement support for renderer loss recovery 2024-07-23 14:44:31 +02:00
meson.build Make xwayland support optional 2020-12-30 10:29:21 +00:00
node.h node: add node_scaled_scene_buffer_from_node 2024-12-23 18:11:32 +09:00
osd.h osd: add desktop entry name option 2024-11-19 18:36:54 +01:00
output-state.h output: remove ported wlr_output functions 2024-10-29 21:39:19 +00:00
output-virtual.h Add optional headless fallback output 2024-03-08 13:54:13 +01:00
overlay.h overlay: allow to draw both/either of filled/outlined rectangle 2024-04-22 19:22:23 +01:00
placement.h view: honor automatic placement when adjusting floating geometry 2023-12-30 16:50:09 +00:00
regions.h overlay: add snap-to-edge overlay (PR #1652) 2024-04-05 04:35:31 +02:00
resistance.h interactive: allow moving horizontally/vertically maximized window 2024-08-26 20:30:22 +02:00
resize-indicator.h Replace _ with - in source file names 2024-05-22 07:10:51 +01:00
resize-outlines.h Implement <resize><drawContents> 2024-06-15 21:17:01 +01:00
session-lock.h session-lock: restore focused view on unlock 2024-07-07 15:48:32 +09:00
snap-constraints.h snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
snap.h snap: cache and ignore last-snapped edge when growing or shrinking 2024-04-10 23:30:28 +01:00
ssd-internal.h ssd: rework titlebar button rendering 2024-12-23 18:11:32 +09:00
ssd.h query: support additional conditions for matching clients 2024-10-30 14:30:26 -04:00
theme.h ssd: rework titlebar button rendering 2024-12-23 18:11:32 +09:00
view-impl-common.h view: commonize sub-view logic in view_move_to_front/back() 2023-10-21 15:40:56 +01:00
view.h view: s/scene_node/content_node/ 2024-12-14 12:03:58 +09:00
window-rules.h Revert "keyboard: add window rule to send release-events (#2377)" 2024-12-29 16:27:34 +09:00
workspaces.h ext-workspace protocol integration 2024-12-23 04:14:53 +01:00
xwayland.h xwayland: set initial geometry in map_request handler 2024-07-19 22:40:43 +01:00