all repos — openbox @ e8c1967aa21b69582f8679525543bed49007fc58

openbox fork - make it a bit more like ryudo

always use smart placement, add under-mouse placement for the fallback
Dana Jansens danakj@orodu.net
commit

e8c1967aa21b69582f8679525543bed49007fc58

parent

9fe2ce3f850492064a1db438a4d037d0b65c5adb

1 files changed, 16 insertions(+), 1 deletions(-)

jump to
M openbox/place.copenbox/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 */ }