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;
|
GdkKeymap parent_instance;
|
||||||
|
|
||||||
struct xkb_keymap *xkb_keymap;
|
struct xkb_keymap *xkb_keymap;
|
||||||
|
struct xkb_state *xkb_state;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GdkWaylandKeymapClass
|
struct _GdkWaylandKeymapClass
|
||||||
@ -656,6 +657,7 @@ _gdk_wayland_keymap_new ()
|
|||||||
names.variant = "";
|
names.variant = "";
|
||||||
names.options = "";
|
names.options = "";
|
||||||
keymap->xkb_keymap = xkb_map_new_from_names(context, &names, XKB_MAP_COMPILE_PLACEHOLDER);
|
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);
|
xkb_context_unref (context);
|
||||||
|
|
||||||
return GDK_KEYMAP (keymap);
|
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);
|
keymap->xkb_keymap = xkb_map_new_from_string (context, map_str, format, XKB_MAP_COMPILE_PLACEHOLDER);
|
||||||
munmap (map_str, size);
|
munmap (map_str, size);
|
||||||
close (fd);
|
close (fd);
|
||||||
|
keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
|
||||||
xkb_context_unref (context);
|
xkb_context_unref (context);
|
||||||
|
|
||||||
return GDK_KEYMAP (keymap);
|
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;
|
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,
|
GdkKeymap *_gdk_wayland_keymap_new_from_fd (uint32_t format,
|
||||||
uint32_t fd, uint32_t size);
|
uint32_t fd, uint32_t size);
|
||||||
struct xkb_desc *_gdk_wayland_keymap_get_xkb_desc (GdkKeymap *keymap);
|
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,
|
GdkCursor *_gdk_wayland_display_get_cursor_for_type (GdkDisplay *display,
|
||||||
GdkCursorType cursor_type);
|
GdkCursorType cursor_type);
|
||||||
|
Loading…
Reference in New Issue
Block a user