diff options
author | Kenny Levinsen <kl@kl.wtf> | 2021-03-20 12:56:40 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-03-21 12:27:29 +0100 |
commit | 70842f4e147fb16caa6f37bbf9d833dcf24a15a1 (patch) | |
tree | 22b40af20b271d81a574a71d57b5a505267ca752 /sway/tree | |
parent | ci: Update alpine xwayland package name (diff) | |
download | sway-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.
Diffstat (limited to 'sway/tree')
-rw-r--r-- | sway/tree/view.c | 6 |
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 |