diff options
Diffstat (limited to 'split_pane.patch')
-rw-r--r-- | split_pane.patch | 200 |
1 files changed, 97 insertions, 103 deletions
diff --git a/split_pane.patch b/split_pane.patch index 5a290a60ab77..48ec09e5d23a 100644 --- a/split_pane.patch +++ b/split_pane.patch @@ -1,8 +1,8 @@ -diff -rupN Thunar-1.6.7/thunar/thunar-standard-view.c Thunar-1.6.7-splitview/thunar/thunar-standard-view.c ---- Thunar-1.6.7/thunar/thunar-standard-view.c 2015-04-18 16:25:18.000000000 +0200 -+++ Thunar-1.6.7-splitview/thunar/thunar-standard-view.c 2015-04-24 02:08:46.234849486 +0200 -@@ -4262,8 +4262,8 @@ thunar_standard_view_queue_popup (Thunar - standard_view, thunar_standard_view_drag_timer_destroy); +diff -rudp thunar-4.16.10.orig/thunar/thunar-standard-view.c thunar-4.16.10/thunar/thunar-standard-view.c +--- thunar-4.16.10.orig/thunar/thunar-standard-view.c 2021-10-16 13:53:35.000000000 -0400 ++++ thunar-4.16.10/thunar/thunar-standard-view.c 2021-10-16 14:55:34.000000000 -0400 +@@ -3594,8 +3594,8 @@ thunar_standard_view_queue_popup (Thunar + standard_view->priv->drag_timer_event = gtk_get_current_event (); /* register the motion notify and the button release events on the real view */ - g_signal_connect (G_OBJECT (view), "button-release-event", G_CALLBACK (thunar_standard_view_button_release_event), standard_view); @@ -12,10 +12,10 @@ diff -rupN Thunar-1.6.7/thunar/thunar-standard-view.c Thunar-1.6.7-splitview/thu } } -diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thunar-window.c ---- Thunar-1.6.7/thunar/thunar-window.c 2015-04-18 16:25:18.000000000 +0200 -+++ Thunar-1.6.7-splitview/thunar/thunar-window.c 2015-04-24 02:28:18.421547235 +0200 -@@ -81,6 +81,7 @@ enum +diff -rudp thunar-4.16.10.orig/thunar/thunar-window.c thunar-4.16.10/thunar/thunar-window.c +--- thunar-4.16.10.orig/thunar/thunar-window.c 2021-10-16 13:53:35.000000000 -0400 ++++ thunar-4.16.10/thunar/thunar-window.c 2021-10-16 15:10:34.000000000 -0400 +@@ -76,6 +76,7 @@ enum enum { BACK, @@ -23,33 +23,33 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu RELOAD, TOGGLE_SIDEPANE, TOGGLE_MENUBAR, -@@ -104,6 +105,7 @@ static void thunar_window_set_proper +@@ -111,6 +112,7 @@ static void thunar_window_set_prope + guint prop_id, const GValue *value, GParamSpec *pspec); - static gboolean thunar_window_back (ThunarWindow *window); -+static gboolean thunar_window_pane_window (ThunarWindow *window); - static gboolean thunar_window_reload (ThunarWindow *window, ++static gboolean thunar_window_pane_window (ThunarWindow *window); + static gboolean thunar_window_reload (ThunarWindow *window, gboolean reload_info); - static gboolean thunar_window_toggle_sidepane (ThunarWindow *window); -@@ -249,6 +251,9 @@ static gboolean thunar_window_save_geome - static void thunar_window_save_geometry_timer_destroy (gpointer user_data); - static void thunar_window_set_zoom_level (ThunarWindow *window, + static gboolean thunar_window_toggle_sidepane (ThunarWindow *window); +@@ -229,6 +231,9 @@ static gboolean thunar_window_save_geom + static void thunar_window_save_geometry_timer_destroy(gpointer user_data); + static void thunar_window_set_zoom_level (ThunarWindow *window, ThunarZoomLevel zoom_level); -+static gboolean thunar_window_notebook_select (GtkWidget *notebook, -+ GdkEvent *event, -+ ThunarWindow *window); - - - -@@ -258,6 +263,7 @@ struct _ThunarWindowClass ++static gboolean thunar_window_notebook_select (GtkWidget *notebook, ++ GdkEvent *event, ++ ThunarWindow *window); + static void thunar_window_update_window_icon (ThunarWindow *window); + static void thunar_window_create_menu (ThunarWindow *window, + ThunarWindowAction action, +@@ -278,6 +283,7 @@ struct _ThunarWindowClass + GtkWindowClass __parent__; /* internal action signals */ - gboolean (*back) (ThunarWindow *window); + gboolean (*pane_window) (ThunarWindow *window); gboolean (*reload) (ThunarWindow *window, gboolean reload_info); - gboolean (*toggle_sidepane) (ThunarWindow *window); -@@ -311,9 +317,12 @@ struct _ThunarWindow + gboolean (*zoom_in) (ThunarWindow *window); +@@ -312,9 +318,12 @@ struct _ThunarWindow GtkWidget *menubar; GtkWidget *spinner; GtkWidget *paned; @@ -62,16 +62,24 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu GtkWidget *view; GtkWidget *statusbar; -@@ -420,6 +429,7 @@ thunar_window_class_init (ThunarWindowCl +@@ -395,6 +404,7 @@ static XfceGtkActionEntry thunar_window_ + { THUNAR_WINDOW_ACTION_VIEW_AS_ICONS, "<Actions>/ThunarWindow/view-as-icons", "<Primary>1", XFCE_GTK_RADIO_MENU_ITEM, N_ ("_Icon View"), N_ ("Display folder content in an icon view"), NULL, G_CALLBACK (thunar_window_action_icon_view), }, + { THUNAR_WINDOW_ACTION_VIEW_AS_DETAILED_LIST, "<Actions>/ThunarWindow/view-as-detailed-list", "<Primary>2", XFCE_GTK_RADIO_MENU_ITEM, N_ ("_List View"), N_ ("Display folder content in a detailed list view"), NULL, G_CALLBACK (thunar_window_action_detailed_view), }, + { THUNAR_WINDOW_ACTION_VIEW_AS_COMPACT_LIST, "<Actions>/ThunarWindow/view-as-compact-list", "<Primary>3", XFCE_GTK_RADIO_MENU_ITEM, N_ ("_Compact View"), N_ ("Display folder content in a compact list view"), NULL, G_CALLBACK (thunar_window_action_compact_view), }, ++ { THUNAR_WINDOW_ACTION_PANE_WINDOW, "<Actions>/ThunarWindow/pane-window", "F3", XFCE_GTK_RADIO_MENU_ITEM, NULL, NULL, NULL, G_CALLBACK (thunar_window_pane_window), }, + + { THUNAR_WINDOW_ACTION_GO_MENU, "<Actions>/ThunarWindow/go-menu", "", XFCE_GTK_MENU_ITEM, N_ ("_Go"), NULL, NULL, NULL }, + { THUNAR_WINDOW_ACTION_OPEN_FILE_SYSTEM, "<Actions>/ThunarWindow/open-file-system", "", XFCE_GTK_IMAGE_MENU_ITEM, N_ ("File System"), N_ ("Browse the file system"), "drive-harddisk", G_CALLBACK (thunar_window_action_open_file_system), }, +@@ -453,6 +463,7 @@ thunar_window_class_init (ThunarWindowCl gtkwidget_class->configure_event = thunar_window_configure_event; - klass->back = thunar_window_back; -+ klass->pane_window = thunar_window_pane_window; klass->reload = thunar_window_reload; - klass->toggle_sidepane = thunar_window_toggle_sidepane; - klass->toggle_menubar = thunar_window_toggle_menubar; -@@ -503,6 +513,23 @@ thunar_window_class_init (ThunarWindowCl - G_TYPE_BOOLEAN, 0); ++ klass->pane_window = thunar_window_pane_window; + klass->zoom_in = thunar_window_zoom_in; + klass->zoom_out = thunar_window_zoom_out; + klass->zoom_reset = thunar_window_zoom_reset; +@@ -503,6 +514,23 @@ thunar_window_class_init (ThunarWindowCl + EXO_PARAM_READWRITE)); /** + * ThunarWindow::pane-window: @@ -90,35 +98,29 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu + _thunar_marshal_BOOLEAN__VOID, + G_TYPE_BOOLEAN, 0); + -+ /** ++/** * ThunarWindow::reload: * @window : a #ThunarWindow instance. * -@@ -623,6 +650,7 @@ thunar_window_class_init (ThunarWindowCl - /* setup the key bindings for the windows */ - binding_set = gtk_binding_set_by_class (klass); - gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, 0, "back", 0); -+ gtk_binding_entry_add_signal (binding_set, GDK_F3, 0, "pane-window", 0); - gtk_binding_entry_add_signal (binding_set, GDK_F5, 0, "reload", 1, G_TYPE_BOOLEAN, TRUE); - gtk_binding_entry_add_signal (binding_set, GDK_F9, 0, "toggle-sidepane", 0); - gtk_binding_entry_add_signal (binding_set, GDK_F10, 0, "toggle-menubar", 0); -@@ -861,31 +889,44 @@ thunar_window_init (ThunarWindow *window +@@ -757,25 +785,35 @@ thunar_window_init (ThunarWindow *window g_signal_connect_swapped (window->paned, "button-release-event", G_CALLBACK (thunar_window_save_paned), window); - window->view_box = gtk_table_new (3, 1, FALSE); + window->view_box = gtk_grid_new (); - gtk_paned_pack2 (GTK_PANED (window->paned), window->view_box, TRUE, FALSE); + gtk_paned_add2 (GTK_PANED (window->paned), window->view_box); gtk_widget_show (window->view_box); -+ /* Create panes when the notebook will be */ -+ window->panes = gtk_hpaned_new (); ++ /* Create panes where the notebook will be */ ++ window->panes = gtk_hpaned_new (); gtk_widget_set_hexpand (window->panes, TRUE); gtk_widget_set_vexpand (window->panes, TRUE); + gtk_widget_add_events (window->panes, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK); -+ gtk_table_attach (GTK_TABLE (window->view_box), window->panes, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); ++ gtk_grid_attach (GTK_GRID (window->view_box), window->panes, 0, 1, 1, 1); + gtk_widget_show (window->panes); + /* tabs */ - window->notebook = gtk_notebook_new (); -- gtk_table_attach (GTK_TABLE (window->view_box), window->notebook, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); +- gtk_widget_set_hexpand (window->notebook, TRUE); +- gtk_widget_set_vexpand (window->notebook, TRUE); +- gtk_grid_attach (GTK_GRID (window->view_box), window->notebook, 0, 1, 1, 1); - g_signal_connect (G_OBJECT (window->notebook), "switch-page", G_CALLBACK (thunar_window_notebook_switch_page), window); - g_signal_connect (G_OBJECT (window->notebook), "page-added", G_CALLBACK (thunar_window_notebook_page_added), window); - g_signal_connect (G_OBJECT (window->notebook), "page-removed", G_CALLBACK (thunar_window_notebook_page_removed), window); @@ -126,12 +128,11 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu - g_signal_connect (G_OBJECT (window->notebook), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window); - g_signal_connect (G_OBJECT (window->notebook), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window); - gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook), FALSE); -- gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook), TRUE); - gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook), TRUE); - gtk_container_set_border_width (GTK_CONTAINER (window->notebook), 0); - gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook), "thunar-tabs"); - gtk_widget_show (window->notebook); -+ // notebook1 ++ /* notebook1 */ + window->notebook1 = gtk_notebook_new (); + gtk_paned_pack1 (GTK_PANED (window->panes), window->notebook1, TRUE, FALSE); + g_signal_connect (G_OBJECT (window->notebook1), "switch-page", G_CALLBACK (thunar_window_notebook_switch_page), window); @@ -141,37 +142,27 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu + g_signal_connect (G_OBJECT (window->notebook1), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window); + g_signal_connect (G_OBJECT (window->notebook1), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window); + gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook1), FALSE); -+ gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE); ++ //gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE); + gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook1), TRUE); + gtk_container_set_border_width (GTK_CONTAINER (window->notebook1), 0); + gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook1), "thunar-tabs"); + gtk_widget_show (window->notebook1); - - /* drop the notebook borders */ - style = gtk_rc_style_new (); - style->xthickness = style->ythickness = 0; -- gtk_widget_modify_style (window->notebook, style); -+ gtk_widget_modify_style (window->notebook1, style); - g_object_unref (G_OBJECT (style)); - -+ // notebook2 -+ window->notebook2 = NULL; + -+ /* The notebook selected and actived */ ++ /* notebook2 */ ++ window->notebook2 = NULL; + window->notebook = window->notebook1; -+ - /* determine the selected location selector */ - if (exo_str_is_equal (last_location_bar, g_type_name (THUNAR_TYPE_LOCATION_BUTTONS))) - type = THUNAR_TYPE_LOCATION_BUTTONS; -@@ -1392,6 +1433,130 @@ thunar_window_binding_create (ThunarWind + + /* allocate the new location bar widget */ + window->location_bar = thunar_location_bar_new (); +@@ -1632,6 +1670,122 @@ thunar_window_binding_create (ThunarWind +static gboolean +thunar_window_pane_window (ThunarWindow *window) +{ ++ GType view_type; + ThunarFile *directory; -+ GtkRcStyle *style; + + _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); + _thunar_return_val_if_fail (window->view_type != G_TYPE_NONE, FALSE); @@ -181,16 +172,16 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu + { + /* notebook1 is the selected notebook so it destroys notebook2 */ + if (window->notebook == window->notebook1) -+ { -+ gtk_widget_destroy (window->notebook2); -+ window->notebook2 = NULL; -+ } ++ { ++ gtk_widget_destroy (window->notebook2); ++ window->notebook2 = NULL; ++ } + /* notebook2 is the selected notebook so it destroys notebook1 */ + else -+ { -+ gtk_widget_destroy (window->notebook1); -+ window->notebook1 = NULL; -+ } ++ { ++ gtk_widget_destroy (window->notebook1); ++ window->notebook1 = NULL; ++ } + } + /* notebook1 is null so it crates it */ + else if (window->notebook1 == NULL) @@ -205,22 +196,18 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu + g_signal_connect (G_OBJECT (window->notebook1), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window); + g_signal_connect (G_OBJECT (window->notebook1), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window); + gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook1), FALSE); -+ gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE); ++ //gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE); + gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook1), TRUE); + gtk_container_set_border_width (GTK_CONTAINER (window->notebook1), 0); + gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook1), "thunar-tabs"); + gtk_widget_show (window->notebook1); + -+ /* drop the notebook borders */ -+ style = gtk_rc_style_new (); -+ style->xthickness = style->ythickness = 0; -+ gtk_widget_modify_style (window->notebook1, style); -+ g_object_unref (G_OBJECT (style)); -+ + /* set notebook2 to selected notebook */ + window->notebook = window->notebook1; + directory = thunar_window_get_current_directory (window); -+ thunar_window_notebook_insert (window, directory); ++ view_type = thunar_window_view_type_for_directory (window, directory); ++ ++ thunar_window_notebook_insert (window, directory, view_type, 0, NULL); + } + /* Otherwise notebook2 is null so it creates it */ + else @@ -235,22 +222,18 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu + g_signal_connect (G_OBJECT (window->notebook2), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window); + g_signal_connect (G_OBJECT (window->notebook2), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window); + gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook2), FALSE); -+ gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook2), TRUE); ++ //gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook2), TRUE); + gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook2), TRUE); + gtk_container_set_border_width (GTK_CONTAINER (window->notebook2), 0); + gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook2), "thunar-tabs"); + gtk_widget_show (window->notebook2); + -+ /* drop the notebook borders */ -+ style = gtk_rc_style_new (); -+ style->xthickness = style->ythickness = 0; -+ gtk_widget_modify_style (window->notebook2, style); -+ g_object_unref (G_OBJECT (style)); -+ + /* set notebook2 to selected notebook */ + window->notebook = window->notebook2; + directory = thunar_window_get_current_directory (window); -+ thunar_window_notebook_insert (window, directory); ++ view_type = thunar_window_view_type_for_directory (window, directory); ++ ++ thunar_window_notebook_insert (window, directory, view_type, 0, NULL); + } + + return TRUE; @@ -282,7 +265,7 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu + window->notebook = selected_notebook; + current_page_n = gtk_notebook_get_current_page (GTK_NOTEBOOK (window->notebook)); + current_page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->notebook), current_page_n); -+ thunar_component_set_ui_manager (THUNAR_COMPONENT (window->view), NULL); ++ //thunar_component_set_ui_manager (THUNAR_COMPONENT (window->view), NULL); + window->view = NULL; + thunar_window_notebook_switch_page (window->notebook, current_page, current_page_n, window); + @@ -294,18 +277,18 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu static void thunar_window_notebook_switch_page (GtkWidget *notebook, GtkWidget *page, -@@ -1405,7 +1570,8 @@ thunar_window_notebook_switch_page (GtkW +@@ -1645,7 +1799,8 @@ thunar_window_notebook_switch_page (GtkW _thunar_return_if_fail (THUNAR_IS_WINDOW (window)); _thunar_return_if_fail (GTK_IS_NOTEBOOK (notebook)); _thunar_return_if_fail (THUNAR_IS_VIEW (page)); - _thunar_return_if_fail (window->notebook == notebook); + _thunar_return_if_fail (window->notebook1 == notebook || -+ window->notebook2 == notebook); ++ window->notebook2 == notebook); /* leave if nothing changed */ if (window->view == page) -@@ -1553,7 +1719,7 @@ thunar_window_notebook_page_removed (Gtk - thunar_component_set_ui_manager (THUNAR_COMPONENT (page), NULL); +@@ -1812,7 +1967,7 @@ thunar_window_notebook_page_removed (Gtk + g_signal_handlers_disconnect_matched (page, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, window); n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)); - if (n_pages == 0) @@ -313,15 +296,26 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu { /* destroy the window */ gtk_widget_destroy (GTK_WIDGET (window)); -@@ -1784,6 +1950,11 @@ thunar_window_notebook_insert (ThunarWin +@@ -2033,6 +2188,11 @@ thunar_window_notebook_insert (ThunarWin gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (window->notebook), view, TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (window->notebook), view, TRUE); + /* connect signal view */ + gtk_widget_add_events (GTK_WIDGET (view), GDK_BUTTON_PRESS_MASK); -+ g_signal_connect (G_OBJECT (GTK_BIN (view)->child), "button-press-event", G_CALLBACK (thunar_window_notebook_select), window); -+ g_signal_connect (G_OBJECT (GTK_BIN (view)->child), "button-release-event", G_CALLBACK (thunar_window_notebook_select), window); ++ g_signal_connect (G_OBJECT (gtk_bin_get_child (GTK_BIN (view))), "button-press-event", G_CALLBACK (thunar_window_notebook_select), window); ++ g_signal_connect (G_OBJECT (gtk_bin_get_child (GTK_BIN (view))), "button-release-event", G_CALLBACK (thunar_window_notebook_select), window); + - /* take focus on the view */ - gtk_widget_grab_focus (view); + return view; } + +diff -rudp thunar-4.16.10.orig/thunar/thunar-window.h thunar-4.16.10/thunar/thunar-window.h +--- thunar-4.16.10.orig/thunar/thunar-window.h 2021-10-16 13:53:35.000000000 -0400 ++++ thunar-4.16.10/thunar/thunar-window.h 2021-10-16 14:55:34.000000000 -0400 +@@ -74,6 +74,7 @@ typedef enum + THUNAR_WINDOW_ACTION_VIEW_AS_ICONS, + THUNAR_WINDOW_ACTION_VIEW_AS_DETAILED_LIST, + THUNAR_WINDOW_ACTION_VIEW_AS_COMPACT_LIST, ++ THUNAR_WINDOW_ACTION_PANE_WINDOW, + THUNAR_WINDOW_ACTION_GO_MENU, + THUNAR_WINDOW_ACTION_OPEN_PARENT, + THUNAR_WINDOW_ACTION_BACK, |