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




commit 534be989bd4df052738ead0b6d6aa31709cb553d
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Feb 12 11:43:46 2022 +0100

    Revert "wacom: Pass GdkMonitor directly to calibrator object"
    
    This reverts commit 3894bc075a52dd16f6dbcbf2dd3e089acb83fe3a.

 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, 22 insertions(+), 10 deletions(-)
---
diff --git a/panels/wacom/calibrator/calibrator-gui.c b/panels/wacom/calibrator/calibrator-gui.c
index 216ad3a51..dfa262774 100644
--- a/panels/wacom/calibrator/calibrator-gui.c
+++ b/panels/wacom/calibrator/calibrator-gui.c
@@ -236,13 +236,14 @@ on_fullscreen (GtkWindow  *window,
  */
 CalibArea *
 calib_area_new (GdkDisplay     *display,
-                GdkMonitor     *monitor,
+                int             n_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;
@@ -282,6 +283,9 @@ 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 f8e38effd..400aa101a 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,
-                           GdkMonitor     *monitor,
+CalibArea * calib_area_new (GdkDisplay      *display,
+                           int             monitor,
                            GdkDevice      *device,
                            FinishCallback  callback,
                            gpointer        user_data,
diff --git a/panels/wacom/calibrator/main.c b/panels/wacom/calibrator/main.c
index e68575e8f..e35d48e49 100644
--- a/panels/wacom/calibrator/main.c
+++ b/panels/wacom/calibrator/main.c
@@ -393,8 +393,6 @@ 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");
@@ -404,11 +402,8 @@ 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,
-                                monitor,  /* monitor */
+                                0,  /* 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 74846fe8e..c90873696 100644
--- a/panels/wacom/cc-wacom-page.c
+++ b/panels/wacom/cc-wacom-page.c
@@ -217,10 +217,23 @@ 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,
-                                    monitor,
+                                    n_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]