save the frame decorations in client_configure_full before causing the fake frame adjust, since that loses its old value.
This commit is contained in:
parent
084c66a32a
commit
d94fba7262
1 changed files with 4 additions and 9 deletions
|
@ -1114,14 +1114,8 @@ void client_setup_decor_and_functions(ObClient *self)
|
||||||
client_change_allowed_actions(self);
|
client_change_allowed_actions(self);
|
||||||
|
|
||||||
if (self->frame) {
|
if (self->frame) {
|
||||||
if (self->decorations != self->frame->decorations)
|
|
||||||
/* adjust the client's decorations, etc. */
|
/* adjust the client's decorations, etc. */
|
||||||
client_reconfigure(self);
|
client_reconfigure(self);
|
||||||
/* we actually have to do this twice :P
|
|
||||||
the first time it removes the decorations, but now it may need to
|
|
||||||
be reconstrained for being maximized etc, so calling this again
|
|
||||||
will work with the new setup of decorations on the window */
|
|
||||||
client_reconfigure(self);
|
|
||||||
} else {
|
} else {
|
||||||
/* this makes sure that these windows appear on all desktops */
|
/* this makes sure that these windows appear on all desktops */
|
||||||
if (self->type == OB_CLIENT_TYPE_DESKTOP &&
|
if (self->type == OB_CLIENT_TYPE_DESKTOP &&
|
||||||
|
@ -1711,6 +1705,7 @@ void client_configure_full(ObClient *self, ObCorner anchor,
|
||||||
gboolean force_reply)
|
gboolean force_reply)
|
||||||
{
|
{
|
||||||
gboolean moved = FALSE, resized = FALSE;
|
gboolean moved = FALSE, resized = FALSE;
|
||||||
|
gint fdecor = self->frame->decorations;
|
||||||
|
|
||||||
/* make the frame recalculate its dimentions n shit without changing
|
/* make the frame recalculate its dimentions n shit without changing
|
||||||
anything visible for real, this way the constraints below can work with
|
anything visible for real, this way the constraints below can work with
|
||||||
|
@ -1901,7 +1896,7 @@ void client_configure_full(ObClient *self, ObCorner anchor,
|
||||||
|
|
||||||
/* move/resize the frame to match the request */
|
/* move/resize the frame to match the request */
|
||||||
if (self->frame) {
|
if (self->frame) {
|
||||||
if (self->decorations != self->frame->decorations)
|
if (self->decorations != fdecor)
|
||||||
moved = resized = TRUE;
|
moved = resized = TRUE;
|
||||||
|
|
||||||
if (moved || resized)
|
if (moved || resized)
|
||||||
|
|
Loading…
Reference in a new issue