From ffeba69a6ffa4edc8590f02dd5f31e02c8eb88c8 Mon Sep 17 00:00:00 2001 From: Reuben Green Date: Sun, 3 May 2020 16:35:38 +0100 Subject: [PATCH] added checks for a NULL window->view in menu creation functions --- thunar/thunar-window.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/thunar/thunar-window.c b/thunar/thunar-window.c index 5420c784..085ebdd8 100644 --- a/thunar/thunar-window.c +++ b/thunar/thunar-window.c @@ -937,9 +937,15 @@ thunar_window_create_edit_menu (ThunarWindow *window, thunar_menu_add_sections (submenu, THUNAR_MENU_SECTION_CUT | THUNAR_MENU_SECTION_COPY_PASTE | THUNAR_MENU_SECTION_TRASH_DELETE); - thunar_standard_view_append_menu_item (THUNAR_STANDARD_VIEW (window->view), GTK_MENU (submenu), THUNAR_STANDARD_VIEW_ACTION_SELECT_ALL_FILES); - thunar_standard_view_append_menu_item (THUNAR_STANDARD_VIEW (window->view), GTK_MENU (submenu), THUNAR_STANDARD_VIEW_ACTION_SELECT_BY_PATTERN); - thunar_standard_view_append_menu_item (THUNAR_STANDARD_VIEW (window->view), GTK_MENU (submenu), THUNAR_STANDARD_VIEW_ACTION_INVERT_SELECTION); + if (window->view != NULL) + { + thunar_standard_view_append_menu_item (THUNAR_STANDARD_VIEW (window->view), + GTK_MENU (submenu), THUNAR_STANDARD_VIEW_ACTION_SELECT_ALL_FILES); + thunar_standard_view_append_menu_item (THUNAR_STANDARD_VIEW (window->view), + GTK_MENU (submenu), THUNAR_STANDARD_VIEW_ACTION_SELECT_BY_PATTERN); + thunar_standard_view_append_menu_item (THUNAR_STANDARD_VIEW (window->view), + GTK_MENU (submenu), THUNAR_STANDARD_VIEW_ACTION_INVERT_SELECTION); + } xfce_gtk_menu_append_seperator (GTK_MENU_SHELL (submenu)); thunar_menu_add_sections (submenu, THUNAR_MENU_SECTION_DUPLICATE | THUNAR_MENU_SECTION_MAKELINK @@ -1022,7 +1028,8 @@ thunar_window_create_view_menu (ThunarWindow *window, xfce_gtk_toggle_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_SHOW_HIDDEN), G_OBJECT (window), window->show_hidden, GTK_MENU_SHELL (submenu)); xfce_gtk_menu_append_seperator (GTK_MENU_SHELL (submenu)); - thunar_standard_view_append_menu_items (THUNAR_STANDARD_VIEW (window->view), GTK_MENU (submenu), window->accel_group); + if (window->view != NULL) + thunar_standard_view_append_menu_items (THUNAR_STANDARD_VIEW (window->view), GTK_MENU (submenu), window->accel_group); xfce_gtk_menu_append_seperator (GTK_MENU_SHELL (submenu)); xfce_gtk_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_ZOOM_IN), G_OBJECT (window), GTK_MENU_SHELL (submenu)); xfce_gtk_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_ZOOM_OUT), G_OBJECT (window), GTK_MENU_SHELL (submenu)); @@ -1053,23 +1060,27 @@ thunar_window_create_go_menu (ThunarWindow *window, ThunarMenu *submenu; gchar *icon_name; const XfceGtkActionEntry *action_entry; - ThunarHistory *history; + ThunarHistory *history = NULL; GList *lp; GtkWidget *item; _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE); _thunar_return_val_if_fail (GTK_IS_MENU_ITEM (menu), FALSE); + if (window->view != NULL) + history = thunar_standard_view_get_history (THUNAR_STANDARD_VIEW (window->view)); + submenu = g_object_new (THUNAR_TYPE_MENU, "launcher", window->launcher, NULL); gtk_menu_set_accel_group (GTK_MENU (submenu), window->accel_group); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu), GTK_WIDGET (submenu)); item = xfce_gtk_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_OPEN_PARENT), G_OBJECT (window), GTK_MENU_SHELL (submenu)); gtk_widget_set_sensitive (item, !thunar_g_file_is_root (thunar_file_get_file (window->current_directory))); - history = thunar_standard_view_get_history (THUNAR_STANDARD_VIEW (window->view)); item = xfce_gtk_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_BACK), G_OBJECT (window), GTK_MENU_SHELL (submenu)); - gtk_widget_set_sensitive (item, thunar_history_has_back (history)); + if (history != NULL) + gtk_widget_set_sensitive (item, thunar_history_has_back (history)); item = xfce_gtk_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_FORWARD), G_OBJECT (window), GTK_MENU_SHELL (submenu)); - gtk_widget_set_sensitive (item, thunar_history_has_forward (history)); + if (history != NULL) + gtk_widget_set_sensitive (item, thunar_history_has_forward (history)); xfce_gtk_menu_append_seperator (GTK_MENU_SHELL (submenu)); xfce_gtk_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_OPEN_COMPUTER), G_OBJECT (window), GTK_MENU_SHELL (submenu)); xfce_gtk_menu_item_new_from_action_entry (get_action_entry (THUNAR_WINDOW_ACTION_OPEN_HOME), G_OBJECT (window), GTK_MENU_SHELL (submenu)); -- 2.26.2