summaryrefslogtreecommitdiff
path: root/src/core/window.c
diff options
context:
space:
mode:
authorFaidon Liambotis <[email protected]>2015-09-14 03:06:18 +0300
committerinfirit <[email protected]>2015-09-16 13:59:59 +0200
commitdee034771c8f3b519c8011faf78d277d6af76933 (patch)
tree411e2ced133401f2480a2323154b5df792b4cc31 /src/core/window.c
parente12e55167107adaa0b45decdb2f57cf7c870d2aa (diff)
downloadmarco-dee034771c8f3b519c8011faf78d277d6af76933.tar.bz2
marco-dee034771c8f3b519c8011faf78d277d6af76933.tar.xz
Add manual and by-pointer window placement
This adds a window placement preference: the existing behavior is now called "automatic" and is the default. Two new modes are being introduced: "pointer", which means that windows are placed according to the mouse pointer position; and "manual" which means that the user must manually place the new window with the mouse or keyboard. This is a straight port from muffin, commit 3257671.
Diffstat (limited to 'src/core/window.c')
-rw-r--r--src/core/window.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/window.c b/src/core/window.c
index 60616e4d..30ebfa85 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -461,6 +461,7 @@ meta_window_new_with_attrs (MetaDisplay *display,
window->maximize_horizontally_after_placement = FALSE;
window->maximize_vertically_after_placement = FALSE;
window->minimize_after_placement = FALSE;
+ window->move_after_placement = FALSE;
window->fullscreen = FALSE;
window->fullscreen_after_placement = FALSE;
window->fullscreen_monitors[0] = -1;
@@ -2346,6 +2347,13 @@ meta_window_show (MetaWindow *window)
if (takes_focus_on_map)
{
meta_window_focus (window, timestamp);
+
+ if (window->move_after_placement)
+ {
+ meta_window_begin_grab_op(window, META_GRAB_OP_KEYBOARD_MOVING,
+ FALSE, timestamp);
+ window->move_after_placement = FALSE;
+ }
}
else
{