Beispiel #1
0
static GdkKeymap *
gdk_wayland_display_get_keymap (GdkDisplay *display)
{
  GdkDisplayWayland *display_wayland;

  g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
  display_wayland = GDK_DISPLAY_WAYLAND (display);

  if (!display_wayland->keymap)
    display_wayland->keymap = _gdk_wayland_keymap_new (display);

  return display_wayland->keymap;
}
Beispiel #2
0
static GdkKeymap *
_gdk_wayland_display_get_keymap (GdkDisplay *display)
{
  GdkDevice *core_keyboard = NULL;
  static GdkKeymap *tmp_keymap = NULL;

  core_keyboard = gdk_seat_get_keyboard (gdk_display_get_default_seat (display));

  if (core_keyboard && tmp_keymap)
    {
      g_object_unref (tmp_keymap);
      tmp_keymap = NULL;
    }

  if (core_keyboard)
    return _gdk_wayland_device_get_keymap (core_keyboard);

  if (!tmp_keymap)
    tmp_keymap = _gdk_wayland_keymap_new ();

  return tmp_keymap;
}
Beispiel #3
0
static GdkKeymap *
_gdk_wayland_display_get_keymap (GdkDisplay *display)
{
  GdkDeviceManager *device_manager;
  GList *list, *l;
  GdkDevice *core_keyboard = NULL;
  static GdkKeymap *tmp_keymap = NULL;

  device_manager = gdk_display_get_device_manager (display);
  list = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_MASTER);

  for (l = list; l; l = l->next)
    {
      GdkDevice *device;
      device = l->data;

      if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
	continue;

      core_keyboard = device;
      break;
    }

  g_list_free (list);

  if (core_keyboard && tmp_keymap)
    {
      g_object_unref (tmp_keymap);
      tmp_keymap = NULL;
    }

  if (core_keyboard)
    return _gdk_wayland_device_get_keymap (core_keyboard);

  if (!tmp_keymap)
    tmp_keymap = _gdk_wayland_keymap_new ();

  return tmp_keymap;
}