[metacity] display: get window scale from MetaUI
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] display: get window scale from MetaUI
- Date: Thu, 20 Apr 2017 12:55:55 +0000 (UTC)
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]