diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-04-20 15:54:27 +0300 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-04-20 15:54:27 +0300 |
commit | ca73ad5c8bc0c38981fa9fb8efad9bb466e1f9ac (patch) | |
tree | a229a94f88c73ecf31a53432abbe67c110b15a4f | |
parent | 0bd6923d4ad02590eed12d6c1a6a0d26b6b02a64 (diff) | |
download | metacity-ca73ad5c8bc0c38981fa9fb8efad9bb466e1f9ac.tar.gz |
display: get window scale from MetaUI
-rw-r--r-- | src/core/display.c | 25 | ||||
-rw-r--r-- | src/include/ui.h | 2 | ||||
-rw-r--r-- | 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 1191433a..1a3acfcd 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 c0f677f3..25d0bc1c 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 06c14f86..cf429256 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, |