aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2013-05-20 19:04:19 +0000
committerGerald Combs <gerald@wireshark.org>2013-05-20 19:04:19 +0000
commitb6e976a26e3cc689308873caa2b9566ac2d73f20 (patch)
tree6727df04a4fe6c3b1cf3adfb50636c08e9800027
parent1ceed4fc38db7fe5b9645d8a29fa686a0ed39607 (diff)
Fix trimming the maximum number if display filter entries.
svn path=/trunk/; revision=49456
-rw-r--r--ui/gtk/main_filter_toolbar.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/ui/gtk/main_filter_toolbar.c b/ui/gtk/main_filter_toolbar.c
index 1be01fa61a..380f7f2b21 100644
--- a/ui/gtk/main_filter_toolbar.c
+++ b/ui/gtk/main_filter_toolbar.c
@@ -373,6 +373,7 @@ main_filter_packets(capture_file *cf, const gchar *dftext, gboolean force)
gboolean free_filter = TRUE;
char *s;
cf_status_t cf_status;
+ gint filter_count;
s = g_strdup(dftext);
@@ -389,9 +390,6 @@ main_filter_packets(capture_file *cf, const gchar *dftext, gboolean force)
if (!s)
return (cf_status == CF_OK);
- /* GtkCombos don't let us get at their list contents easily, so we maintain
- our own filter list, and feed it to gtk_combo_set_popdown_strings when
- a new filter is added. */
if (cf_status == CF_OK && strlen(s) > 0) {
int indx;
@@ -407,16 +405,17 @@ main_filter_packets(capture_file *cf, const gchar *dftext, gboolean force)
gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(filter_cm), s);
indx++;
}
-
- /* If we have too many entries, remove some */
- while ((guint)indx >= prefs.gui_recent_df_entries_max) {
- gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT(filter_cm), indx);
- indx--;
- }
}
if (free_filter)
g_free(s);
+ /* If we have too many entries, remove some */
+ filter_count = gtk_tree_model_iter_n_children(gtk_combo_box_get_model(GTK_COMBO_BOX(filter_cm)), NULL);
+ while (filter_count >= (gint)prefs.gui_recent_df_entries_max) {
+ filter_count--;
+ gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT(filter_cm), filter_count);
+ }
+
return (cf_status == CF_OK);
}