always use smart placement, add under-mouse placement for the fallback
Dana Jansens danakj@orodu.net
1 files changed,
16 insertions(+),
1 deletions(-)
jump to
M
openbox/place.c
→
openbox/place.c
@@ -3,6 +3,7 @@ #include "group.h"
#include "screen.h" #include "frame.h" #include "focus.h" +#include "config.h" static Rect* pick_head(ObClient *c) {@@ -38,6 +39,7 @@
return NULL; } +#if 0 static gboolean place_random(ObClient *client, gint *x, gint *y) { int l, r, t, b;@@ -63,6 +65,7 @@ frame_frame_gravity(client->frame, x, y);
return TRUE; } +#endif static GSList* area_add(GSList *list, Rect *a) {@@ -178,6 +181,18 @@
return ret; } +static gboolean place_under_mouse(ObClient *client, gint *x, gint *y) +{ + int px, py; + + screen_pointer_pos(&px, &py); + + *x = px - client->area.width / 2 - client->frame->size.left; + *y = py - client->area.height / 2 - client->frame->size.top; + + return TRUE; +} + static gboolean place_transient(ObClient *client, gint *x, gint *y) { if (client->transient_for) {@@ -247,7 +262,7 @@ if (place_dialog(client, x, y))
return; if (place_smart(client, x, y)) return; - if (place_random(client, x, y)) + if (place_under_mouse(client, x, y)) return; g_assert_not_reached(); /* the last one better succeed */ }