[metacity] constraints: Center modal dialogs on their parent



commit 0e991a4eeeb953d2fb5f3ee15be11bff76903a6a
Author: Florian Müllner <fmuellner gnome org>
Date:   Tue Jul 3 22:30:02 2012 +0200

    constraints: Center modal dialogs on their parent
    
    ... rather than attaching them to the parent's title bar.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=674499

 src/core/constraints.c |   11 +----------
 src/core/window.c      |    9 ++++++---
 2 files changed, 7 insertions(+), 13 deletions(-)
---
diff --git a/src/core/constraints.c b/src/core/constraints.c
index ec80988..db4e8d6 100644
--- a/src/core/constraints.c
+++ b/src/core/constraints.c
@@ -828,21 +828,12 @@ constrain_modal_dialog (MetaWindow         *window,
     return TRUE;
 
   x = parent->rect.x + (parent->rect.width / 2 - info->current.width / 2);
-  y = 0;
+  y = parent->rect.y + (parent->rect.height / 2 - info->current.height / 2);
   if (parent->frame)
     {
-      MetaFrameBorders borders;
-
       x += parent->frame->rect.x;
       y += parent->frame->rect.y;
-
-      meta_frame_calc_borders (parent->frame, &borders);
-      y += borders.total.top;
-
-      y += info->borders->visible.top;
    }
-  else
-    y = parent->rect.y + info->borders->visible.top;
 
   constraint_already_satisfied = (x == info->current.x) && (y == info->current.y);
 
diff --git a/src/core/window.c b/src/core/window.c
index 1ea8cd6..748b1d1 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -7664,12 +7664,15 @@ update_resize (MetaWindow *window,
   dx = x - window->display->grab_anchor_root_x;
   dy = y - window->display->grab_anchor_root_y;
 
-  /* Attached modal dialogs are special in that horizontal
-   * size changes apply to both sides, so that the dialog
+  /* Attached modal dialogs are special in that size
+   * changes apply to both sides, so that the dialog
    * remains centered to the parent.
    */
   if (meta_window_is_attached_dialog (window))
-    dx *= 2;
+    {
+      dx *= 2;
+      dy *= 2;
+    }
 
   new_w = window->display->grab_anchor_window_pos.width;
   new_h = window->display->grab_anchor_window_pos.height;


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