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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
#define client_move_resize(self, x, y, w, h) \
|
||||
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, \
|
||||
((ObClient*)self)->area.width, \
|
||||
((ObClient*)self)->area.height, FALSE, TRUE, force)
|
||||
|
||||
/*! Make a client reconfigure so that it will honour its current max/min sizes
|
||||
and other bounds.
|
||||
@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
|
||||
told it to move/resize to these coordinates.
|
||||
|
|
Loading…
Reference in a new issue