[nautilus/wip/apoos-maximus/gsoc2020: 2/29] properties-window: Inherit from GtkWindow instead of GtkDialog




commit c4e9dcd466b0ae7abd3d2536dd5903881aea8c56
Author: Apoorv Sachan <apoorv 99 sachan gmail com>
Date:   Tue May 19 12:17:05 2020 +0530

    properties-window: Inherit from GtkWindow instead of GtkDialog
    
    The properties window has been subclassing GtkDialog since long ago.
    GtkDialog features an action area where, historically, the properties
    window added Help and Close action buttons.
    
    These action were dropped when a headerbar was adopted.[1] Moreover, we
    want to port the Properties window to a GtkBuilder UI definition, which
    GtkDialog makes harder to achive.
    
    Subclassing GtkWindow fits this use case much better.
    
    [1] d8a8ab3b66a0a4849e2f9cd17e96f86f85541dee

 src/nautilus-properties-window.c | 35 +++++++----------------------------
 src/nautilus-properties-window.h |  2 +-
 2 files changed, 8 insertions(+), 29 deletions(-)
---
diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
index 90fd5dc6c..4a4b0f435 100644
--- a/src/nautilus-properties-window.c
+++ b/src/nautilus-properties-window.c
@@ -75,7 +75,7 @@ typedef struct
 
 struct _NautilusPropertiesWindow
 {
-    GtkDialog parent_instance;
+    GtkWindow parent_instance;
 
     GList *original_files;
     GList *target_files;
@@ -214,7 +214,7 @@ static GtkLabel *attach_ellipsizing_value_label (GtkGrid    *grid,
 
 static GtkWidget *create_pie_widget (NautilusPropertiesWindow *window);
 
-G_DEFINE_TYPE (NautilusPropertiesWindow, nautilus_properties_window, GTK_TYPE_DIALOG);
+G_DEFINE_TYPE (NautilusPropertiesWindow, nautilus_properties_window, GTK_TYPE_WINDOW);
 
 static gboolean
 is_multi_file_window (NautilusPropertiesWindow *window)
@@ -5047,9 +5047,9 @@ create_properties_window (StartupData *startup_data)
 {
     NautilusPropertiesWindow *window;
     GList *l;
+    GtkWidget *content_box;
 
     window = NAUTILUS_PROPERTIES_WINDOW (gtk_widget_new (NAUTILUS_TYPE_PROPERTIES_WINDOW,
-                                                         "use-header-bar", TRUE,
                                                          "type-hint", GDK_WINDOW_TYPE_HINT_DIALOG,
                                                          "modal", TRUE,
                                                          NULL));
@@ -5134,13 +5134,15 @@ create_properties_window (StartupData *startup_data)
     }
 
     /* Create the notebook tabs. */
+    content_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
     window->notebook = GTK_NOTEBOOK (gtk_notebook_new ());
     gtk_notebook_set_show_border (window->notebook, FALSE);
-    gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (window))), 0);
+    gtk_container_add (GTK_CONTAINER (window), content_box);
     gtk_widget_show (GTK_WIDGET (window->notebook));
-    gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))),
+    gtk_box_pack_start (GTK_BOX (content_box),
                         GTK_WIDGET (window->notebook),
                         TRUE, TRUE, 0);
+    gtk_widget_show (GTK_WIDGET (content_box));
 
     /* Create the pages. */
     create_basic_page (window);
@@ -5456,28 +5458,6 @@ nautilus_properties_window_present (GList                            *original_f
     }
 }
 
-static void
-real_response (GtkDialog *dialog,
-               int        response)
-{
-    switch (response)
-    {
-        case GTK_RESPONSE_NONE:
-        case GTK_RESPONSE_CLOSE:
-        case GTK_RESPONSE_DELETE_EVENT:
-        {
-            gtk_widget_destroy (GTK_WIDGET (dialog));
-        }
-        break;
-
-        default:
-        {
-            g_assert_not_reached ();
-        }
-        break;
-    }
-}
-
 static void
 real_destroy (GtkWidget *object)
 {
@@ -5804,7 +5784,6 @@ nautilus_properties_window_class_init (NautilusPropertiesWindowClass *class)
 
     G_OBJECT_CLASS (class)->finalize = real_finalize;
     GTK_WIDGET_CLASS (class)->destroy = real_destroy;
-    GTK_DIALOG_CLASS (class)->response = real_response;
 
     binding_set = gtk_binding_set_by_class (class);
     gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0,
diff --git a/src/nautilus-properties-window.h b/src/nautilus-properties-window.h
index b3f1a8dbb..c1b44a103 100644
--- a/src/nautilus-properties-window.h
+++ b/src/nautilus-properties-window.h
@@ -29,7 +29,7 @@
 
 G_DECLARE_FINAL_TYPE (NautilusPropertiesWindow, nautilus_properties_window,
                       NAUTILUS, PROPERTIES_WINDOW,
-                      GtkDialog)
+                      GtkWindow)
 
 typedef void (* NautilusPropertiesWindowCallback) (gpointer    callback_data);
 


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