mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-15 05:00:09 +00:00
Merge branch 'ebassi/for-master' into 'master'
Ebassi/for master Closes #2783 See merge request GNOME/gtk!1962
This commit is contained in:
commit
ddf6138d07
@ -1466,6 +1466,32 @@ gdk_key_event_new (GdkEventType type,
|
|||||||
return event;
|
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:
|
* gdk_key_event_get_keyval:
|
||||||
* @event: (type GdkKeyEvent): a key event
|
* @event: (type GdkKeyEvent): a key event
|
||||||
|
@ -612,6 +612,9 @@ GdkEvent * gdk_grab_broken_event_new (GdkSurface *surface,
|
|||||||
GdkSurface *grab_surface,
|
GdkSurface *grab_surface,
|
||||||
gboolean implicit);
|
gboolean implicit);
|
||||||
|
|
||||||
|
GdkTranslatedKey * gdk_key_event_get_translated_key (GdkEvent *event,
|
||||||
|
gboolean no_lock);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GDK_EVENTS_PRIVATE_H__ */
|
#endif /* __GDK_EVENTS_PRIVATE_H__ */
|
||||||
|
@ -939,6 +939,7 @@ gtk_accelerator_print_label (GString *gstring,
|
|||||||
if (accelerator_key >= GDK_KEY_KP_Space &&
|
if (accelerator_key >= GDK_KEY_KP_Space &&
|
||||||
accelerator_key <= GDK_KEY_KP_Equal)
|
accelerator_key <= GDK_KEY_KP_Equal)
|
||||||
{
|
{
|
||||||
|
/* Translators: "KP" means "numeric key pad" */
|
||||||
g_string_append (gstring, C_("keyboard label", "KP"));
|
g_string_append (gstring, C_("keyboard label", "KP"));
|
||||||
g_string_append (gstring, " ");
|
g_string_append (gstring, " ");
|
||||||
}
|
}
|
||||||
|
@ -1244,8 +1244,8 @@ static GdkEvent *
|
|||||||
rewrite_event_for_toplevel (GdkEvent *event)
|
rewrite_event_for_toplevel (GdkEvent *event)
|
||||||
{
|
{
|
||||||
GdkSurface *surface;
|
GdkSurface *surface;
|
||||||
GdkKeyEvent *key_event;
|
|
||||||
GdkEventType event_type;
|
GdkEventType event_type;
|
||||||
|
GdkTranslatedKey *key, *key_no_lock;
|
||||||
|
|
||||||
surface = gdk_event_get_surface (event);
|
surface = gdk_event_get_surface (event);
|
||||||
if (!surface->parent)
|
if (!surface->parent)
|
||||||
@ -1259,9 +1259,9 @@ rewrite_event_for_toplevel (GdkEvent *event)
|
|||||||
while (surface->parent)
|
while (surface->parent)
|
||||||
surface = surface->parent;
|
surface = surface->parent;
|
||||||
|
|
||||||
key_event = (GdkKeyEvent *) event;
|
key = gdk_key_event_get_translated_key (event, FALSE);
|
||||||
|
key_no_lock = gdk_key_event_get_translated_key (event, TRUE);
|
||||||
|
|
||||||
/* FIXME: Avoid direct access to the translated[] field */
|
|
||||||
return gdk_key_event_new (gdk_event_get_event_type (event),
|
return gdk_key_event_new (gdk_event_get_event_type (event),
|
||||||
surface,
|
surface,
|
||||||
gdk_event_get_device (event),
|
gdk_event_get_device (event),
|
||||||
@ -1270,8 +1270,7 @@ rewrite_event_for_toplevel (GdkEvent *event)
|
|||||||
gdk_key_event_get_keycode (event),
|
gdk_key_event_get_keycode (event),
|
||||||
gdk_event_get_modifier_state (event),
|
gdk_event_get_modifier_state (event),
|
||||||
gdk_key_event_is_modifier (event),
|
gdk_key_event_is_modifier (event),
|
||||||
&key_event->translated[0],
|
key, key_no_lock);
|
||||||
&key_event->translated[1]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
Loading…
Reference in New Issue
Block a user