From a27be44a1d57c2f4b5ea926f1c38478be74fe11e Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Mon, 2 Nov 2020 15:28:50 +1300 Subject: [PATCH] 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