[mutter] core/place: Use work area when centering new window.



commit 6f62c5b57546c11a55d5e85b34234d3393e35757
Author: Akatsuki <28203-akiirui users noreply gitlab gnome org>
Date:   Sat Dec 7 23:33:53 2019 +0800

    core/place: Use work area when centering new window.
    
    use the workarea instead of the logical monitor
    
    Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/964

 src/core/place.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)
---
diff --git a/src/core/place.c b/src/core/place.c
index 237f7590b..de09e15eb 100644
--- a/src/core/place.c
+++ b/src/core/place.c
@@ -802,22 +802,19 @@ meta_window_place (MetaWindow        *window,
   if (window_place_centered (window))
     {
       /* Center on current monitor */
-      int w, h;
+      MetaRectangle work_area;
       MetaRectangle frame_rect;
 
-      meta_window_get_frame_rect (window, &frame_rect);
-
       /* Warning, this function is a round trip! */
       logical_monitor = meta_backend_get_current_logical_monitor (backend);
 
-      w = logical_monitor->rect.width;
-      h = logical_monitor->rect.height;
-
-      x = (w - frame_rect.width) / 2;
-      y = (h - frame_rect.height) / 2;
+      meta_window_get_work_area_for_logical_monitor (window,
+                                                     logical_monitor,
+                                                     &work_area);
+      meta_window_get_frame_rect (window, &frame_rect);
 
-      x += logical_monitor->rect.x;
-      y += logical_monitor->rect.y;
+      x = work_area.x + (work_area.width - frame_rect.width) / 2;
+      y = work_area.y + (work_area.height - frame_rect.height) / 2;
 
       meta_topic (META_DEBUG_PLACEMENT, "Centered window %s on monitor %d\n",
                   window->desc, logical_monitor->number);


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