Revision: 530 Author: ntrel Date: 2006-07-03 05:06:13 -0700 (Mon, 03 Jul 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=530&view=rev
Log Message: ----------- Fix a problem with the recent files menu
Modified Paths: -------------- trunk/ChangeLog trunk/src/dialogs.c trunk/src/utils.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-07-03 11:31:00 UTC (rev 529) +++ trunk/ChangeLog 2006-07-03 12:06:13 UTC (rev 530) @@ -1,3 +1,9 @@ +2006-07-03 Nick Treleaven nick.treleaven@btinternet.com + + * src/utils.c, src/dialogs.c: + Fix a problem with the recent files menu. + + 2006-07-03 Enrico Tröger enrico.troeger@uvena.de
* doc/Makefile.am: Fixed wrong dependency in target 'install'.
Modified: trunk/src/dialogs.c =================================================================== --- trunk/src/dialogs.c 2006-07-03 11:31:00 UTC (rev 529) +++ trunk/src/dialogs.c 2006-07-03 12:06:13 UTC (rev 530) @@ -716,12 +716,13 @@ return; }
- for (i = (MIN(app->mru_length, g_queue_get_length(app->recent_queue)) - 1); i >= 0; i--) + for (i = 0; i < MIN(app->mru_length, g_queue_get_length(app->recent_queue)); + i++) { filename = g_queue_peek_nth(app->recent_queue, i); tmp = gtk_menu_item_new_with_label(filename); gtk_widget_show(tmp); - gtk_container_add(GTK_CONTAINER(recent_menu), tmp); + gtk_menu_shell_append(GTK_MENU_SHELL(recent_menu), tmp); g_signal_connect((gpointer) tmp, "activate", G_CALLBACK(on_recent_file_activate), (gpointer) filename); }
Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2006-07-03 11:31:00 UTC (rev 529) +++ trunk/src/utils.c 2006-07-03 12:06:13 UTC (rev 530) @@ -1937,7 +1937,7 @@ GtkWidget *recent_files_item = lookup_widget(app->window, "recent_files1"); GtkWidget *tmp; gchar *filename; - GList *children = gtk_container_get_children(GTK_CONTAINER(recent_menu)); + GList *children;
if (g_queue_get_length(app->recent_queue) == 0) { @@ -1949,8 +1949,9 @@ gtk_widget_set_sensitive(recent_files_item, TRUE); }
- // clean the MRU list - if (g_list_length(children) > app->mru_length) + // clean the MRU list before adding an item + children = gtk_container_get_children(GTK_CONTAINER(recent_menu)); + if (g_list_length(children) > app->mru_length - 1) { children = g_list_nth(children, app->mru_length - 1); while (children != NULL) @@ -1963,8 +1964,7 @@ filename = g_queue_peek_head(app->recent_queue); tmp = gtk_menu_item_new_with_label(filename); gtk_widget_show(tmp); - //gtk_menu_shell_insert(GTK_MENU_SHELL(recent_menu), tmp, 0); - gtk_container_add(GTK_CONTAINER(recent_menu), tmp); + gtk_menu_shell_prepend(GTK_MENU_SHELL(recent_menu), tmp); g_signal_connect((gpointer) tmp, "activate", G_CALLBACK(on_recent_file_activate), (gpointer) filename); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.