[epiphany] preferences: Don't cast pages to a GtkWindow



commit db73d21779c282c203225a39a49018df8626ef6c
Author: Yetizone <andreii lisita gmail com>
Date:   Wed May 20 22:49:58 2020 +0300

    preferences: Don't cast pages to a GtkWindow
    
    Fetch a reference to the prefs_dialog and use that instead

 src/preferences/prefs-general-page.c | 17 +++++++++++++----
 src/preferences/prefs-privacy-page.c | 13 ++++++++++---
 2 files changed, 23 insertions(+), 7 deletions(-)
---
diff --git a/src/preferences/prefs-general-page.c b/src/preferences/prefs-general-page.c
index 1d457b87d..54ad5468e 100644
--- a/src/preferences/prefs-general-page.c
+++ b/src/preferences/prefs-general-page.c
@@ -316,10 +316,12 @@ language_editor_add_button_release_event (GtkWidget        *button,
                                           PrefsGeneralPage *general_page)
 {
   if (general_page->add_lang_dialog == NULL) {
+    GtkWindow *prefs_dialog;
     GtkDialog **add_lang_dialog;
 
+    prefs_dialog = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (general_page)));
     general_page->add_lang_dialog = setup_add_language_dialog (general_page);
-    gtk_window_set_transient_for (GTK_WINDOW (general_page->add_lang_dialog), GTK_WINDOW (general_page));
+    gtk_window_set_transient_for (GTK_WINDOW (general_page->add_lang_dialog), prefs_dialog);
 
     add_lang_dialog = &general_page->add_lang_dialog;
 
@@ -599,9 +601,11 @@ setup_add_language_dialog (PrefsGeneralPage *general_page)
   GtkTreeIter iter;
   guint i, n;
   GtkBuilder *builder;
+  GtkWidget *prefs_dialog;
   g_auto (GStrv) locales;
 
   builder = gtk_builder_new_from_resource ("/org/gnome/epiphany/gtk/prefs-lang-dialog.ui");
+  prefs_dialog = gtk_widget_get_toplevel (GTK_WIDGET (general_page));
   ad = GTK_WIDGET (gtk_builder_get_object (builder, "add_language_dialog"));
   add_button = GTK_WIDGET (gtk_builder_get_object (builder, "add_button"));
   treeview = GTK_TREE_VIEW (gtk_builder_get_object (builder, "languages_treeview"));
@@ -645,7 +649,7 @@ setup_add_language_dialog (PrefsGeneralPage *general_page)
   gtk_tree_sortable_set_sort_column_id
     (GTK_TREE_SORTABLE (sortmodel), COL_LANG_NAME, GTK_SORT_ASCENDING);
 
-  gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (general_page)),
+  gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (prefs_dialog)),
                                GTK_WINDOW (ad));
   gtk_window_set_modal (GTK_WINDOW (ad), TRUE);
 
@@ -1079,10 +1083,12 @@ on_search_engine_dialog_button_clicked (GtkWidget        *button,
                                         PrefsGeneralPage *general_page)
 {
   GtkWindow *search_engine_dialog;
+  GtkWindow *prefs_dialog;
 
   search_engine_dialog = GTK_WINDOW (ephy_search_engine_dialog_new ());
+  prefs_dialog = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (general_page)));
 
-  gtk_window_set_transient_for (search_engine_dialog, GTK_WINDOW (general_page));
+  gtk_window_set_transient_for (search_engine_dialog, prefs_dialog);
   gtk_window_set_modal (search_engine_dialog, TRUE);
   gtk_window_present_with_time (search_engine_dialog, gtk_get_current_event_time ());
 }
@@ -1092,9 +1098,12 @@ on_manage_webapp_additional_urls_button_clicked (GtkWidget        *button,
                                                  PrefsGeneralPage *general_page)
 {
   EphyWebappAdditionalURLsDialog *urls_dialog;
+  GtkWindow *prefs_dialog;
 
   urls_dialog = ephy_webapp_additional_urls_dialog_new ();
-  gtk_window_set_transient_for (GTK_WINDOW (urls_dialog), GTK_WINDOW (general_page));
+  prefs_dialog = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (general_page)));
+
+  gtk_window_set_transient_for (GTK_WINDOW (urls_dialog), prefs_dialog);
   gtk_window_set_modal (GTK_WINDOW (urls_dialog), TRUE);
   gtk_window_present_with_time (GTK_WINDOW (urls_dialog), gtk_get_current_event_time ());
 }
diff --git a/src/preferences/prefs-privacy-page.c b/src/preferences/prefs-privacy-page.c
index 6561dcaa7..5b0989c24 100644
--- a/src/preferences/prefs-privacy-page.c
+++ b/src/preferences/prefs-privacy-page.c
@@ -55,10 +55,12 @@ on_manage_cookies_button_clicked (GtkWidget        *button,
                                   PrefsPrivacyPage *privacy_page)
 {
   EphyCookiesDialog *cookies_dialog;
+  GtkWindow *prefs_dialog;
 
   cookies_dialog = ephy_cookies_dialog_new ();
+  prefs_dialog = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (privacy_page)));
 
-  gtk_window_set_transient_for (GTK_WINDOW (cookies_dialog), GTK_WINDOW (privacy_page));
+  gtk_window_set_transient_for (GTK_WINDOW (cookies_dialog), prefs_dialog);
   gtk_window_set_modal (GTK_WINDOW (cookies_dialog), TRUE);
   gtk_window_present_with_time (GTK_WINDOW (cookies_dialog), gtk_get_current_event_time ());
 }
@@ -69,11 +71,13 @@ on_manage_passwords_button_clicked (GtkWidget        *button,
 {
   EphyPasswordsDialog *passwords_dialog;
   EphyPasswordManager *password_manager;
+  GtkWindow *prefs_dialog;
 
   password_manager = ephy_embed_shell_get_password_manager (EPHY_EMBED_SHELL (ephy_shell_get_default ()));
   passwords_dialog = ephy_passwords_dialog_new (password_manager);
+  prefs_dialog = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (privacy_page)));
 
-  gtk_window_set_transient_for (GTK_WINDOW (passwords_dialog), GTK_WINDOW (privacy_page));
+  gtk_window_set_transient_for (GTK_WINDOW (passwords_dialog), prefs_dialog);
   gtk_window_set_modal (GTK_WINDOW (passwords_dialog), TRUE);
   gtk_window_present_with_time (GTK_WINDOW (passwords_dialog), gtk_get_current_event_time ());
 }
@@ -125,9 +129,12 @@ clear_personal_data_button_clicked_cb (GtkWidget        *button,
                                        PrefsPrivacyPage *privacy_page)
 {
   ClearDataDialog *clear_dialog;
+  GtkWindow *prefs_dialog;
 
   clear_dialog = g_object_new (EPHY_TYPE_CLEAR_DATA_DIALOG, NULL);
-  gtk_window_set_transient_for (GTK_WINDOW (clear_dialog), GTK_WINDOW (privacy_page));
+  prefs_dialog = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (privacy_page)));
+
+  gtk_window_set_transient_for (GTK_WINDOW (clear_dialog), prefs_dialog);
   gtk_window_set_modal (GTK_WINDOW (clear_dialog), TRUE);
   gtk_window_present_with_time (GTK_WINDOW (clear_dialog), gtk_get_current_event_time ());
 }


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