[gtk/ebassi/for-master: 1/3] Add private accessor for GdkKeyEvent.translated
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/ebassi/for-master: 1/3] Add private accessor for GdkKeyEvent.translated
- Date: Sun, 24 May 2020 14:22:10 +0000 (UTC)
commit 0cf5b66e7b0fda0857f18be602184e2891d9b6ae
Author: Emmanuele Bassi <ebassi gnome org>
Date: Fri May 22 12:35:58 2020 +0100
Add private accessor for GdkKeyEvent.translated
Avoid accessing the event structure directly, even from within GTK.
gdk/gdkevents.c | 26 ++++++++++++++++++++++++++
gdk/gdkeventsprivate.h | 3 +++
2 files changed, 29 insertions(+)
---
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index 5495d5e6ca..cc26f2f085 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -1466,6 +1466,32 @@ gdk_key_event_new (GdkEventType type,
return event;
}
+/*< private >
+ * gdk_key_event_get_translated_key:
+ * @event: (type GdkKeyEvent): a key event
+ * @no_lock: whether the translated key should take the event
+ * state into account
+ *
+ * Extracts the translated key from a key event.
+ *
+ * Returns: (transfer none): the translated key
+ */
+GdkTranslatedKey *
+gdk_key_event_get_translated_key (GdkEvent *event,
+ gboolean no_lock)
+{
+ GdkKeyEvent *self = (GdkKeyEvent *) event;
+
+ g_return_val_if_fail (GDK_IS_EVENT (event), NULL);
+ g_return_val_if_fail (GDK_IS_EVENT_TYPE (event, GDK_KEY_PRESS) ||
+ GDK_IS_EVENT_TYPE (event, GDK_KEY_RELEASE), NULL);
+
+ if (no_lock)
+ return &(self->translated[1]);
+
+ return &(self->translated[0]);
+}
+
/**
* gdk_key_event_get_keyval:
* @event: (type GdkKeyEvent): a key event
diff --git a/gdk/gdkeventsprivate.h b/gdk/gdkeventsprivate.h
index 0a7b1300cd..eca81486d2 100644
--- a/gdk/gdkeventsprivate.h
+++ b/gdk/gdkeventsprivate.h
@@ -612,6 +612,9 @@ GdkEvent * gdk_grab_broken_event_new (GdkSurface *surface,
GdkSurface *grab_surface,
gboolean implicit);
+GdkTranslatedKey * gdk_key_event_get_translated_key (GdkEvent *event,
+ gboolean no_lock);
+
G_END_DECLS
#endif /* __GDK_EVENTS_PRIVATE_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]