mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
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]
This commit is contained in:
10
gtk.c
10
gtk.c
@ -518,6 +518,16 @@ static gint key_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
|
|||||||
if (!fe->pixmap)
|
if (!fe->pixmap)
|
||||||
return TRUE;
|
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)
|
if (event->keyval == GDK_Up)
|
||||||
keyval = shift | ctrl | CURSOR_UP;
|
keyval = shift | ctrl | CURSOR_UP;
|
||||||
else if (event->keyval == GDK_KP_Up || event->keyval == GDK_KP_8)
|
else if (event->keyval == GDK_KP_Up || event->keyval == GDK_KP_8)
|
||||||
|
Reference in New Issue
Block a user