aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sway/tree/view.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 07ca3dff..7afcdf31 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -785,7 +785,18 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface,
785 785
786 view_execute_criteria(view); 786 view_execute_criteria(view);
787 787
788 if (should_focus(view)) { 788 bool set_focus = should_focus(view);
789
790#if HAVE_XWAYLAND
791 if (wlr_surface_is_xwayland_surface(wlr_surface)) {
792 struct wlr_xwayland_surface *xsurface =
793 wlr_xwayland_surface_from_wlr_surface(wlr_surface);
794 set_focus = (wlr_xwayland_icccm_input_model(xsurface) !=
795 WLR_ICCCM_INPUT_MODEL_NONE) && set_focus;
796 }
797#endif
798
799 if (set_focus) {
789 input_manager_set_focus(&view->container->node); 800 input_manager_set_focus(&view->container->node);
790 } 801 }
791 802