diff options
Diffstat (limited to 'rootston')
-rw-r--r-- | rootston/cursor.c | 5 | ||||
-rw-r--r-- | rootston/xwayland.c | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/rootston/cursor.c b/rootston/cursor.c index eec8eb5d..0ca45f16 100644 --- a/rootston/cursor.c +++ b/rootston/cursor.c @@ -137,11 +137,14 @@ static void set_view_focus(struct roots_input *input, size_t index = 0; for (size_t i = 0; i < desktop->views->length; ++i) { struct roots_view *_view = desktop->views->items[i]; - view_activate(_view, _view == view); + if (_view != view) { + view_activate(_view, false); + } if (view == _view) { index = i; } } + view_activate(view, true); // TODO: list_swap list_del(desktop->views, index); list_add(desktop->views, view); diff --git a/rootston/xwayland.c b/rootston/xwayland.c index 7ecc4d4f..bb8ced8e 100644 --- a/rootston/xwayland.c +++ b/rootston/xwayland.c @@ -39,8 +39,12 @@ static void handle_request_configure(struct wl_listener *listener, void *data) { } static void activate(struct roots_view *view, bool active) { - wlr_xwayland_surface_activate(view->desktop->xwayland, - view->xwayland_surface); + if (active) { + wlr_xwayland_surface_activate(view->desktop->xwayland, + view->xwayland_surface); + } else { + wlr_xwayland_surface_activate(view->desktop->xwayland, NULL); + } } void handle_xwayland_surface(struct wl_listener *listener, void *data) { |