summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2014-06-12 22:29:31 -0400
committerMatthias Clasen <mclasen@redhat.com>2014-06-13 06:10:23 -0400
commit2e5cda99f87fa2133b5ddc4d545eb2acea727437 (patch)
tree298481d45ec6b215f0aa55a1ffaa37dddacaf63d
parent404149b2bf5488eef2b97be84acab77cd85bdea8 (diff)
downloadgtk+-2e5cda99f87fa2133b5ddc4d545eb2acea727437.tar.gz
inspector: Allow Escape to cancel picking
-rw-r--r--gtk/inspector/inspect-button.c17
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;
}