Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Tue, 11 Nov 2014 16:46:31 UTC Commit: 8da955ec949b3d60a68402847703c2a16f617f70 https://github.com/geany/geany/commit/8da955ec949b3d60a68402847703c2a16f617f...
Log Message: ----------- Make the currently open project insensitive in the recent menu
Modified Paths: -------------- src/project.c src/ui_utils.c src/ui_utils.h
Modified: src/project.c 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -381,6 +381,7 @@ static void update_ui(void) build_menu_update(NULL); // update project name sidebar_openfiles_update_all(); + ui_update_recent_project_menu(); }
Modified: src/ui_utils.c 29 lines changed, 29 insertions(+), 0 deletions(-) =================================================================== @@ -1279,6 +1279,29 @@ static gint find_recent_file_item(gconstpointer list_data, gconstpointer user_da }
+/* update the project menu item's sensitivity */ +void ui_update_recent_project_menu(void) +{ + GeanyRecentFiles *grf = recent_get_recent_projects(); + GList *children, *item; + + /* only need to update the menubar menu, the project doesn't have a toolbar item */ + children = gtk_container_get_children(GTK_CONTAINER(grf->menubar)); + for (item = children; item; item = item->next) + { + gboolean sensitive = TRUE; + + if (app->project) + { + const gchar *filename = gtk_menu_item_get_label(item->data); + sensitive = g_strcmp0(app->project->file_name, filename) != 0; + } + gtk_widget_set_sensitive(item->data, sensitive); + } + g_list_free(children); +} + + static void add_recent_file_menu_item(const gchar *utf8_filename, GeanyRecentFiles *grf, GtkWidget *menu) { GtkWidget *child = gtk_menu_item_new_with_label(utf8_filename); @@ -1327,6 +1350,9 @@ static void recent_file_loaded(const gchar *utf8_filename, GeanyRecentFiles *grf add_recent_file_menu_item(utf8_filename, grf, parents[i]); g_list_free(children); } + + if (grf->type == RECENT_FILE_PROJECT) + ui_update_recent_project_menu(); }
@@ -1362,6 +1388,9 @@ static void update_recent_menu(GeanyRecentFiles *grf) /* create the new item */ add_recent_file_menu_item(filename, grf, parents[i]); } + + if (grf->type == RECENT_FILE_PROJECT) + ui_update_recent_project_menu(); }
Modified: src/ui_utils.h 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -321,6 +321,8 @@ void ui_add_recent_document(GeanyDocument *doc);
void ui_add_recent_project_file(const gchar *utf8_filename);
+void ui_update_recent_project_menu(void); +
void ui_update_tab_status(GeanyDocument *doc);
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).