--- a/src/gtkconv.c Wed Jan 28 05:50:32 2004 +0000 +++ b/src/gtkconv.c Wed Jan 28 06:08:04 2004 +0000 @@ -1640,16 +1640,19 @@ { GaimGtkConversation *gtkconv = data; - if (!(event->state & GDK_CONTROL_MASK)) { - if (event->type == GDK_KEY_RELEASE) - gtk_widget_grab_focus(gtkconv->entry); - - gtk_widget_event(gtkconv->entry, (GdkEvent *)event); - - return TRUE; - } - - return FALSE; + if ((event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) || + (event->keyval == GDK_Up) || + (event->keyval == GDK_Down) || + (event->keyval == GDK_Left) || + (event->keyval == GDK_Right)) + return FALSE; + + if (event->type == GDK_KEY_RELEASE) + gtk_widget_grab_focus(gtkconv->entry); + + gtk_widget_event(gtkconv->entry, (GdkEvent *)event); + + return TRUE; } static void