Merge with 2.0-ongoing R3071.

git-svn-id: svn://localhost/ardour2/branches/3.0@3073 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
David Robillard 2008-02-16 22:43:18 +00:00
parent 1b65758557
commit 8aa9508c82
67 changed files with 2417 additions and 2421 deletions

View file

@ -463,41 +463,50 @@ key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev)
it does allow.
*/
int fakekey = GDK_VoidSymbol;
int ret = false;
switch (ev->keyval) {
case GDK_Tab:
ret = gtk_accel_groups_activate(G_OBJECT(win), GDK_nabla, GdkModifierType(ev->state));
break;
// some X and/or GDK implementations do Shift-Tab -> GDK_ISO_Left_Tab
case GDK_ISO_Left_Tab:
ret = gtk_accel_groups_activate(G_OBJECT(win), GDK_nabla, GdkModifierType(ev->state));
fakekey = GDK_nabla;
break;
case GDK_Up:
ret = gtk_accel_groups_activate(G_OBJECT(win), GDK_uparrow, GdkModifierType(ev->state));
fakekey = GDK_uparrow;
break;
case GDK_Down:
ret = gtk_accel_groups_activate(G_OBJECT(win), GDK_downarrow, GdkModifierType(ev->state));
fakekey = GDK_downarrow;
break;
case GDK_Right:
ret = gtk_accel_groups_activate(G_OBJECT(win), GDK_rightarrow, GdkModifierType(ev->state));
fakekey = GDK_rightarrow;
break;
case GDK_Left:
ret = gtk_accel_groups_activate(G_OBJECT(win), GDK_leftarrow, GdkModifierType(ev->state));
fakekey = GDK_leftarrow;
break;
default:
break;
}
if (ret) {
return true;
if (fakekey != GDK_VoidSymbol) {
ret = gtk_accel_groups_activate(G_OBJECT(win), fakekey, GdkModifierType(ev->state));
if (ret) {
return true;
}
#ifdef GTKOSX
int oldval = ev->keyval;
ev->keyval = fakekey;
if (gdk_quartz_possibly_forward ((GdkEvent*) ev)) {
return true;
}
ev->keyval = oldval;
#endif
}
}