summaryrefslogtreecommitdiff
path: root/openbox/client.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2006-08-21 20:39:42 +0000
committerMikael Magnusson <mikachu@comhem.se>2006-08-21 20:39:42 +0000
commitc234ed9ecd9d5228744aae018768ff0c04f2d217 (patch)
tree650452f2936c8356a52b6f424975e80dcac2e18f /openbox/client.c
parent997a68aaaec3e72b56ab0b8da0e1800fd5984c4f (diff)
maybe fix transients placed offscreen under certain conditions
Diffstat (limited to 'openbox/client.c')
-rw-r--r--openbox/client.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/openbox/client.c b/openbox/client.c
index e80b84f1..7efc0e94 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -415,8 +415,9 @@ void client_manage(Window window)
if (ob_state() == OB_STATE_RUNNING) {
gint x = self->area.x, ox = x;
gint y = self->area.y, oy = y;
+ gboolean transient;
- place_client(self, &x, &y, settings);
+ transient = place_client(self, &x, &y, settings);
/* make sure the window is visible. */
client_find_onscreen(self, &x, &y,
@@ -432,10 +433,11 @@ void client_manage(Window window)
off-screen and on xinerama divides (ie,
it is up to the placement routines to avoid
the xinerama divides) */
- ((self->positioned & PPosition) &&
- !(self->positioned & USPosition)) &&
- client_normal(self) &&
- !self->session);
+ transient ||
+ (((self->positioned & PPosition) &&
+ !(self->positioned & USPosition)) &&
+ client_normal(self) &&
+ !self->session));
if (x != ox || y != oy)
client_move(self, x, y);
}