use the PSize and USSize hints to decide to resize windows on map or not
Dana Jansens danakj@orodu.net
2 files changed,
15 insertions(+),
1 deletions(-)
M
openbox/client.c
→
openbox/client.c
@@ -381,13 +381,21 @@ (self->positioned == PPosition | USPosition ?
"program + user specified" : "BADNESS !?")))), self->area.x, self->area.y); + ob_debug("Sized: %s @ %d %d\n", + (!self->sized ? "no" : + (self->sized == PSize ? "program specified" : + (self->sized == USSize ? "user specified" : + (self->sized == PSize | USSize ? + "program + user specified" : + "BADNESS !?")))), self->area.width, self->area.height); + transient = place_client(self, &placex, &placey, settings); /* if the window isn't user-positioned, then make it fit inside the visible screen area on its monitor. the monitor is chosen by place_client! */ - if (!(self->positioned & USPosition)) { + if (!(self->sized & USSize)) { /* make a copy to modify */ Rect a = *screen_area_monitor(self->desktop, client_monitor(self));@@ -867,6 +875,7 @@ self->title);
RECT_SET_POINT(self->area, self->session->x, self->session->y); self->positioned = USPosition; + self->sized = USSize; if (self->session->w > 0) self->area.width = self->session->w; if (self->session->h > 0)@@ -1617,6 +1626,7 @@ /* normal windows can't request placement! har har
if (!client_normal(self)) */ self->positioned = (size.flags & (PPosition|USPosition)); + self->sized = (size.flags & (PSize|USSize)); if (size.flags & PWinGravity) self->gravity = size.win_gravity;
M
openbox/client.h
→
openbox/client.h
@@ -216,6 +216,10 @@ if by the application, we force it completely onscreen, if by the user
we only force it if it tries to go completely offscreen, if neither, we should place the window ourselves when it first appears */ guint positioned; + + /*! Was the window's size requested by the application or the user? + If by the application we don't let it go outside the available area */ + guint sized; /*! Can the window receive input focus? */ gboolean can_focus;