diff options
| author | Jacob Nevins <jacobn@chiark.greenend.org.uk> | 2006-06-26 22:01:51 +0000 |
|---|---|---|
| committer | Jacob Nevins <jacobn@chiark.greenend.org.uk> | 2006-06-26 22:01:51 +0000 |
| commit | cfcd8cf8c5dda9e3c14cd7df67a4e4f6caaaca3a (patch) | |
| tree | 90a967a5835646963784621403acfd88ee24e8b1 | |
| parent | d952a3b6ffb62e56f29760cfe843e5c0fc43c96a (diff) | |
| download | puzzles-cfcd8cf8c5dda9e3c14cd7df67a4e4f6caaaca3a.zip puzzles-cfcd8cf8c5dda9e3c14cd7df67a4e4f6caaaca3a.tar.gz puzzles-cfcd8cf8c5dda9e3c14cd7df67a4e4f6caaaca3a.tar.bz2 puzzles-cfcd8cf8c5dda9e3c14cd7df67a4e4f6caaaca3a.tar.xz | |
Since r6711, puzzles built with Gtk 1.2 would take double actions when a menu
accelerator key (N/U/R/Q) was pressed -- once for the menu accelerator, and
once more in key_event().
This workaround, while unlovely, should at least not break in future (since the
things it relies on are unlikely to change).
[originally from svn r6745]
[r6711 == 077aa510c78f3273bd0d4ca4f1ca14780822ebf9]
| -rw-r--r-- | gtk.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -518,6 +518,16 @@ static gint key_event(GtkWidget *widget, GdkEventKey *event, gpointer data) if (!fe->pixmap) return TRUE; +#if !GTK_CHECK_VERSION(2,0,0) + /* Gtk 1.2 passes a key event to this function even if it's also + * defined as an accelerator. + * Gtk 2 doesn't do this, and this function appears not to exist there. */ + if (fe->accelgroup && + gtk_accel_group_get_entry(fe->accelgroup, + event->keyval, event->state)) + return TRUE; +#endif + if (event->keyval == GDK_Up) keyval = shift | ctrl | CURSOR_UP; else if (event->keyval == GDK_KP_Up || event->keyval == GDK_KP_8) |