In a few places window frame functions were being called on windows without frames.
Signed-off-by: Trevor McCort <[email protected]> --- src/xwayland/window-manager.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c index a889278..8e5a807 100644 --- a/src/xwayland/window-manager.c +++ b/src/xwayland/window-manager.c @@ -407,7 +407,6 @@ weston_wm_window_read_properties(struct weston_wm_window *window) props[i].atom, XCB_ATOM_ANY, 0, 2048); - window->decorate = !window->override_redirect; window->size_hints.flags = 0; window->motif_hints.flags = 0; window->delete_window = 0; @@ -496,7 +495,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->frame) { *width = frame_width(window->frame); *height = frame_height(window->frame); } else { @@ -514,7 +513,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->frame) { frame_interior(window->frame, x, y, NULL, NULL); } else { *x = t->margin; @@ -693,12 +692,12 @@ weston_wm_window_activate(struct wl_listener *listener, void *data) XCB_TIME_CURRENT_TIME); } - if (wm->focus_window) { + if (wm->focus_window && wm->focus_window->frame) { frame_unset_flag(wm->focus_window->frame, FRAME_FLAG_ACTIVE); weston_wm_window_schedule_repaint(wm->focus_window); } wm->focus_window = window; - if (wm->focus_window) { + if (wm->focus_window && wm->focus_window->frame) { frame_set_flag(wm->focus_window->frame, FRAME_FLAG_ACTIVE); weston_wm_window_schedule_repaint(wm->focus_window); } @@ -845,6 +844,7 @@ weston_wm_handle_map_request(struct weston_wm *wm, xcb_generic_event_t *event) window = hash_table_lookup(wm->window_hash, map_request->window); + window->decorate = 1; weston_wm_window_read_properties(window); if (window->frame_id == XCB_WINDOW_NONE) @@ -928,7 +928,7 @@ weston_wm_window_draw_decoration(void *data) if (window->fullscreen) { /* nothing */ - } else if (window->decorate) { + } else if (window->decorate && window->frame) { if (wm->focus_window == window) flags |= THEME_FRAME_ACTIVE; -- 1.8.4 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
