all repos — openbox @ a8fe821fddc2f30b4031bd9f9e854382a9f0b76e

openbox fork - make it a bit more like ryudo

use the PSize and USSize hints to decide to resize windows on map or not
Dana Jansens danakj@orodu.net
commit

a8fe821fddc2f30b4031bd9f9e854382a9f0b76e

parent

1821191d459ead4028b08e3009f0ed0be70b9c91

2 files changed, 15 insertions(+), 1 deletions(-)

jump to
M openbox/client.copenbox/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.hopenbox/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;