aboutsummaryrefslogtreecommitdiff
path: root/rootston/seat.c
diff options
context:
space:
mode:
Diffstat (limited to 'rootston/seat.c')
-rw-r--r--rootston/seat.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/rootston/seat.c b/rootston/seat.c
index f88e4efb..b9392ac4 100644
--- a/rootston/seat.c
+++ b/rootston/seat.c
@@ -1331,9 +1331,12 @@ void roots_seat_set_focus(struct roots_seat *seat, struct roots_view *view) {
bool unfullscreen = true;
#if WLR_HAS_XWAYLAND
- if (view && view->type == ROOTS_XWAYLAND_VIEW &&
- view->xwayland_surface->override_redirect) {
- unfullscreen = false;
+ if (view && view->type == ROOTS_XWAYLAND_VIEW) {
+ struct roots_xwayland_surface *xwayland_surface =
+ roots_xwayland_surface_from_view(view);
+ if (xwayland_surface->xwayland_surface->override_redirect) {
+ unfullscreen = false;
+ }
}
#endif
@@ -1360,10 +1363,13 @@ void roots_seat_set_focus(struct roots_seat *seat, struct roots_view *view) {
}
#if WLR_HAS_XWAYLAND
- if (view && view->type == ROOTS_XWAYLAND_VIEW &&
- !wlr_xwayland_or_surface_wants_focus(
- view->xwayland_surface)) {
- return;
+ if (view && view->type == ROOTS_XWAYLAND_VIEW) {
+ struct roots_xwayland_surface *xwayland_surface =
+ roots_xwayland_surface_from_view(view);
+ if (!wlr_xwayland_or_surface_wants_focus(
+ xwayland_surface->xwayland_surface)) {
+ return;
+ }
}
#endif
struct roots_seat_view *seat_view = NULL;