[gnome-control-center/wip/carlosg/calibrator-fixes: 3/7] wacom: Make calibrator retrieve dimensions from window




commit 8655904b8f692321e9d9c51f8ec4d4048b746013
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Feb 12 13:24:21 2022 +0100

    wacom: Make calibrator retrieve dimensions from window
    
    So we can fullscreen on a monitor and forget.

 panels/wacom/calibrator/calibrator-gui.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/panels/wacom/calibrator/calibrator-gui.c b/panels/wacom/calibrator/calibrator-gui.c
index 31926c5e4..fd96882fc 100644
--- a/panels/wacom/calibrator/calibrator-gui.c
+++ b/panels/wacom/calibrator/calibrator-gui.c
@@ -237,6 +237,27 @@ cc_calib_area_finalize (GObject *object)
   G_OBJECT_CLASS (cc_calib_area_parent_class)->finalize (object);
 }
 
+static void
+cc_calib_area_size_allocate (GtkWidget *widget,
+                             int        width,
+                             int        height,
+                             int        baseline)
+{
+  CcCalibArea *calib_area = CC_CALIB_AREA (widget);
+
+  calib_area->calibrator.geometry.width = width;
+  calib_area->calibrator.geometry.height = height;
+
+  /* reset calibration if already started */
+  reset (&calib_area->calibrator);
+  set_active_target (calib_area, 0);
+
+  GTK_WIDGET_CLASS (cc_calib_area_parent_class)->size_allocate (widget,
+                                                                width,
+                                                                height,
+                                                                baseline);
+}
+
 static void
 cc_calib_area_class_init (CcCalibAreaClass *klass)
 {
@@ -245,6 +266,8 @@ cc_calib_area_class_init (CcCalibAreaClass *klass)
 
   object_class->finalize = cc_calib_area_finalize;
 
+  widget_class->size_allocate = cc_calib_area_size_allocate;
+
   g_type_ensure (CC_TYPE_CLOCK);
 
   gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/wacom/calibrator/calibrator.ui");
@@ -326,7 +349,6 @@ cc_calib_area_new (GdkDisplay     *display,
 {
   CcCalibArea *calib_area;
   g_autoptr(GdkMonitor) monitor = NULL;
-  GdkRectangle rect;
 
   g_return_val_if_fail (callback, NULL);
 
@@ -341,9 +363,6 @@ cc_calib_area_new (GdkDisplay     *display,
   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;
 
   gtk_window_fullscreen_on_monitor (GTK_WINDOW (calib_area), monitor);
   gtk_widget_show (GTK_WIDGET (calib_area));


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