[nautilus/wip/antoniof/gnome-42: 21/72] Revert "notebook: Set action on close button"




commit 37dd92c74d295f97b783d30d11e59c0f382bdf0c
Author: António Fernandes <antoniof gnome org>
Date:   Fri Feb 11 19:01:37 2022 +0000

    Revert "notebook: Set action on close button"
    
    This reverts commit 663c5787cf0e4bbe80ceb48160406e0325127f00.

 src/nautilus-notebook.c | 35 ++++++++++++++++++++++++++++++++++-
 src/nautilus-window.c   | 12 ++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)
---
diff --git a/src/nautilus-notebook.c b/src/nautilus-notebook.c
index 256c82a58..95be6721d 100644
--- a/src/nautilus-notebook.c
+++ b/src/nautilus-notebook.c
@@ -43,6 +43,14 @@ static int  nautilus_notebook_insert_page (GtkNotebook *notebook,
                                            GtkWidget   *menu_label,
                                            int          position);
 
+enum
+{
+    TAB_CLOSE_REQUEST,
+    LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL];
+
 struct _NautilusNotebook
 {
     GtkNotebook parent_instance;
@@ -65,6 +73,17 @@ nautilus_notebook_class_init (NautilusNotebookClass *klass)
     object_class->dispose = nautilus_notebook_dispose;
 
     notebook_class->insert_page = nautilus_notebook_insert_page;
+
+    signals[TAB_CLOSE_REQUEST] =
+        g_signal_new ("tab-close-request",
+                      G_OBJECT_CLASS_TYPE (object_class),
+                      G_SIGNAL_RUN_LAST,
+                      0,
+                      NULL, NULL,
+                      g_cclosure_marshal_VOID__OBJECT,
+                      G_TYPE_NONE,
+                      1,
+                      NAUTILUS_TYPE_WINDOW_SLOT);
 }
 
 static gint
@@ -253,6 +272,19 @@ nautilus_notebook_sync_tab_label (NautilusNotebook   *notebook,
     }
 }
 
+static void
+close_button_clicked_cb (GtkWidget          *widget,
+                         NautilusWindowSlot *slot)
+{
+    GtkWidget *notebook;
+
+    notebook = gtk_widget_get_ancestor (GTK_WIDGET (slot), NAUTILUS_TYPE_NOTEBOOK);
+    if (notebook != NULL)
+    {
+        g_signal_emit (notebook, signals[TAB_CLOSE_REQUEST], 0, slot);
+    }
+}
+
 static GtkWidget *
 build_tab_label (NautilusNotebook   *notebook,
                  NautilusWindowSlot *slot)
@@ -294,7 +326,8 @@ build_tab_label (NautilusNotebook   *notebook,
     gtk_widget_set_name (close_button, "nautilus-tab-close-button");
 
     gtk_widget_set_tooltip_text (close_button, _("Close tab"));
-    gtk_actionable_set_action_name (GTK_ACTIONABLE (close_button), "win.close-current-view");
+    g_signal_connect_object (close_button, "clicked",
+                             G_CALLBACK (close_button_clicked_cb), slot, 0);
 
     gtk_box_pack_end (GTK_BOX (box), close_button, FALSE, FALSE, 0);
     gtk_widget_show (close_button);
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 066577fc2..d0162a56c 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -1775,6 +1775,15 @@ notebook_popup_menu_show (NautilusWindow *window,
     gtk_popover_popup (popover);
 }
 
+/* emitted when the user clicks the "close" button of tabs */
+static void
+notebook_tab_close_requested (NautilusNotebook   *notebook,
+                              NautilusWindowSlot *slot,
+                              NautilusWindow     *window)
+{
+    nautilus_window_slot_close (window, slot);
+}
+
 static void
 notebook_button_press_cb (GtkGestureMultiPress *gesture,
                           gint                  n_press,
@@ -1950,6 +1959,9 @@ notebook_create_window_cb (GtkNotebook *notebook,
 static void
 setup_notebook (NautilusWindow *window)
 {
+    g_signal_connect (window->notebook, "tab-close-request",
+                      G_CALLBACK (notebook_tab_close_requested),
+                      window);
     g_signal_connect (window->notebook, "popup-menu",
                       G_CALLBACK (notebook_popup_menu_cb),
                       window);


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