mirror of
https://github.com/labwc/labwc.git
synced 2026-03-15 05:33:53 -04:00
xwayland: assume views wanting decorations also want focus
Assume that Globally Active xwayland views do want focus if they want
window decorations (according to _MOTIF_WM_HINTS). This is a stop-gap
fix to ensure that various applications (mainly Java-based ones such as
IntelliJ IDEA) get focus normally and appear in the window switcher. It
would be better to match based on _NET_WM_WINDOW_TYPE instead, but that
property isn't currently available through wlroots API.
Fixes (partially): 7e72bf975f
("view/xwayland: avoid focusing views that don't want focus")
This commit is contained in:
parent
cf72d01f0c
commit
8e2ec3437b
1 changed files with 16 additions and 4 deletions
|
|
@ -66,12 +66,24 @@ xwayland_view_wants_focus(struct view *view)
|
||||||
* should respond with a SetInputFocus request.
|
* should respond with a SetInputFocus request.
|
||||||
*
|
*
|
||||||
* [Currently, labwc does not fully support clients voluntarily
|
* [Currently, labwc does not fully support clients voluntarily
|
||||||
* taking focus via the WM_TAKE_FOCUS + SetInputFocus mechanism
|
* taking focus via the WM_TAKE_FOCUS + SetInputFocus mechanism.
|
||||||
* and avoids automatically focusing Globally Active windows.
|
* Instead, we try to guess whether the window wants focus based
|
||||||
* This may change in future.]
|
* on some heuristics -- see below.]
|
||||||
*/
|
*/
|
||||||
case WLR_ICCCM_INPUT_MODEL_GLOBAL:
|
case WLR_ICCCM_INPUT_MODEL_GLOBAL:
|
||||||
return VIEW_WANTS_FOCUS_OFFER;
|
/*
|
||||||
|
* Assume the window does want focus if it wants window
|
||||||
|
* decorations (according to _MOTIF_WM_HINTS). This is
|
||||||
|
* a stop-gap fix to ensure that various applications
|
||||||
|
* (mainly Java-based ones such as IntelliJ IDEA) get
|
||||||
|
* focus normally and appear in the window switcher. It
|
||||||
|
* would be better to match based on _NET_WM_WINDOW_TYPE
|
||||||
|
* instead, but that property isn't currently available
|
||||||
|
* through wlroots API.
|
||||||
|
*/
|
||||||
|
return (xsurface->decorations ==
|
||||||
|
WLR_XWAYLAND_SURFACE_DECORATIONS_ALL) ?
|
||||||
|
VIEW_WANTS_FOCUS_ALWAYS : VIEW_WANTS_FOCUS_OFFER;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* No Input - The client never expects keyboard input.
|
* No Input - The client never expects keyboard input.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue