diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-05-06 08:20:22 -0400 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2014-05-12 23:34:05 -0700 |
commit | ccf908b078ee7ce51f4cfe727c6eca2f5bb0f79d (patch) | |
tree | 3484f857c6c218b242ac1c121e86b55c26e153e6 /clients | |
parent | 851799e791ceb72a1f9c36f20fe44108c90ce8df (diff) |
window: Set frame flags immediately when we handle the new states in configure
Diffstat (limited to 'clients')
-rw-r--r-- | clients/window.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/clients/window.c b/clients/window.c index 7d883451..1d58ad28 100644 --- a/clients/window.c +++ b/clients/window.c @@ -2129,12 +2129,6 @@ frame_resize_handler(struct widget *widget, interior.width = width; interior.height = height; } else { - if (widget->window->maximized) { - frame_set_flag(frame->frame, FRAME_FLAG_MAXIMIZED); - } else { - frame_unset_flag(frame->frame, FRAME_FLAG_MAXIMIZED); - } - frame_resize(frame->frame, width, height); frame_interior(frame->frame, &interior.x, &interior.y, &interior.width, &interior.height); @@ -2202,12 +2196,6 @@ frame_redraw_handler(struct widget *widget, void *data) if (window->fullscreen) return; - if (window->focused) { - frame_set_flag(frame->frame, FRAME_FLAG_ACTIVE); - } else { - frame_unset_flag(frame->frame, FRAME_FLAG_ACTIVE); - } - cr = widget_cairo_create(widget); frame_repaint(frame->frame, cr); @@ -3891,6 +3879,20 @@ handle_surface_configure(void *data, struct xdg_surface *xdg_surface, } } + if (window->frame) { + if (window->maximized) { + frame_set_flag(window->frame->frame, FRAME_FLAG_MAXIMIZED); + } else { + frame_unset_flag(window->frame->frame, FRAME_FLAG_MAXIMIZED); + } + + if (window->focused) { + frame_set_flag(window->frame->frame, FRAME_FLAG_ACTIVE); + } else { + frame_unset_flag(window->frame->frame, FRAME_FLAG_ACTIVE); + } + } + window->next_attach_serial = serial; if (window->state_changed_handler) |