[gnome-control-center/wip/carlosg/calibrator-fixes: 4/12] wacom: Pass GdkMonitor directly to calibrator object




commit 3894bc075a52dd16f6dbcbf2dd3e089acb83fe3a
Author: Carlos Garnacho <carlosg gnome org>
Date:   Thu Feb 10 00:08:12 2022 +0100

    wacom: Pass GdkMonitor directly to calibrator object
    
    Instead of figuring out a monitor number from a GdkMonitor, and
    look the GdkMonitor back up, pass the GdkMonitor directly.

 panels/wacom/calibrator/calibrator-gui.c |  6 +-----
 panels/wacom/calibrator/calibrator-gui.h |  4 ++--
 panels/wacom/calibrator/main.c           |  7 ++++++-
 panels/wacom/cc-wacom-page.c             | 15 +--------------
 4 files changed, 10 insertions(+), 22 deletions(-)
---
diff --git a/panels/wacom/calibrator/calibrator-gui.c b/panels/wacom/calibrator/calibrator-gui.c
index dfa262774..216ad3a51 100644
--- a/panels/wacom/calibrator/calibrator-gui.c
+++ b/panels/wacom/calibrator/calibrator-gui.c
@@ -236,14 +236,13 @@ on_fullscreen (GtkWindow  *window,
  */
 CalibArea *
 calib_area_new (GdkDisplay     *display,
-                int             n_monitor,
+                GdkMonitor     *monitor,
                 GdkDevice      *device,
                 FinishCallback  callback,
                 gpointer        user_data,
                 int             threshold_doubleclick,
                 int             threshold_misclick)
 {
-  g_autoptr(GdkMonitor) monitor = NULL;
   CalibArea *calib_area;
   GdkRectangle rect;
   GtkGesture *click;
@@ -283,9 +282,6 @@ calib_area_new (GdkDisplay     *display,
 #endif /* FAKE_AREA */
 
   /* Move to correct screen */
-  if (display == NULL)
-    display = gdk_display_get_default ();
-  monitor = g_list_model_get_item (gdk_display_get_monitors (display), n_monitor);
   gdk_monitor_get_geometry (monitor, &rect);
 
   calib_area->calibrator.geometry = rect;
diff --git a/panels/wacom/calibrator/calibrator-gui.h b/panels/wacom/calibrator/calibrator-gui.h
index 400aa101a..f8e38effd 100644
--- a/panels/wacom/calibrator/calibrator-gui.h
+++ b/panels/wacom/calibrator/calibrator-gui.h
@@ -39,8 +39,8 @@ typedef struct
 typedef struct CalibArea CalibArea;
 typedef void (*FinishCallback) (CalibArea *area, gpointer user_data);
 
-CalibArea * calib_area_new (GdkDisplay      *display,
-                           int             monitor,
+CalibArea * calib_area_new (GdkDisplay     *display,
+                           GdkMonitor     *monitor,
                            GdkDevice      *device,
                            FinishCallback  callback,
                            gpointer        user_data,
diff --git a/panels/wacom/calibrator/main.c b/panels/wacom/calibrator/main.c
index e35d48e49..e68575e8f 100644
--- a/panels/wacom/calibrator/main.c
+++ b/panels/wacom/calibrator/main.c
@@ -393,6 +393,8 @@ int main(int argc, char** argv)
 
     struct Calib* calibrator = main_common(argc, argv);
     CalibArea *calib_area;
+    GdkDisplay *display;
+    g_autoptr (GdkMonitor) monitor = NULL;
 
     bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
     bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
@@ -402,8 +404,11 @@ int main(int argc, char** argv)
 
     g_setenv ("G_MESSAGES_DEBUG", "all", TRUE);
 
+    display = gdk_display_get_default ();
+    monitor = g_list_model_get_item (gdk_display_get_monitors (display), 0);
+
     calib_area = calib_area_new (NULL,
-                                0,  /* monitor */
+                                monitor,  /* monitor */
                                 NULL, /* NULL to accept input from any device */
                                 calibration_finished_cb,
                                 NULL,
diff --git a/panels/wacom/cc-wacom-page.c b/panels/wacom/cc-wacom-page.c
index c90873696..74846fe8e 100644
--- a/panels/wacom/cc-wacom-page.c
+++ b/panels/wacom/cc-wacom-page.c
@@ -217,23 +217,10 @@ run_calibration (CcWacomPage *page,
                 gdouble     *cal,
                 GdkMonitor  *monitor)
 {
-       GdkDisplay *display = gdk_monitor_get_display (monitor);
-  GListModel *monitors;
-       guint i, n_monitor = 0;
-
        g_assert (page->area == NULL);
 
-  monitors = gdk_display_get_monitors (display);
-       for (i = 0; i < g_list_model_get_n_items (monitors); i++) {
-    g_autoptr(GdkMonitor) m = g_list_model_get_item (monitors, i);
-               if (monitor == m) {
-                       n_monitor = i;
-                       break;
-               }
-       }
-
        page->area = calib_area_new (NULL,
-                                    n_monitor,
+                                    monitor,
                                     cc_wacom_page_get_gdk_device (page),
                                     finish_calibration,
                                     page,


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