[Xfce4-commits] <design:master> Disable completion in expanded view.
Nick Schermer
noreply at xfce.org
Sat Jun 4 18:56:01 CEST 2011
Updating branch refs/heads/master
to 35a2ac670e98fc991545b857355f68cf5e5c5f20 (commit)
from efac5ae419cb9e11435c949c0bc2ee33a0fd2a15 (commit)
commit 35a2ac670e98fc991545b857355f68cf5e5c5f20
Author: Nick Schermer <nick at xfce.org>
Date: Sat Jun 4 18:55:01 2011 +0200
Disable completion in expanded view.
.../demo-code/c/appfinder-window.c | 22 ++++++++++++++-----
1 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c b/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c
index 0a51a4b..558c748 100644
--- a/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c
+++ b/xfce4-appfinder/merge-with-xfrun/demo-code/c/appfinder-window.c
@@ -60,6 +60,8 @@ struct _XfceAppfinderWindow
XfceAppfinderCategoryModel *category_model;
+ GtkEntryCompletion *completion;
+
GtkWidget *paned;
GtkWidget *entry;
GtkWidget *image;
@@ -168,14 +170,12 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
gtk_entry_set_icon_tooltip_text (GTK_ENTRY (window->entry), GTK_ENTRY_ICON_SECONDARY, _("Toggle view mode"));
gtk_widget_show (entry);
- completion = gtk_entry_completion_new ();
+ window->completion = completion = gtk_entry_completion_new ();
gtk_entry_completion_set_model (completion, GTK_TREE_MODEL (window->model));
gtk_entry_completion_set_text_column (completion, XFCE_APPFINDER_MODEL_COLUMN_COMMAND);
gtk_entry_completion_set_popup_completion (completion, TRUE);
gtk_entry_completion_set_popup_single_match (completion, FALSE);
gtk_entry_completion_set_inline_completion (completion, TRUE);
- gtk_entry_set_completion (GTK_ENTRY (entry), completion);
- g_object_unref (G_OBJECT (completion));
window->bin_collapsed = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
gtk_box_pack_start (GTK_BOX (vbox2), window->bin_collapsed, FALSE, TRUE, 0);
@@ -294,6 +294,7 @@ xfce_appfinder_window_finalize (GObject *object)
g_object_unref (G_OBJECT (window->model));
g_object_unref (G_OBJECT (window->category_model));
+ g_object_unref (G_OBJECT (window->completion));
(*G_OBJECT_CLASS (xfce_appfinder_window_parent_class)->finalize) (object);
}
@@ -624,9 +625,10 @@ void
xfce_appfinder_window_set_expanded (XfceAppfinderWindow *window,
gboolean expanded)
{
- GdkGeometry hints;
- gint width;
- GtkWidget *parent;
+ GdkGeometry hints;
+ gint width;
+ GtkWidget *parent;
+ GtkEntryCompletion *completion;
g_message ("set expand = %s", expanded ? "true" : "false");
@@ -668,6 +670,14 @@ xfce_appfinder_window_set_expanded (XfceAppfinderWindow *window,
expanded ? GTK_STOCK_GO_UP : GTK_STOCK_GO_DOWN);
gtk_entry_set_icon_from_icon_name (GTK_ENTRY (window->entry), GTK_ENTRY_ICON_PRIMARY, NULL);
+ /* update completion (remove completed text of restart completion) */
+ completion = gtk_entry_get_completion (GTK_ENTRY (window->entry));
+ if (completion != NULL)
+ gtk_editable_delete_selection (GTK_EDITABLE (window->entry));
+ gtk_entry_set_completion (GTK_ENTRY (window->entry), expanded ? NULL : window->completion);
+ if (!expanded)
+ gtk_entry_completion_insert_prefix (window->completion);
+
/* update state */
xfce_appfinder_window_entry_changed (window);
xfce_appfinder_window_item_changed (window);
More information about the Xfce4-commits
mailing list