aboutsummaryrefslogtreecommitdiff
path: root/rootston/seat.c
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2019-02-23 15:24:28 +0100
committeremersion <contact@emersion.fr>2019-02-23 15:24:28 +0100
commit9adcbabea47fbd0502673d410eb718ee3401f3b1 (patch)
treee3600090e73820f021501591fe7df6dc7a346990 /rootston/seat.c
parent9f11bf571e2644447b7b39aec8ee87ceab8015f0 (diff)
rootston: make roots_view embedded and remove unions
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 cd95472d..385cf401 100644
--- a/rootston/seat.c
+++ b/rootston/seat.c
@@ -1293,9 +1293,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
@@ -1322,10 +1325,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;