X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fplace.c;h=ee8bf7ebc1d139241e51097b19c571297469cabe;hb=424ea14e8101f28ecc2d968abb2e06e4929a5230;hp=9e38bdefb0b7400bf01a7f145e785f75d9563226;hpb=a21840cbb7912c25abc1943c08d6980da7537a6c;p=chaz%2Fopenbox diff --git a/openbox/place.c b/openbox/place.c index 9e38bdef..ee8bf7eb 100644 --- a/openbox/place.c +++ b/openbox/place.c @@ -43,20 +43,7 @@ static void add_choice(guint *choice, guint mychoice) static Rect *pick_pointer_head(ObClient *c) { - guint i; - gint px, py; - - if (screen_pointer_pos(&px, &py)) { - for (i = 0; i < screen_num_monitors; ++i) { - Rect *monitor = screen_physical_area_monitor(i); - gboolean contain = RECT_CONTAINS(*monitor, px, py); - g_free(monitor); - if (contain) - return screen_area(c->desktop, i, NULL); - } - g_assert_not_reached(); - } else - return NULL; + return screen_area(c->desktop, screen_monitor_pointer(), NULL); } /*! Pick a monitor to place a window on. */ @@ -489,8 +476,9 @@ gboolean place_client(ObClient *client, gint *x, gint *y, gboolean userplaced = FALSE; /* per-app settings override program specified position - * but not user specified */ - if ((client->positioned & USPosition) || + * but not user specified, unless pos_force is enabled */ + if (((client->positioned & USPosition) && + !(settings && settings->pos_given && settings->pos_force)) || ((client->positioned & PPosition) && !(settings && settings->pos_given))) return FALSE;