make windows stay on screen when they are resized due to their normal hints changing
This commit is contained in:
parent
fd2f617be7
commit
73adc6480d
2 changed files with 20 additions and 4 deletions
|
@ -933,6 +933,19 @@ static gboolean client_restore_session_stacking(ObClient *self)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void client_reconfigure(ObClient *self, gboolean force)
|
||||||
|
{
|
||||||
|
int x, y, w, h, lw, lh;
|
||||||
|
|
||||||
|
x = self->area.x;
|
||||||
|
y = self->area.y;
|
||||||
|
w = self->area.width;
|
||||||
|
h = self->area.height;
|
||||||
|
client_try_configure(self, &x, &y, &w, &h, &lw, &lh, FALSE);
|
||||||
|
client_find_onscreen(self, &x, &y, w, h, FALSE);
|
||||||
|
client_configure(self, x, y, w, h, FALSE, TRUE, force);
|
||||||
|
}
|
||||||
|
|
||||||
void client_move_onscreen(ObClient *self, gboolean rude)
|
void client_move_onscreen(ObClient *self, gboolean rude)
|
||||||
{
|
{
|
||||||
gint x = self->area.x;
|
gint x = self->area.x;
|
||||||
|
|
|
@ -396,10 +396,13 @@ void client_convert_gravity_resize(ObClient *self, gint gravity,
|
||||||
client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE, FALSE)
|
client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE, FALSE)
|
||||||
#define client_move_resize(self, x, y, w, h) \
|
#define client_move_resize(self, x, y, w, h) \
|
||||||
client_configure(self, x, y, w, h, TRUE, TRUE, FALSE)
|
client_configure(self, x, y, w, h, TRUE, TRUE, FALSE)
|
||||||
#define client_reconfigure(self, force) \
|
|
||||||
client_configure(self, ((ObClient*)self)->area.x, ((ObClient*)self)->area.y, \
|
/*! Make a client reconfigure so that it will honour its current max/min sizes
|
||||||
((ObClient*)self)->area.width, \
|
and other bounds.
|
||||||
((ObClient*)self)->area.height, FALSE, TRUE, force)
|
@param force If TRUE, then a ConfigureNotify event will be sent to the client
|
||||||
|
even if nothing has changed.
|
||||||
|
*/
|
||||||
|
void client_reconfigure(ObClient *self, gboolean force);
|
||||||
|
|
||||||
/*! Figure out where a window will end up and what size it will be if you
|
/*! Figure out where a window will end up and what size it will be if you
|
||||||
told it to move/resize to these coordinates.
|
told it to move/resize to these coordinates.
|
||||||
|
|
Loading…
Reference in a new issue