diff options
author | emersion <contact@emersion.fr> | 2018-02-27 09:47:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-27 09:47:23 +0100 |
commit | c2ba1869ce0ffd0e21238c8a4454ac29215ff7d0 (patch) | |
tree | 87c2ea4b7a0a75f21a3868e554bb50df1015615a /rootston | |
parent | 1171368cfca8e0af9a047d71cbcd40343b486db1 (diff) | |
parent | bb676013ed1b1b48847694a2159e3b009636b181 (diff) |
Merge pull request #670 from Ongy/xwayland_unmanaged
add xwayland unmanaged tests to support dmenu
Diffstat (limited to 'rootston')
-rw-r--r-- | rootston/desktop.c | 6 | ||||
-rw-r--r-- | rootston/seat.c | 2 | ||||
-rw-r--r-- | rootston/xwayland.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/rootston/desktop.c b/rootston/desktop.c index b42a71a2..3628b051 100644 --- a/rootston/desktop.c +++ b/rootston/desktop.c @@ -445,13 +445,17 @@ void view_init(struct roots_view *view, struct roots_desktop *desktop) { view_damage_whole(view); } -void view_setup(struct roots_view *view) { +void view_initial_focus(struct roots_view *view) { struct roots_input *input = view->desktop->server->input; // TODO what seat gets focus? the one with the last input event? struct roots_seat *seat; wl_list_for_each(seat, &input->seats, link) { roots_seat_set_focus(seat, view); } +} + +void view_setup(struct roots_view *view) { + view_initial_focus(view); view_center(view); view_update_output(view, NULL); diff --git a/rootston/seat.c b/rootston/seat.c index 1b7d05c4..9acbb737 100644 --- a/rootston/seat.c +++ b/rootston/seat.c @@ -721,7 +721,7 @@ void roots_seat_set_focus(struct roots_seat *seat, struct roots_view *view) { #ifdef WLR_HAS_XWAYLAND if (view && view->type == ROOTS_XWAYLAND_VIEW && - view->xwayland_surface->override_redirect) { + wlr_xwayland_surface_is_unmanaged(view->xwayland_surface)) { return; } #endif diff --git a/rootston/xwayland.c b/rootston/xwayland.c index f917fe5d..56f068ea 100644 --- a/rootston/xwayland.c +++ b/rootston/xwayland.c @@ -350,5 +350,7 @@ void handle_xwayland_surface(struct wl_listener *listener, void *data) { } view_setup(view); + } else { + view_initial_focus(view); } } |