less configure events on mapping
This commit is contained in:
parent
32b64b6cf5
commit
af42ac2a53
2 changed files with 16 additions and 8 deletions
|
@ -2566,6 +2566,8 @@ static void client_apply_startup_state(ObClient *self,
|
||||||
gboolean demands_attention = self->demands_attention;
|
gboolean demands_attention = self->demands_attention;
|
||||||
gboolean max_horz = self->max_horz;
|
gboolean max_horz = self->max_horz;
|
||||||
gboolean max_vert = self->max_vert;
|
gboolean max_vert = self->max_vert;
|
||||||
|
Rect oldarea;
|
||||||
|
gint l;
|
||||||
|
|
||||||
/* turn them all off in the client, so they won't affect the window
|
/* turn them all off in the client, so they won't affect the window
|
||||||
being placed */
|
being placed */
|
||||||
|
@ -2581,10 +2583,12 @@ static void client_apply_startup_state(ObClient *self,
|
||||||
do this before applying the states so they have the correct
|
do this before applying the states so they have the correct
|
||||||
pre-max/pre-fullscreen values
|
pre-max/pre-fullscreen values
|
||||||
*/
|
*/
|
||||||
client_configure(self, x, y, w, h, FALSE, TRUE);
|
client_try_configure(self, &x, &y, &w, &h, &l, &l, FALSE);
|
||||||
ob_debug("placed window 0x%x at %d, %d with size %d x %d\n",
|
ob_debug("placed window 0x%x at %d, %d with size %d x %d\n",
|
||||||
self->window, self->area.x, self->area.y,
|
self->window, self->area.x, self->area.y,
|
||||||
self->area.width, self->area.height);
|
self->area.width, self->area.height);
|
||||||
|
oldarea = self->area; /* save the area */
|
||||||
|
RECT_SET(self->area, x, y, w, h); /* put where it should be for the premax stuff */
|
||||||
|
|
||||||
/* apply the states. these are in a carefully crafted order.. */
|
/* apply the states. these are in a carefully crafted order.. */
|
||||||
|
|
||||||
|
@ -2606,6 +2610,12 @@ static void client_apply_startup_state(ObClient *self,
|
||||||
else if (max_horz)
|
else if (max_horz)
|
||||||
client_maximize(self, TRUE, 1);
|
client_maximize(self, TRUE, 1);
|
||||||
|
|
||||||
|
/* if the window hasn't been configured yet, then do so now */
|
||||||
|
if (!fullscreen && !max_vert && !max_horz) {
|
||||||
|
self->area = oldarea;
|
||||||
|
client_configure(self, x, y, w, h, FALSE, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
/* set the desktop hint, to make sure that it always exists */
|
/* set the desktop hint, to make sure that it always exists */
|
||||||
PROP_SET32(self->window, net_wm_desktop, cardinal, self->desktop);
|
PROP_SET32(self->window, net_wm_desktop, cardinal, self->desktop);
|
||||||
|
|
||||||
|
@ -2931,13 +2941,6 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
|
||||||
self->frame->size.left, self->frame->size.top, w, h);
|
self->frame->size.left, self->frame->size.top, w, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!resized) {
|
|
||||||
/* when the client has StaticGravity, it likes to move around.
|
|
||||||
also this correctly positions the client when it maps */
|
|
||||||
XMoveWindow(ob_display, self->window,
|
|
||||||
self->frame->size.left, self->frame->size.top);
|
|
||||||
}
|
|
||||||
|
|
||||||
XFlush(ob_display);
|
XFlush(ob_display);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -764,6 +764,11 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
|
||||||
self->area.width,
|
self->area.width,
|
||||||
self->area.height);
|
self->area.height);
|
||||||
|
|
||||||
|
/* when the client has StaticGravity, it likes to move around.
|
||||||
|
also this correctly positions the client when it maps */
|
||||||
|
XMoveWindow(ob_display, self->client->window,
|
||||||
|
self->size.left, self->size.top);
|
||||||
|
|
||||||
if (resized) {
|
if (resized) {
|
||||||
framerender_frame(self);
|
framerender_frame(self);
|
||||||
frame_adjust_shape(self);
|
frame_adjust_shape(self);
|
||||||
|
|
Loading…
Reference in a new issue