[Xfce4-commits] <xfce4-appfinder:nick/xfrun4-merge> Fix selection of category in sidepane.
Nick Schermer
noreply at xfce.org
Wed Jun 22 20:06:01 CEST 2011
Updating branch refs/heads/nick/xfrun4-merge
to f5628dc5e2d2eeb1a342bdaa764b9d3b3a7666c7 (commit)
from f8c3d3ecb578343e8e222eb299d40a81a7d360c6 (commit)
commit f5628dc5e2d2eeb1a342bdaa764b9d3b3a7666c7
Author: Nick Schermer <nick at xfce.org>
Date: Wed Jun 22 20:03:10 2011 +0200
Fix selection of category in sidepane.
src/appfinder-model.c | 8 ++++----
src/appfinder-window.c | 36 ++++++++++++++++++++++++------------
2 files changed, 28 insertions(+), 16 deletions(-)
diff --git a/src/appfinder-model.c b/src/appfinder-model.c
index 1613d32..4744e90 100644
--- a/src/appfinder-model.c
+++ b/src/appfinder-model.c
@@ -148,9 +148,8 @@ xfce_appfinder_model_class_init (XfceAppfinderModelClass *klass)
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
0, NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1,
- G_TYPE_POINTER /* GSList */);
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
@@ -574,7 +573,7 @@ xfce_appfinder_model_collect_idle (gpointer user_data)
model->categories = model->collect_categories;
model->collect_categories = NULL;
- g_signal_emit (G_OBJECT (model), model_signals[CATEGORIES_CHANGED], 0, model->categories);
+ g_signal_emit (G_OBJECT (model), model_signals[CATEGORIES_CHANGED], 0);
g_slist_foreach (tmp, (GFunc) xfce_appfinder_model_category_free, NULL);
g_slist_free (tmp);
@@ -935,6 +934,7 @@ xfce_appfinder_model_menu_changed (GarconMenu *menu,
g_return_if_fail (XFCE_IS_APPFINDER_MODEL (model));
/* TODO */
+ APPFINDER_DEBUG ("menu changed");
}
diff --git a/src/appfinder-window.c b/src/appfinder-window.c
index e62fdac..aff88e4 100644
--- a/src/appfinder-window.c
+++ b/src/appfinder-window.c
@@ -69,6 +69,7 @@ static void xfce_appfinder_window_drag_data_get (GtkWidget
XfceAppfinderWindow *window);
static void xfce_appfinder_window_category_changed (GtkTreeSelection *selection,
XfceAppfinderWindow *window);
+static void xfce_appfinder_window_category_set_categories (XfceAppfinderWindow *window);
static gboolean xfce_appfinder_window_item_visible (GtkTreeModel *model,
GtkTreeIter *iter,
gpointer data);
@@ -98,6 +99,7 @@ struct _XfceAppfinderWindow
GtkWidget *entry;
GtkWidget *image;
GtkWidget *treeview;
+ GtkWidget *sidepane;
GdkPixbuf *icon_find;
@@ -157,12 +159,10 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
GtkTreeSelection *selection;
GtkWidget *bbox;
GtkWidget *button;
- GtkTreePath *path;
GtkEntryCompletion *completion;
GtkIconTheme *icon_theme;
XfconfChannel *channel;
gint integer;
- GSList *categories;
channel = xfconf_channel_get ("xfce4-appfinder");
window->last_window_height = xfconf_channel_get_int (channel, "/LastWindowHeight", DEFAULT_WINDOW_HEIGHT);
@@ -171,12 +171,11 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
window->model = xfce_appfinder_model_get ();
/* load categories in the model */
- categories = xfce_appfinder_model_get_categories (window->model);
- if (categories != NULL)
- xfce_appfinder_category_model_set_categories (window->category_model, categories);
+ if (xfce_appfinder_model_get_categories (window->model) != NULL)
+ xfce_appfinder_window_category_set_categories (window);
g_signal_connect_swapped (G_OBJECT (window->model), "categories-changed",
- G_CALLBACK (xfce_appfinder_category_model_set_categories),
- window->category_model);
+ G_CALLBACK (xfce_appfinder_window_category_set_categories),
+ window);
gtk_window_set_title (GTK_WINDOW (window), _("Application Finder"));
integer = xfconf_channel_get_int (channel, "/LastWindowWidth", DEFAULT_WINDOW_WIDTH);
@@ -242,7 +241,7 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_widget_show (scroll);
- sidepane = gtk_tree_view_new_with_model (GTK_TREE_MODEL (window->category_model));
+ sidepane = window->sidepane = gtk_tree_view_new_with_model (GTK_TREE_MODEL (window->category_model));
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (sidepane), FALSE);
gtk_tree_view_set_enable_search (GTK_TREE_VIEW (sidepane), FALSE);
g_signal_connect_swapped (GTK_TREE_VIEW (sidepane), "start-interactive-search", G_CALLBACK (gtk_widget_grab_focus), entry);
@@ -251,10 +250,6 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
gtk_container_add (GTK_CONTAINER (scroll), sidepane);
gtk_widget_show (sidepane);
- path = gtk_tree_path_new_first ();
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (sidepane), path, NULL, FALSE);
- gtk_tree_path_free (path);
-
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sidepane));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
g_signal_connect (G_OBJECT (selection), "changed",
@@ -621,6 +616,23 @@ xfce_appfinder_window_category_changed (GtkTreeSelection *selection,
+static void
+xfce_appfinder_window_category_set_categories (XfceAppfinderWindow *window)
+{
+ GSList *categories;
+ GtkTreePath *path;
+
+ categories = xfce_appfinder_model_get_categories (window->model);
+ if (categories != NULL)
+ xfce_appfinder_category_model_set_categories (window->category_model, categories);
+
+ path = gtk_tree_path_new_first ();
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (window->sidepane), path, NULL, FALSE);
+ gtk_tree_path_free (path);
+}
+
+
+
static gboolean
xfce_appfinder_window_item_visible (GtkTreeModel *model,
GtkTreeIter *iter,
More information about the Xfce4-commits
mailing list