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:
José Dapena Paz 2012-07-16 19:16:48 +01:00 committed by Rob Bradford
parent d2267824b3
commit a4c80bd9cb
2 changed files with 6 additions and 2 deletions

View File

@ -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;
}

View File

@ -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);