commit f7f739c0576b4cf2fe9e5748fcdf861c0d970523
parent 5a8f464bc199f94a0a2ee848d249fe9d57b539c6
Author: Drew DeVault <sir@cmpwn.com>
Date: Sat, 15 Aug 2015 11:37:20 -0400
Merge pull request #29 from taiyu-len/master
fixed focus
Diffstat:
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/sway/layout.c b/sway/layout.c
@@ -223,16 +223,17 @@ void unfocus_all(swayc_t *container) {
}
void focus_view(swayc_t *view) {
- sway_log(L_DEBUG, "Setting focus to %p", view);
- if (view->type == C_VIEW) {
- wlc_view_set_state(view->handle, WLC_BIT_ACTIVATED, true);
- wlc_view_bring_to_front(view->handle);
- wlc_view_focus(view->handle);
- }
- // Propagete focus up
+ 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);
+ }
}