aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/widgets/ephy-autocompletion-window.c22
-rw-r--r--lib/widgets/ephy-location-entry.c14
2 files changed, 16 insertions, 20 deletions
diff --git a/lib/widgets/ephy-autocompletion-window.c b/lib/widgets/ephy-autocompletion-window.c
index 91e69df3c..a4a873610 100644
--- a/lib/widgets/ephy-autocompletion-window.c
+++ b/lib/widgets/ephy-autocompletion-window.c
@@ -750,11 +750,9 @@ ephy_autocompletion_window_key_press_cb (GtkWidget *widget,
GdkEventKey *event,
EphyAutocompletionWindow *aw)
{
- GdkEventKey tmp_event;
EphyAutocompletionWindowPrivate *p = aw->priv;
- GtkWidget *dest_widget;
+ GdkEventKey tmp_event;
- /* allow keyboard navigation in the alternatives clist */
if (event->keyval == GDK_Up || event->keyval == GDK_Down
|| event->keyval == GDK_Page_Up || event->keyval == GDK_Page_Down
|| ((event->keyval == GDK_space || event->keyval == GDK_Return)
@@ -763,23 +761,11 @@ ephy_autocompletion_window_key_press_cb (GtkWidget *widget,
return ephy_autocompletion_window_key_press_hack
(aw, event->keyval);
}
- else
- {
- dest_widget = p->parent;
- }
-
- if (dest_widget != widget)
- {
- tmp_event = *event;
- gtk_widget_event (dest_widget, (GdkEvent *)&tmp_event);
- return TRUE;
- }
- else
- {
- return FALSE;
- }
+ tmp_event = *event;
+ gtk_widget_event (p->parent, (GdkEvent *)&tmp_event);
+ return TRUE;
}
void
diff --git a/lib/widgets/ephy-location-entry.c b/lib/widgets/ephy-location-entry.c
index 076d8642f..f13c87e88 100644
--- a/lib/widgets/ephy-location-entry.c
+++ b/lib/widgets/ephy-location-entry.c
@@ -480,18 +480,28 @@ static gboolean
ephy_location_entry_key_press_event_cb (GtkWidget *entry, GdkEventKey *event, EphyLocationEntry *w)
{
EphyLocationEntryPrivate *p = w->priv;
+ GtkWidget *window;
switch (event->keyval)
{
case GDK_Left:
case GDK_Right:
ephy_location_entry_autocompletion_hide_alternatives (w);
- return FALSE;
+ break;
case GDK_Escape:
ephy_location_entry_set_location (w, p->before_completion);
gtk_editable_set_position (GTK_EDITABLE (p->entry), -1);
ephy_location_entry_autocompletion_hide_alternatives (w);
- return FALSE;
+ break;
+ case GDK_Tab:
+ case GDK_KP_Tab:
+ if (p->autocompletion_window_visible)
+ {
+ ephy_location_entry_autocompletion_hide_alternatives (w);
+ window = gtk_widget_get_toplevel (entry);
+ g_signal_emit_by_name (window, "move_focus", 1);
+ }
+ break;
default:
break;
}