[Xfce4-commits] [xfce/xfce4-appfinder] 02/05: UX enh.: jump to the second item when down key is pressed
noreply at xfce.org
noreply at xfce.org
Sat Aug 18 20:32:50 CEST 2018
This is an automated email from the git hooks/post-receive script.
a n d r e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfce4-appfinder.
commit 09ee57c0e562c7511a3134098d2800b6f4a632ce
Author: Andre Miranda <andreldm at xfce.org>
Date: Sat Aug 18 14:45:14 2018 -0300
UX enh.: jump to the second item when down key is pressed
---
src/appfinder-window.c | 52 +++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 41 insertions(+), 11 deletions(-)
diff --git a/src/appfinder-window.c b/src/appfinder-window.c
index 41aa7c6..c0b431a 100644
--- a/src/appfinder-window.c
+++ b/src/appfinder-window.c
@@ -803,6 +803,23 @@ xfce_appfinder_window_view_get_selected (XfceAppfinderWindow *window,
+static gboolean
+xfce_appfinder_window_view_get_selected_path (XfceAppfinderWindow *window,
+ GtkTreePath **path)
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+
+ if (!xfce_appfinder_window_view_get_selected (window, &model, &iter))
+ return FALSE;
+
+ *path = gtk_tree_model_get_path (model, &iter);
+
+ return (*path != NULL);
+}
+
+
+
static void
xfce_appfinder_window_popup_menu_toggle_bookmark (GtkWidget *mi,
XfceAppfinderWindow *window)
@@ -1322,17 +1339,26 @@ xfce_appfinder_window_entry_key_press_event (GtkWidget *entry,
{
gboolean expand;
gboolean is_expanded;
+ GtkTreePath *path;
- if (event->keyval == GDK_KEY_Up
- || event->keyval == GDK_KEY_Down)
+ if (event->keyval == GDK_KEY_Tab &&
+ !gtk_widget_get_visible (window->paned) &&
+ xfce_appfinder_window_pointer_is_grabbed (entry))
+ {
+ /* don't tab to the close button */
+ return TRUE;
+ }
+
+ if (event->keyval == GDK_KEY_Up ||
+ event->keyval == GDK_KEY_Down)
{
expand = (event->keyval == GDK_KEY_Down);
is_expanded = gtk_widget_get_visible (window->paned);
+
if (is_expanded != expand)
{
/* don't break entry completion navigation in collapsed mode */
- if (!is_expanded
- && xfce_appfinder_window_pointer_is_grabbed (entry))
+ if (!is_expanded && xfce_appfinder_window_pointer_is_grabbed (entry))
{
/* window is still collapsed and the pointer is grabbed
* by the popup menu, do nothing with the event */
@@ -1342,13 +1368,17 @@ xfce_appfinder_window_entry_key_press_event (GtkWidget *entry,
xfce_appfinder_window_set_expanded (window, expand);
return TRUE;
}
- }
- else if (event->keyval == GDK_KEY_Tab
- && !gtk_widget_get_visible (window->paned)
- && xfce_appfinder_window_pointer_is_grabbed (entry))
- {
- /* don't tab to the close button */
- return TRUE;
+
+ /* The first item is usually selected, so we should jump to 2nd one
+ * when down key is pressed */
+ if (is_expanded && expand &&
+ GTK_IS_TREE_VIEW (window->view) && /* does not make sense for icon view */
+ xfce_appfinder_window_view_get_selected_path (window, &path))
+ {
+ gtk_tree_path_next (path);
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (window->view), path, NULL, FALSE);
+ gtk_tree_path_free (path);
+ }
}
return FALSE;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list