summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-05-06 08:20:22 -0400
committerKristian Høgsberg <krh@bitplanet.net>2014-05-12 23:34:05 -0700
commitccf908b078ee7ce51f4cfe727c6eca2f5bb0f79d (patch)
tree3484f857c6c218b242ac1c121e86b55c26e153e6
parent851799e791ceb72a1f9c36f20fe44108c90ce8df (diff)
window: Set frame flags immediately when we handle the new states in configure
-rw-r--r--clients/window.c26
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)