diff options
author | Matthias Clasen <mclasen@redhat.com> | 2014-06-12 22:29:31 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-06-13 06:10:23 -0400 |
commit | 2e5cda99f87fa2133b5ddc4d545eb2acea727437 (patch) | |
tree | 298481d45ec6b215f0aa55a1ffaa37dddacaf63d | |
parent | 404149b2bf5488eef2b97be84acab77cd85bdea8 (diff) | |
download | gtk+-2e5cda99f87fa2133b5ddc4d545eb2acea727437.tar.gz |
inspector: Allow Escape to cancel picking
-rw-r--r-- | gtk/inspector/inspect-button.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gtk/inspector/inspect-button.c b/gtk/inspector/inspect-button.c index dd21f0dc5a..db88a8c858 100644 --- a/gtk/inspector/inspect-button.c +++ b/gtk/inspector/inspect-button.c @@ -263,6 +263,8 @@ property_query_event (GtkWidget *widget, GdkEvent *event, gpointer data) { + GtkInspectorWindow *iw = (GtkInspectorWindow *)data; + if (event->type == GDK_BUTTON_RELEASE) { g_signal_handlers_disconnect_by_func (widget, property_query_event, data); @@ -274,6 +276,21 @@ property_query_event (GtkWidget *widget, { on_highlight_widget (widget, event, data); } + else if (event->type == GDK_KEY_PRESS) + { + GdkEventKey *ke = (GdkEventKey*)event; + GdkDevice *device; + + if (ke->keyval == GDK_KEY_Escape) + { + g_signal_handlers_disconnect_by_func (widget, property_query_event, data); + gtk_grab_remove (widget); + device = gdk_device_get_associated_device (gdk_event_get_device (event)); + gdk_device_ungrab (device, GDK_CURRENT_TIME); + gdk_window_raise (gtk_widget_get_window (GTK_WIDGET (iw))); + clear_flash (iw); + } + } return FALSE; } |