mirror of
https://github.com/swaywm/sway.git
synced 2024-12-27 15:36:29 +01:00
fixed focus
This commit is contained in:
parent
cd0cdc28aa
commit
f3a970e24e
1 changed files with 11 additions and 14 deletions
|
@ -223,20 +223,17 @@ void unfocus_all(swayc_t *container) {
|
|||
}
|
||||
|
||||
void focus_view(swayc_t *view) {
|
||||
sway_log(L_DEBUG, "Setting focus for %p", view);
|
||||
if (view == &root_container) {
|
||||
// Propegate wayland focus down
|
||||
swayc_t *child = view->focused;
|
||||
while (child && child->type != C_VIEW) {
|
||||
child = child->focused;
|
||||
}
|
||||
if (child) {
|
||||
wlc_view_set_state(child->handle, WLC_BIT_ACTIVATED, true);
|
||||
wlc_view_focus(child->handle);
|
||||
}
|
||||
return;
|
||||
sway_log(L_DEBUG, "Setting focus for %p", view);
|
||||
while (view != &root_container) {
|
||||
view->parent->focused = view;
|
||||
view = view->parent;
|
||||
}
|
||||
while (view && view->type != C_VIEW) {
|
||||
view = view->focused;
|
||||
}
|
||||
if (view) {
|
||||
wlc_view_set_state(view->handle, WLC_BIT_ACTIVATED, true);
|
||||
wlc_view_focus(view->handle);
|
||||
}
|
||||
view->parent->focused = view;
|
||||
focus_view(view->parent);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue