[mutter] display: Keep track of the original tile state during drag



commit 286160646bc711dba85171059c28c4d49803cc85
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Jan 19 17:00:18 2011 +0100

    display: Keep track of the original tile state during drag
    
    Drag operations may be cancelled, in which case the dragged window
    should be restored to the position/state it had when the drag was
    initialized. In order to do this for tiled states, the original
    state has to be saved during the operation.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=639988

 src/core/display-private.h |    8 ++++++++
 src/core/display.c         |    3 +++
 src/core/window-private.h  |    7 -------
 3 files changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/src/core/display-private.h b/src/core/display-private.h
index faa803e..a233b4d 100644
--- a/src/core/display-private.h
+++ b/src/core/display-private.h
@@ -77,6 +77,13 @@ typedef enum {
  */
 #define N_IGNORED_SERIALS           4
 
+typedef enum {
+  META_TILE_NONE,
+  META_TILE_LEFT,
+  META_TILE_RIGHT,
+  META_TILE_MAXIMIZED
+} MetaTileMode;
+
 struct _MetaDisplay
 {
   GObject parent_instance;
@@ -179,6 +186,7 @@ struct _MetaDisplay
   int         grab_anchor_root_x;
   int         grab_anchor_root_y;
   MetaRectangle grab_anchor_window_pos;
+  MetaTileMode  grab_tile_mode;
   int         grab_latest_motion_x;
   int         grab_latest_motion_y;
   gulong      grab_mask;
diff --git a/src/core/display.c b/src/core/display.c
index e3de963..bb13add 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -553,6 +553,7 @@ meta_display_open (void)
   the_display->grab_window = NULL;
   the_display->grab_screen = NULL;
   the_display->grab_resize_popup = NULL;
+  the_display->grab_tile_mode = META_TILE_NONE;
 
   the_display->grab_edge_resistance_data = NULL;
 
@@ -3580,6 +3581,7 @@ meta_display_begin_grab_op (MetaDisplay *display,
   display->grab_xwindow = grab_xwindow;
   display->grab_button = button;
   display->grab_mask = modmask;
+  display->grab_tile_mode = window->tile_mode;
   display->grab_anchor_root_x = root_x;
   display->grab_anchor_root_y = root_y;
   display->grab_latest_motion_x = root_x;
@@ -3776,6 +3778,7 @@ meta_display_end_grab_op (MetaDisplay *display,
   display->grab_window = NULL;
   display->grab_screen = NULL;
   display->grab_xwindow = None;
+  display->grab_tile_mode = META_TILE_NONE;
   display->grab_op = META_GRAB_OP_NONE;
 
   if (display->grab_resize_popup)
diff --git a/src/core/window-private.h b/src/core/window-private.h
index dcb070c..6538db8 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -61,13 +61,6 @@ typedef enum {
 
 #define NUMBER_OF_QUEUES 3
 
-typedef enum {
-  META_TILE_NONE,
-  META_TILE_LEFT,
-  META_TILE_RIGHT,
-  META_TILE_MAXIMIZED
-} MetaTileMode;
-
 struct _MetaWindow
 {
   GObject parent_instance;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]