window: Set frame flags immediately when we handle the new states in configure

dev
Jasper St. Pierre 11 years ago committed by Kristian Høgsberg
parent 851799e791
commit ccf908b078
  1. 26
      clients/window.c

@ -2129,12 +2129,6 @@ frame_resize_handler(struct widget *widget,
interior.width = width; interior.width = width;
interior.height = height; interior.height = height;
} else { } 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_resize(frame->frame, width, height);
frame_interior(frame->frame, &interior.x, &interior.y, frame_interior(frame->frame, &interior.x, &interior.y,
&interior.width, &interior.height); &interior.width, &interior.height);
@ -2202,12 +2196,6 @@ frame_redraw_handler(struct widget *widget, void *data)
if (window->fullscreen) if (window->fullscreen)
return; 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); cr = widget_cairo_create(widget);
frame_repaint(frame->frame, cr); 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; window->next_attach_serial = serial;
if (window->state_changed_handler) if (window->state_changed_handler)

Loading…
Cancel
Save