always use smart placement, add under-mouse placement for the fallback
This commit is contained in:
parent
9fe2ce3f85
commit
e8c1967aa2
1 changed files with 16 additions and 1 deletions
|
@ -3,6 +3,7 @@
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
#include "frame.h"
|
#include "frame.h"
|
||||||
#include "focus.h"
|
#include "focus.h"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
static Rect* pick_head(ObClient *c)
|
static Rect* pick_head(ObClient *c)
|
||||||
{
|
{
|
||||||
|
@ -38,6 +39,7 @@ static Rect* pick_head(ObClient *c)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static gboolean place_random(ObClient *client, gint *x, gint *y)
|
static gboolean place_random(ObClient *client, gint *x, gint *y)
|
||||||
{
|
{
|
||||||
int l, r, t, b;
|
int l, r, t, b;
|
||||||
|
@ -63,6 +65,7 @@ static gboolean place_random(ObClient *client, gint *x, gint *y)
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static GSList* area_add(GSList *list, Rect *a)
|
static GSList* area_add(GSList *list, Rect *a)
|
||||||
{
|
{
|
||||||
|
@ -178,6 +181,18 @@ static gboolean place_smart(ObClient *client, gint *x, gint *y)
|
||||||
return ret;
|
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)
|
static gboolean place_transient(ObClient *client, gint *x, gint *y)
|
||||||
{
|
{
|
||||||
if (client->transient_for) {
|
if (client->transient_for) {
|
||||||
|
@ -247,7 +262,7 @@ void place_client(ObClient *client, gint *x, gint *y)
|
||||||
return;
|
return;
|
||||||
if (place_smart(client, x, y))
|
if (place_smart(client, x, y))
|
||||||
return;
|
return;
|
||||||
if (place_random(client, x, y))
|
if (place_under_mouse(client, x, y))
|
||||||
return;
|
return;
|
||||||
g_assert_not_reached(); /* the last one better succeed */
|
g_assert_not_reached(); /* the last one better succeed */
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue