[gnome-control-center] universal-access: Set dialog parent externally



commit a27be44a1d57c2f4b5ea926f1c38478be74fe11e
Author: Robert Ancell <robert ancell canonical com>
Date:   Mon Nov 2 15:28:50 2020 +1300

    universal-access: Set dialog parent externally

 panels/universal-access/cc-ua-panel.c            |  3 ++-
 panels/universal-access/cc-zoom-options-dialog.c | 16 +++++++++++++---
 panels/universal-access/cc-zoom-options-dialog.h |  2 +-
 3 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/panels/universal-access/cc-ua-panel.c b/panels/universal-access/cc-ua-panel.c
index 71f61dae0..c436b0641 100644
--- a/panels/universal-access/cc-ua-panel.c
+++ b/panels/universal-access/cc-ua-panel.c
@@ -332,7 +332,8 @@ zoom_options_dialog_launch (CcUaPanel *self)
   if (self->zoom_options_dialog == NULL)
     {
       GtkWindow *window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self)));
-      self->zoom_options_dialog = cc_zoom_options_dialog_new (window);
+      self->zoom_options_dialog = cc_zoom_options_dialog_new ();
+      gtk_window_set_transient_for (GTK_WINDOW (self->zoom_options_dialog), window);
     }
 
   gtk_window_present_with_time (GTK_WINDOW (self->zoom_options_dialog), GDK_CURRENT_TIME);
diff --git a/panels/universal-access/cc-zoom-options-dialog.c 
b/panels/universal-access/cc-zoom-options-dialog.c
index d47606c24..5cc058271 100644
--- a/panels/universal-access/cc-zoom-options-dialog.c
+++ b/panels/universal-access/cc-zoom-options-dialog.c
@@ -450,7 +450,6 @@ cc_zoom_options_dialog_constructed (GObject *object)
                    G_SETTINGS_BIND_INVERT_BOOLEAN);
 
   /* ... Cross hairs: length ... */
-  xhairs_length_add_marks (self, GTK_SCALE (self->crosshair_length_slider));
   g_settings_bind (self->settings, "cross-hairs-length",
                    gtk_range_get_adjustment (GTK_RANGE (self->crosshair_length_slider)), "value",
                    G_SETTINGS_BIND_DEFAULT);
@@ -477,6 +476,16 @@ cc_zoom_options_dialog_constructed (GObject *object)
   pango_attr_list_unref (pango_attrs);
 }
 
+static void
+cc_zoom_options_dialog_realize (GtkWidget *widget)
+{
+  CcZoomOptionsDialog *self = CC_ZOOM_OPTIONS_DIALOG (widget);
+
+  GTK_WIDGET_CLASS (cc_zoom_options_dialog_parent_class)->realize (widget);
+
+  xhairs_length_add_marks (self, GTK_SCALE (self->crosshair_length_slider));
+}
+
 static void
 cc_zoom_options_dialog_finalize (GObject *object)
 {
@@ -497,6 +506,8 @@ cc_zoom_options_dialog_class_init (CcZoomOptionsDialogClass *klass)
   object_class->finalize = cc_zoom_options_dialog_finalize;
   object_class->constructed = cc_zoom_options_dialog_constructed;
 
+  widget_class->realize =  cc_zoom_options_dialog_realize;
+
   gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/universal-access/cc-zoom-options-dialog.ui");
 
   gtk_widget_class_bind_template_child (widget_class, CcZoomOptionsDialog, brightness_slider);
@@ -531,10 +542,9 @@ cc_zoom_options_dialog_init (CcZoomOptionsDialog *self)
 }
 
 CcZoomOptionsDialog *
-cc_zoom_options_dialog_new (GtkWindow *parent)
+cc_zoom_options_dialog_new (void)
 {
   return g_object_new (cc_zoom_options_dialog_get_type (),
-                       "transient-for", parent,
                        "use-header-bar", TRUE,
                        NULL);
 }
diff --git a/panels/universal-access/cc-zoom-options-dialog.h 
b/panels/universal-access/cc-zoom-options-dialog.h
index f64cf8390..de15aa8fe 100644
--- a/panels/universal-access/cc-zoom-options-dialog.h
+++ b/panels/universal-access/cc-zoom-options-dialog.h
@@ -26,6 +26,6 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (CcZoomOptionsDialog, cc_zoom_options_dialog, CC, ZOOM_OPTIONS_DIALOG, GtkDialog)
 
-CcZoomOptionsDialog *cc_zoom_options_dialog_new (GtkWindow *parent);
+CcZoomOptionsDialog *cc_zoom_options_dialog_new (void);
 
 G_END_DECLS


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