[metacity] display: get window scale from MetaUI



commit ca73ad5c8bc0c38981fa9fb8efad9bb466e1f9ac
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Thu Apr 20 15:54:27 2017 +0300

    display: get window scale from MetaUI

 src/core/display.c |   25 +++++--------------------
 src/include/ui.h   |    2 ++
 src/ui/ui.c        |    6 ++++++
 3 files changed, 13 insertions(+), 20 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 1191433..1a3acfc 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -1415,35 +1415,18 @@ meta_display_queue_autoraise_callback (MetaDisplay *display,
   display->autoraise_window = window;
 }
 
-static gint
-get_window_scaling_factor (void)
-{
-  GdkScreen *screen;
-  GValue value = G_VALUE_INIT;
-
-  screen = gdk_screen_get_default ();
-
-  g_value_init (&value, G_TYPE_INT);
-
-  if (gdk_screen_get_setting (screen, "gdk-window-scaling-factor", &value))
-    return g_value_get_int (&value);
-  else
-    return 1;
-}
-
 static GdkEvent *
-button_press_event_new (XEvent *xevent)
+button_press_event_new (XEvent *xevent,
+                        gint    scale)
 {
   GdkDisplay *display;
   GdkSeat *seat;
-  gint scale;
   GdkWindow *window;
   GdkDevice *device;
   GdkEvent *event;
 
   display = gdk_display_get_default ();
   seat = gdk_display_get_default_seat (display);
-  scale = get_window_scaling_factor ();
 
   window = gdk_x11_window_lookup_for_display (display, xevent->xbutton.window);
   device = gdk_seat_get_pointer (seat);
@@ -2019,6 +2002,7 @@ event_callback (XEvent   *event,
           else if (event->xbutton.button == meta_prefs_get_mouse_button_menu())
             {
               GdkRectangle rect;
+              gint scale;
               GdkEvent *gdk_event;
 
               if (meta_prefs_get_raise_on_click ())
@@ -2034,7 +2018,8 @@ event_callback (XEvent   *event,
               rect.width = 0;
               rect.height = 0;
 
-              gdk_event = button_press_event_new (event);
+              scale = meta_ui_get_scale (display->screen->ui);
+              gdk_event = button_press_event_new (event, scale);
               meta_window_show_menu (window, &rect, gdk_event);
               gdk_event_free (gdk_event);
             }
diff --git a/src/include/ui.h b/src/include/ui.h
index c0f677f..25d0bc1 100644
--- a/src/include/ui.h
+++ b/src/include/ui.h
@@ -60,6 +60,8 @@ void    meta_ui_free (MetaUI *ui);
 void meta_ui_set_composited (MetaUI   *ui,
                              gboolean  composited);
 
+gint meta_ui_get_scale (MetaUI *ui);
+
 void meta_ui_theme_get_frame_borders (MetaUI           *ui,
                                       MetaFrameType     type,
                                       MetaFrameFlags    flags,
diff --git a/src/ui/ui.c b/src/ui/ui.c
index 06c14f8..cf42925 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -402,6 +402,12 @@ meta_ui_set_composited (MetaUI   *ui,
   meta_frames_composited_changed (ui->frames);
 }
 
+gint
+meta_ui_get_scale (MetaUI *ui)
+{
+  return ui->scale;
+}
+
 void
 meta_ui_get_frame_mask (MetaUI  *ui,
                         Window   frame_xwindow,


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