shell: Don't start search while on regular panels

... either by just typing or pressing ctrl+F or ctrl+S.

https://bugzilla.gnome.org/show_bug.cgi?id=706268
This commit is contained in:
Rui Matos 2013-08-20 02:28:02 +01:00
parent fefa11594c
commit c1f2787c10

View file

@ -1205,12 +1205,9 @@ window_key_press_event (GtkWidget *win,
gboolean retval;
GdkModifierType state;
gboolean is_rtl;
if (gtk_search_bar_handle_event (GTK_SEARCH_BAR (self->priv->search_bar), (GdkEvent*) event) == GDK_EVENT_STOP)
return GDK_EVENT_STOP;
if (event->state == 0)
return GDK_EVENT_PROPAGATE;
gboolean overview;
gboolean search;
const gchar *id;
retval = GDK_EVENT_PROPAGATE;
state = event->state;
@ -1219,6 +1216,14 @@ window_key_press_event (GtkWidget *win,
state = state & gtk_accelerator_get_default_mod_mask ();
is_rtl = gtk_widget_get_direction (win) == GTK_TEXT_DIR_RTL;
id = gtk_stack_get_visible_child_name (GTK_STACK (self->priv->stack));
overview = g_str_equal (id, OVERVIEW_PAGE);
search = g_str_equal (id, SEARCH_PAGE);
if ((overview || search) &&
gtk_search_bar_handle_event (GTK_SEARCH_BAR (self->priv->search_bar), (GdkEvent*) event) == GDK_EVENT_STOP)
return GDK_EVENT_STOP;
if (state == GDK_CONTROL_MASK)
{
switch (event->keyval)
@ -1227,10 +1232,13 @@ window_key_press_event (GtkWidget *win,
case GDK_KEY_S:
case GDK_KEY_f:
case GDK_KEY_F:
if (!overview && !search)
break;
retval = !gtk_search_bar_get_search_mode (GTK_SEARCH_BAR (self->priv->search_bar));
gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (self->priv->search_bar), retval);
if (retval)
gtk_widget_grab_focus (self->priv->search_entry);
retval = GDK_EVENT_STOP;
break;
case GDK_KEY_Q:
case GDK_KEY_q:
@ -1239,7 +1247,7 @@ window_key_press_event (GtkWidget *win,
break;
case GDK_KEY_W:
case GDK_KEY_w:
if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (self->priv->stack)), OVERVIEW_PAGE) != 0)
if (!overview)
shell_show_overview_page (self);
retval = GDK_EVENT_STOP;
break;
@ -1247,7 +1255,7 @@ window_key_press_event (GtkWidget *win,
}
else if (state == GDK_MOD1_MASK && event->keyval == GDK_KEY_Up)
{
if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (self->priv->stack)), OVERVIEW_PAGE) != 0)
if (!overview)
shell_show_overview_page (self);
retval = GDK_EVENT_STOP;
}