aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kenny Levinsen <kl@kl.wtf>2021-03-20 12:56:40 +0100
committerLibravatar Simon Ser <contact@emersion.fr>2021-03-21 12:27:29 +0100
commit70842f4e147fb16caa6f37bbf9d833dcf24a15a1 (patch)
tree22b40af20b271d81a574a71d57b5a505267ca752
parentci: Update alpine xwayland package name (diff)
downloadsway-70842f4e147fb16caa6f37bbf9d833dcf24a15a1.tar.gz
sway-70842f4e147fb16caa6f37bbf9d833dcf24a15a1.tar.zst
sway-70842f4e147fb16caa6f37bbf9d833dcf24a15a1.zip
view: Handle NULL role object when role is set
wlr_(xdg|xwayland)_surface_from_wlr_surface can return NULL even though wlr_surface_is_(xdg|xwayland)_surface returned true.
-rw-r--r--sway/tree/view.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 8a2a8178..395b9fac 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -1139,12 +1139,18 @@ struct sway_view *view_from_wlr_surface(struct wlr_surface *wlr_surface) {
1139 if (wlr_surface_is_xdg_surface(wlr_surface)) { 1139 if (wlr_surface_is_xdg_surface(wlr_surface)) {
1140 struct wlr_xdg_surface *xdg_surface = 1140 struct wlr_xdg_surface *xdg_surface =
1141 wlr_xdg_surface_from_wlr_surface(wlr_surface); 1141 wlr_xdg_surface_from_wlr_surface(wlr_surface);
1142 if (xdg_surface == NULL) {
1143 return NULL;
1144 }
1142 return view_from_wlr_xdg_surface(xdg_surface); 1145 return view_from_wlr_xdg_surface(xdg_surface);
1143 } 1146 }
1144#if HAVE_XWAYLAND 1147#if HAVE_XWAYLAND
1145 if (wlr_surface_is_xwayland_surface(wlr_surface)) { 1148 if (wlr_surface_is_xwayland_surface(wlr_surface)) {
1146 struct wlr_xwayland_surface *xsurface = 1149 struct wlr_xwayland_surface *xsurface =
1147 wlr_xwayland_surface_from_wlr_surface(wlr_surface); 1150 wlr_xwayland_surface_from_wlr_surface(wlr_surface);
1151 if (xsurface == NULL) {
1152 return NULL;
1153 }
1148 return view_from_wlr_xwayland_surface(xsurface); 1154 return view_from_wlr_xwayland_surface(xsurface);
1149 } 1155 }
1150#endif 1156#endif