Check if the frame exists before reading its size
authorDima Ryazanov <dima@gmail.com>
Fri, 15 Nov 2013 10:02:23 +0000 (02:02 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 4 Dec 2013 00:13:08 +0000 (16:13 -0800)
This fixes crashes caused by popup windows that don't have override_redirect
(e.g., menus in VLC and KDE apps).

Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
src/xwayland/window-manager.c

index 6d29026..eea0349 100644 (file)
@@ -497,7 +497,7 @@ weston_wm_window_get_frame_size(struct weston_wm_window *window,
        if (window->fullscreen) {
                *width = window->width;
                *height = window->height;
-       } else if (window->decorate) {
+       } else if (window->decorate && window->frame) {
                *width = frame_width(window->frame);
                *height = frame_height(window->frame);
        } else {
@@ -515,7 +515,7 @@ weston_wm_window_get_child_position(struct weston_wm_window *window,
        if (window->fullscreen) {
                *x = 0;
                *y = 0;
-       } else if (window->decorate) {
+       } else if (window->decorate && window->frame) {
                frame_interior(window->frame, x, y, NULL, NULL);
        } else {
                *x = t->margin;