summaryrefslogtreecommitdiff
path: root/gtk/gtkfilechooserentry.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2018-05-20 10:51:33 -0400
committerMatthias Clasen <mclasen@redhat.com>2018-05-21 20:20:12 -0400
commit576dcf65b334c31be108fb972166b0f5b4ef9bcd (patch)
tree3f87eeb8f21899f9c2edf0a760924a0d5b199ec0 /gtk/gtkfilechooserentry.c
parent7644a9cd726307af7cca5d9f2fa575462300ac0f (diff)
downloadgtk+-576dcf65b334c31be108fb972166b0f5b4ef9bcd.tar.gz
file chooser entry: Stop using key-press-event
Just use the generic ::event signal for now.
Diffstat (limited to 'gtk/gtkfilechooserentry.c')
-rw-r--r--gtk/gtkfilechooserentry.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c
index 05478e3aed..1b17f2aec3 100644
--- a/gtk/gtkfilechooserentry.c
+++ b/gtk/gtkfilechooserentry.c
@@ -85,7 +85,7 @@ static void gtk_file_chooser_entry_finalize (GObject *object)
static void gtk_file_chooser_entry_dispose (GObject *object);
static void gtk_file_chooser_entry_grab_focus (GtkWidget *widget);
static gboolean gtk_file_chooser_entry_tab_handler (GtkWidget *widget,
- GdkEventKey *event);
+ GdkEvent *event);
static gboolean gtk_file_chooser_entry_event (GtkWidget *widget,
GdkEvent *event);
@@ -295,7 +295,7 @@ _gtk_file_chooser_entry_init (GtkFileChooserEntry *chooser_entry)
g_object_unref (comp);
/* NB: This needs to happen after the completion is set, so this handler
* runs before the handler installed by entrycompletion */
- g_signal_connect (chooser_entry, "key-press-event",
+ g_signal_connect (chooser_entry, "event",
G_CALLBACK (gtk_file_chooser_entry_tab_handler), NULL);
#ifdef G_OS_WIN32
@@ -497,7 +497,7 @@ start_explicit_completion (GtkFileChooserEntry *chooser_entry)
static gboolean
gtk_file_chooser_entry_tab_handler (GtkWidget *widget,
- GdkEventKey *event)
+ GdkEvent *event)
{
GtkFileChooserEntry *chooser_entry;
GtkEditable *editable;
@@ -508,25 +508,28 @@ gtk_file_chooser_entry_tab_handler (GtkWidget *widget,
chooser_entry = GTK_FILE_CHOOSER_ENTRY (widget);
editable = GTK_EDITABLE (widget);
- if (!gdk_event_get_keyval ((GdkEvent *) event, &keyval))
+ if (gdk_event_get_event_type (event) != GDK_KEY_PRESS)
+ return GDK_EVENT_PROPAGATE;
+
+ if (!gdk_event_get_keyval (event, &keyval))
return GDK_EVENT_PROPAGATE;
if (keyval == GDK_KEY_Escape &&
chooser_entry->eat_escape)
{
g_signal_emit (widget, signals[HIDE_ENTRY], 0);
- return TRUE;
+ return GDK_EVENT_STOP;
}
if (!chooser_entry->eat_tabs)
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
if (keyval != GDK_KEY_Tab)
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
if (gtk_get_current_event_state (&state) &&
(state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
/* This is a bit evil -- it makes Tab never leave the entry. It basically
* makes it 'safe' for people to hit. */
@@ -537,7 +540,7 @@ gtk_file_chooser_entry_tab_handler (GtkWidget *widget,
else
start_explicit_completion (chooser_entry);
- return TRUE;
+ return GDK_EVENT_STOP;
}
static gboolean