Skip to content

Commit e7b68e0

Browse files
sc0wraveit65
authored andcommitted
Fix: weird item in bookmarks if the folder was removed
Fixes #1099
1 parent 1846d75 commit e7b68e0

File tree

2 files changed

+40
-11
lines changed

2 files changed

+40
-11
lines changed

libcaja-private/caja-bookmark.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -649,9 +649,14 @@ caja_bookmark_menu_item_new (CajaBookmark *bookmark)
649649

650650
image_cairo = create_image_cairo_for_bookmark (bookmark);
651651

652-
menu_item = bookmark_image_menu_item_new_from_surface (image_cairo, bookmark->details->name);
652+
if (strlen (bookmark->details->name) > 0)
653+
{
654+
menu_item = bookmark_image_menu_item_new_from_surface (image_cairo, bookmark->details->name);
653655

654-
return menu_item;
656+
return menu_item;
657+
}
658+
else
659+
return NULL;
655660
}
656661

657662
gboolean

src/caja-navigation-action.c

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,28 +139,52 @@ fill_menu (CajaNavigationWindow *window,
139139
GtkWidget *menu_item;
140140
int index;
141141
GList *list;
142+
gboolean list_void;
142143

143144
g_assert (CAJA_IS_NAVIGATION_WINDOW (window));
144145

145146
slot = CAJA_NAVIGATION_WINDOW_SLOT (CAJA_WINDOW (window)->details->active_pane->active_slot);
146147

147148
list = back ? slot->back_list : slot->forward_list;
148149
index = 0;
150+
list_void = TRUE;
151+
149152
while (list != NULL)
150153
{
151154
menu_item = caja_bookmark_menu_item_new (CAJA_BOOKMARK (list->data));
152-
g_object_set_data (G_OBJECT (menu_item), "user_data", GINT_TO_POINTER (index));
153-
gtk_widget_show (GTK_WIDGET (menu_item));
154-
g_signal_connect_object (menu_item, "activate",
155-
back
156-
? G_CALLBACK (activate_back_menu_item_callback)
157-
: G_CALLBACK (activate_forward_menu_item_callback),
158-
window, 0);
159-
160-
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
155+
156+
if (menu_item) {
157+
list_void = FALSE;
158+
g_object_set_data (G_OBJECT (menu_item), "user_data", GINT_TO_POINTER (index));
159+
gtk_widget_show (GTK_WIDGET (menu_item));
160+
g_signal_connect_object (menu_item, "activate",
161+
back
162+
? G_CALLBACK (activate_back_menu_item_callback)
163+
: G_CALLBACK (activate_forward_menu_item_callback),
164+
window, 0);
165+
166+
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
167+
}
168+
161169
list = g_list_next (list);
162170
++index;
163171
}
172+
173+
if (list_void)
174+
{
175+
gtk_menu_shell_append (GTK_MENU_SHELL (menu),
176+
eel_image_menu_item_new_from_icon ("dialog-error", _("folder removed")));
177+
if (back)
178+
{
179+
caja_navigation_window_slot_clear_back_list (slot);
180+
caja_navigation_window_allow_back (window, FALSE);
181+
}
182+
else
183+
{
184+
caja_navigation_window_slot_clear_forward_list (slot);
185+
caja_navigation_window_allow_forward (window, FALSE);
186+
}
187+
}
164188
}
165189

166190
static void

0 commit comments

Comments
 (0)