mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
wayland: Create and expose an xkb_state on the keymap object
This is then logically associated with the input device since each (keyboard) input device has its own keymap. Signed-off-by: Rob Bradford <rob@linux.intel.com>
This commit is contained in:
parent
d2267824b3
commit
a4c80bd9cb
@ -49,6 +49,7 @@ struct _GdkWaylandKeymap
|
||||
GdkKeymap parent_instance;
|
||||
|
||||
struct xkb_keymap *xkb_keymap;
|
||||
struct xkb_state *xkb_state;
|
||||
};
|
||||
|
||||
struct _GdkWaylandKeymapClass
|
||||
@ -656,6 +657,7 @@ _gdk_wayland_keymap_new ()
|
||||
names.variant = "";
|
||||
names.options = "";
|
||||
keymap->xkb_keymap = xkb_map_new_from_names(context, &names, XKB_MAP_COMPILE_PLACEHOLDER);
|
||||
keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
|
||||
xkb_context_unref (context);
|
||||
|
||||
return GDK_KEYMAP (keymap);
|
||||
@ -682,6 +684,7 @@ _gdk_wayland_keymap_new_from_fd (uint32_t format,
|
||||
keymap->xkb_keymap = xkb_map_new_from_string (context, map_str, format, XKB_MAP_COMPILE_PLACEHOLDER);
|
||||
munmap (map_str, size);
|
||||
close (fd);
|
||||
keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
|
||||
xkb_context_unref (context);
|
||||
|
||||
return GDK_KEYMAP (keymap);
|
||||
@ -692,7 +695,7 @@ struct xkb_keymap *_gdk_wayland_keymap_get_xkb_keymap (GdkKeymap *keymap)
|
||||
return GDK_WAYLAND_KEYMAP (keymap)->xkb_keymap;
|
||||
}
|
||||
|
||||
struct xkb_desc *_gdk_wayland_keymap_get_xkb_desc (GdkKeymap *keymap)
|
||||
struct xkb_state *_gdk_wayland_keymap_get_xkb_state (GdkKeymap *keymap)
|
||||
{
|
||||
return GDK_WAYLAND_KEYMAP (keymap)->xkb;
|
||||
return GDK_WAYLAND_KEYMAP (keymap)->xkb_state;
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ GdkKeymap *_gdk_wayland_keymap_new (void);
|
||||
GdkKeymap *_gdk_wayland_keymap_new_from_fd (uint32_t format,
|
||||
uint32_t fd, uint32_t size);
|
||||
struct xkb_desc *_gdk_wayland_keymap_get_xkb_desc (GdkKeymap *keymap);
|
||||
struct xkb_state *_gdk_wayland_keymap_get_xkb_state (GdkKeymap *keymap);
|
||||
|
||||
GdkCursor *_gdk_wayland_display_get_cursor_for_type (GdkDisplay *display,
|
||||
GdkCursorType cursor_type);
|
||||
|
Loading…
Reference in New Issue
Block a user