mirror of
https://github.com/labwc/labwc.git
synced 2025-11-02 09:01:47 -05:00
xwayland: use wlr_xwayland_surface_offer_focus()
Offer focus by sending WM_TAKE_FOCUS to a client window supporting it. The client may accept or ignore the offer. If it accepts, the surface will emit a focus_in signal notifying the compositor that it has received focus. The compositor should then call wlr_xwayland_surface_activate(surface, true). This is a more compatible method of giving focus to windows using the Globally Active input model (see wlr_xwayland_icccm_input_model()) than calling wlr_xwayland_surface_activate() unconditionally, since there is no reliable way to know in advance whether these windows want to be focused. v2: add caution not to use view_offer_focus() directly v3: remove obsolete comment
This commit is contained in:
parent
95552c261d
commit
c00baa1651
5 changed files with 51 additions and 15 deletions
|
@ -388,6 +388,15 @@ view_is_focusable(struct view *view)
|
|||
return (view->mapped || view->minimized);
|
||||
}
|
||||
|
||||
void
|
||||
view_offer_focus(struct view *view)
|
||||
{
|
||||
assert(view);
|
||||
if (view->impl->offer_focus) {
|
||||
view->impl->offer_focus(view);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* All view_apply_xxx_geometry() functions must *not* modify
|
||||
* any state besides repositioning or resizing the view.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue