summaryrefslogtreecommitdiff
path: root/openbox/place.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-07-15 12:35:10 -0400
committerDana Jansens <danakj@orodu.net>2007-07-15 12:35:10 -0400
commita9f2b2c681cd7028398ef62513dec003376bda6b (patch)
treef03f616bd9c6f3ca9d086eebf27dcbed91067211 /openbox/place.c
parent2ff02fc55e2007dd4a04b3fb6561049a07a13e8a (diff)
a number for placing windows, to keep them on screen, but let you place them off-screen
1. when a window is not on any monitor, don't just ignore it, stick it on the first monitor arbitrarily (rather than the closest monitor - room for improvement?) 2. when placing a window with per-app settings, don't rudely force it back on screen fully.
Diffstat (limited to 'openbox/place.c')
-rw-r--r--openbox/place.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/openbox/place.c b/openbox/place.c
index 37626231..99911966 100644
--- a/openbox/place.c
+++ b/openbox/place.c
@@ -411,8 +411,6 @@ static gboolean place_per_app_setting(ObClient *client, gint *x, gint *y,
else
*x = screen->x + settings->position.x;
- ob_debug("x %d settings %d\n", *x, settings->position.x);
-
if (settings->center_y)
*y = screen->y + screen->height / 2 - client->area.height / 2;
else if (settings->opposite_y)
@@ -480,6 +478,7 @@ gboolean place_client(ObClient *client, gint *x, gint *y,
ObAppSettings *settings)
{
gboolean ret;
+ gboolean userplaced = FALSE;
/* per-app settings override program specified position
* but not user specified */
@@ -490,7 +489,7 @@ gboolean place_client(ObClient *client, gint *x, gint *y,
/* try a number of methods */
ret = place_transient_splash(client, x, y) ||
- place_per_app_setting(client, x, y, settings) ||
+ (userplaced = place_per_app_setting(client, x, y, settings)) ||
(config_place_policy == OB_PLACE_POLICY_MOUSE &&
place_under_mouse(client, x, y)) ||
place_nooverlap(client, x, y) ||
@@ -499,5 +498,5 @@ gboolean place_client(ObClient *client, gint *x, gint *y,
/* get where the client should be */
frame_frame_gravity(client->frame, x, y);
- return ret;
+ return !userplaced;
}