diff options
author | Kristian Rietveld <kris@gtk.org> | 2009-08-23 08:59:34 +0200 |
---|---|---|
committer | Kristian Rietveld <kris@gtk.org> | 2009-08-23 08:59:34 +0200 |
commit | 6320b12e8c63bd13ca33c5d206d9d2f322f8b21d (patch) | |
tree | 73732a98a4cc5b8f3d53f7e101f90ffd18617d69 /gtk/gtkcellrendereraccel.c | |
parent | f84df976a7f9aea5e9311ab53745f9c127b5a590 (diff) | |
download | gtk+-6320b12e8c63bd13ca33c5d206d9d2f322f8b21d.tar.gz |
Bug 526149 - GtkCellRendererAccel editing conflicts with mnemonics
GtkCellRendererAccel also needs to acquire the GTK+ grab in addition to
a GDK keyboard grab. With the GDK keyboard grab, KeyPress and
KeyRelease events are delivered as usual, although we only want to
receive them for our grab widget.
Diffstat (limited to 'gtk/gtkcellrendereraccel.c')
-rw-r--r-- | gtk/gtkcellrendereraccel.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gtk/gtkcellrendereraccel.c b/gtk/gtkcellrendereraccel.c index f3e229688b..4b25289613 100644 --- a/gtk/gtkcellrendereraccel.c +++ b/gtk/gtkcellrendereraccel.c @@ -470,6 +470,7 @@ grab_key_callback (GtkWidget *widget, edited = TRUE; out: + gtk_grab_remove (accel->grab_widget); gdk_display_keyboard_ungrab (display, event->time); gdk_display_pointer_ungrab (display, event->time); @@ -497,6 +498,7 @@ ungrab_stuff (GtkWidget *widget, { GdkDisplay *display = gtk_widget_get_display (widget); + gtk_grab_remove (accel->grab_widget); gdk_display_keyboard_ungrab (display, GDK_CURRENT_TIME); gdk_display_pointer_ungrab (display, GDK_CURRENT_TIME); @@ -606,6 +608,8 @@ gtk_cell_renderer_accel_start_editing (GtkCellRenderer *cell, gtk_widget_show_all (accel->edit_widget); + gtk_grab_add (accel->grab_widget); + g_signal_connect (G_OBJECT (accel->edit_widget), "unrealize", G_CALLBACK (ungrab_stuff), accel); |