commit 216b85c526fe5feca950a179b363d75a5777bad3
parent 2ce5fd3a0a763c98fab26e7be61b5ef60958c138
Author: Paweł Pękala <c0rn@gazeta.pl>
Date: Sun, 20 Nov 2011 18:47:09 +0000
2011-11-20 [pawel] 3.7.10cvs95
* src/prefs_actions.c
* src/prefs_filtering.c
* src/prefs_template.c
Fix bug #1870 'arrow scrolling in filters'
Allow arrow scrolling in dialogs with list view widgets
plus couple fixes of issues I found along the way
Diffstat:
6 files changed, 68 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,12 @@
+2011-11-20 [pawel] 3.7.10cvs95
+
+ * src/prefs_actions.c
+ * src/prefs_filtering.c
+ * src/prefs_template.c
+ Fix bug #1870 'arrow scrolling in filters'
+ Allow arrow scrolling in dialogs with list view widgets
+ plus couple fixes of issues I found along the way
+
2011-11-19 [pawel] 3.7.10cvs94
* src/mimeview.c
diff --git a/PATCHSETS b/PATCHSETS
@@ -4298,3 +4298,4 @@
( cvs diff -u -r 1.1.2.58 -r 1.1.2.59 manual/advanced.xml; cvs diff -u -r 1.1.2.19 -r 1.1.2.20 manual/es/advanced.xml; ) > 3.7.10cvs92.patchset
( cvs diff -u -r 1.1.2.59 -r 1.1.2.60 manual/advanced.xml; ) > 3.7.10cvs93.patchset
( cvs diff -u -r 1.83.2.182 -r 1.83.2.183 src/mimeview.c; ) > 3.7.10cvs94.patchset
+( cvs diff -u -r 1.60.2.75 -r 1.60.2.76 src/prefs_actions.c; cvs diff -u -r 1.59.2.84 -r 1.59.2.85 src/prefs_filtering.c; cvs diff -u -r 1.12.2.79 -r 1.12.2.80 src/prefs_template.c; ) > 3.7.10cvs95.patchset
diff --git a/configure.ac b/configure.ac
@@ -12,7 +12,7 @@ MINOR_VERSION=7
MICRO_VERSION=10
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=94
+EXTRA_VERSION=95
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
diff --git a/src/prefs_actions.c b/src/prefs_actions.c
@@ -424,6 +424,7 @@ static void prefs_actions_reset_dialog(void)
{
gtk_entry_set_text(GTK_ENTRY(actions.name_entry), "");
gtk_entry_set_text(GTK_ENTRY(actions.cmd_entry), "");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(actions.shell_radiobtn), TRUE);
}
void prefs_actions_read_config(void)
@@ -537,6 +538,7 @@ static void prefs_actions_set_dialog(void)
(GTK_TREE_VIEW(actions.actions_list_view)));
prefs_actions_clear_list(store);
+ prefs_actions_reset_dialog();
for (cur = prefs_common.actions_list; cur != NULL; cur = cur->next) {
gchar *action = (gchar *) cur->data;
@@ -1078,6 +1080,20 @@ static GtkActionEntry prefs_actions_popup_entries[] =
{"PrefsActionsPopup/Duplicate", NULL, N_("D_uplicate"), NULL, NULL, G_CALLBACK(prefs_actions_duplicate_cb) },
};
+static void prefs_actions_row_selected(GtkTreeSelection *selection, GtkTreeView *list_view)
+{
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+
+ if (!gtk_tree_selection_get_selected(selection, &model, &iter))
+ return;
+
+ path = gtk_tree_model_get_path(model, &iter);
+ prefs_actions_select_row(list_view, path);
+ gtk_tree_path_free(path);
+}
+
static gint prefs_actions_list_btn_pressed(GtkWidget *widget, GdkEventButton *event,
GtkTreeView *list_view)
{
@@ -1172,6 +1188,8 @@ static GtkWidget *prefs_actions_list_view_create(void)
selector = gtk_tree_view_get_selection(list_view);
gtk_tree_selection_set_mode(selector, GTK_SELECTION_BROWSE);
+ g_signal_connect(G_OBJECT(selector), "changed",
+ G_CALLBACK(prefs_actions_row_selected), list_view);
/* create the columns */
prefs_actions_create_list_view_columns(GTK_WIDGET(list_view));
diff --git a/src/prefs_filtering.c b/src/prefs_filtering.c
@@ -114,6 +114,8 @@ static void prefs_filtering_bottom (gpointer action, gpointer data);
static gint prefs_filtering_deleted (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
+static void prefs_filtering_row_selected(GtkTreeSelection *selection,
+ GtkTreeView *list_view);
static gboolean prefs_filtering_key_pressed(GtkWidget *widget,
GdkEventKey *event,
gpointer data);
@@ -1261,7 +1263,9 @@ static void prefs_filtering_substitute_cb(gpointer action, gpointer data)
filteringprop_free(prop);
- prefs_filtering_reset_dialog();
+ prefs_filtering_row_selected(gtk_tree_view_get_selection(
+ GTK_TREE_VIEW(filtering.cond_list_view)),
+ GTK_TREE_VIEW(filtering.cond_list_view));
modified = TRUE;
}
@@ -1777,6 +1781,21 @@ static GtkActionEntry prefs_filtering_popup_entries[] =
#endif
};
+static void prefs_filtering_row_selected(GtkTreeSelection *selection,
+ GtkTreeView *list_view)
+{
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+
+ if (!gtk_tree_selection_get_selected(selection, &model, &iter))
+ return;
+
+ path = gtk_tree_model_get_path(model, &iter);
+ prefs_filtering_select_row(list_view, path);
+ gtk_tree_path_free(path);
+}
+
static gint prefs_filtering_list_btn_pressed(GtkWidget *widget, GdkEventButton *event,
GtkTreeView *list_view)
{
@@ -1880,6 +1899,8 @@ static GtkWidget *prefs_filtering_list_view_create(void)
selector = gtk_tree_view_get_selection(list_view);
gtk_tree_selection_set_mode(selector, GTK_SELECTION_BROWSE);
+ g_signal_connect(G_OBJECT(selector), "changed",
+ G_CALLBACK(prefs_filtering_row_selected), list_view);
/* create the columns */
prefs_filtering_create_list_view_columns(GTK_WIDGET(list_view));
diff --git a/src/prefs_template.c b/src/prefs_template.c
@@ -1102,6 +1102,21 @@ static GtkActionEntry prefs_template_popup_entries[] =
{"PrefsTemplatePopup/Duplicate", NULL, N_("D_uplicate"), NULL, NULL, G_CALLBACK(prefs_template_duplicate_cb) },
};
+static void prefs_template_row_selected(GtkTreeSelection *selection,
+ GtkTreeView *list_view)
+{
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+
+ if (!gtk_tree_selection_get_selected(selection, &model, &iter))
+ return;
+
+ path = gtk_tree_model_get_path(model, &iter);
+ prefs_template_select_row(list_view, path);
+ gtk_tree_path_free(path);
+}
+
static gint prefs_template_list_btn_pressed(GtkWidget *widget, GdkEventButton *event,
GtkTreeView *list_view)
{
@@ -1195,6 +1210,8 @@ static GtkWidget *prefs_template_list_view_create(void)
selector = gtk_tree_view_get_selection(list_view);
gtk_tree_selection_set_mode(selector, GTK_SELECTION_BROWSE);
+ g_signal_connect(G_OBJECT(selector), "changed",
+ G_CALLBACK(prefs_template_row_selected), list_view);
/* create the columns */
prefs_template_create_list_view_columns(GTK_WIDGET(list_view));