diff options
| author | Mikael Magnusson <mikachu@comhem.se> | 2006-08-21 20:39:42 +0000 |
|---|---|---|
| committer | Mikael Magnusson <mikachu@comhem.se> | 2006-08-21 20:39:42 +0000 |
| commit | c234ed9ecd9d5228744aae018768ff0c04f2d217 (patch) | |
| tree | 650452f2936c8356a52b6f424975e80dcac2e18f /openbox/client.c | |
| parent | 997a68aaaec3e72b56ab0b8da0e1800fd5984c4f (diff) | |
maybe fix transients placed offscreen under certain conditions
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 12 |
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); } |
