[gtk+/xi2: 1181/1239] Add "device-manager" property to GdkDevice.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+/xi2: 1181/1239] Add "device-manager" property to GdkDevice.
- Date: Tue, 29 Sep 2009 10:57:49 +0000 (UTC)
commit bc2bfdf3b5523138794b440961d7dd5718624a12
Author: Carlos Garnacho <carlos gnome org>
Date: Fri Sep 18 00:32:49 2009 +0200
Add "device-manager" property to GdkDevice.
gdk/gdkdevice.c | 15 +++++++++++++++
gdk/x11/gdkdevicemanager-core.c | 12 ++++++++----
gdk/x11/gdkdevicemanager-xi2.c | 8 +++++---
3 files changed, 28 insertions(+), 7 deletions(-)
---
diff --git a/gdk/gdkdevice.c b/gdk/gdkdevice.c
index 4ae8b75..fb8f73a 100644
--- a/gdk/gdkdevice.c
+++ b/gdk/gdkdevice.c
@@ -43,6 +43,7 @@ struct _GdkAxisInfo
struct _GdkDevicePrivate
{
+ GdkDeviceManager *device_manager;
GdkDisplay *display;
GdkDevice *relative;
GdkDeviceType type;
@@ -65,6 +66,7 @@ G_DEFINE_ABSTRACT_TYPE (GdkDevice, gdk_device, G_TYPE_OBJECT)
enum {
PROP_0,
PROP_DISPLAY,
+ PROP_DEVICE_MANAGER,
PROP_NAME,
PROP_RELATIVE,
PROP_TYPE,
@@ -92,6 +94,13 @@ gdk_device_class_init (GdkDeviceClass *klass)
GDK_TYPE_DISPLAY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class,
+ PROP_DEVICE_MANAGER,
+ g_param_spec_object ("device-manager",
+ P_("Device manager"),
+ P_("Device manager to which the device belongs to"),
+ GDK_TYPE_DEVICE_MANAGER,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (object_class,
PROP_NAME,
g_param_spec_string ("name",
P_("Device name"),
@@ -203,6 +212,9 @@ gdk_device_set_property (GObject *object,
case PROP_DISPLAY:
priv->display = g_value_get_object (value);
break;
+ case PROP_DEVICE_MANAGER:
+ priv->device_manager = g_value_get_object (value);
+ break;
case PROP_NAME:
if (device->name)
g_free (device->name);
@@ -241,6 +253,9 @@ gdk_device_get_property (GObject *object,
case PROP_DISPLAY:
g_value_set_object (value, priv->display);
break;
+ case PROP_DEVICE_MANAGER:
+ g_value_set_object (value, priv->device_manager);
+ break;
case PROP_RELATIVE:
g_value_set_object (value, priv->relative);
break;
diff --git a/gdk/x11/gdkdevicemanager-core.c b/gdk/x11/gdkdevicemanager-core.c
index 765bf23..718f119 100644
--- a/gdk/x11/gdkdevicemanager-core.c
+++ b/gdk/x11/gdkdevicemanager-core.c
@@ -69,7 +69,8 @@ gdk_device_manager_event_translator_init (GdkEventTranslatorIface *iface)
}
static GdkDevice *
-create_core_pointer (GdkDisplay *display)
+create_core_pointer (GdkDeviceManager *device_manager,
+ GdkDisplay *display)
{
return g_object_new (GDK_TYPE_DEVICE_CORE,
"name", "Core Pointer",
@@ -78,11 +79,13 @@ create_core_pointer (GdkDisplay *display)
"input-mode", GDK_MODE_SCREEN,
"has-cursor", TRUE,
"display", display,
+ "device-manager", device_manager,
NULL);
}
static GdkDevice *
-create_core_keyboard (GdkDisplay *display)
+create_core_keyboard (GdkDeviceManager *device_manager,
+ GdkDisplay *display)
{
return g_object_new (GDK_TYPE_DEVICE_CORE,
"name", "Core Keyboard",
@@ -90,6 +93,7 @@ create_core_keyboard (GdkDisplay *display)
"input-source", GDK_SOURCE_KEYBOARD,
"has-cursor", TRUE,
"display", display,
+ "device-manager", device_manager,
NULL);
}
@@ -119,8 +123,8 @@ gdk_device_manager_core_constructed (GObject *object)
device_manager = GDK_DEVICE_MANAGER_CORE (object);
display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (object));
- device_manager->core_pointer = create_core_pointer (display);
- device_manager->core_keyboard = create_core_keyboard (display);
+ device_manager->core_pointer = create_core_pointer (GDK_DEVICE_MANAGER (device_manager), display);
+ device_manager->core_keyboard = create_core_keyboard (GDK_DEVICE_MANAGER (device_manager), display);
_gdk_device_set_relative (device_manager->core_pointer, device_manager->core_keyboard);
_gdk_device_set_relative (device_manager->core_keyboard, device_manager->core_pointer);
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index 01b811f..6750eef 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -164,8 +164,9 @@ translate_device_classes (GdkDisplay *display,
}
static GdkDevice *
-create_device (GdkDisplay *display,
- XIDeviceInfo *dev)
+create_device (GdkDeviceManager *device_manager,
+ GdkDisplay *display,
+ XIDeviceInfo *dev)
{
GdkInputSource input_source;
GdkDeviceType type;
@@ -215,6 +216,7 @@ create_device (GdkDisplay *display,
"input-mode", (dev->use == XIMasterPointer) ? GDK_MODE_SCREEN : GDK_MODE_DISABLED,
"has-cursor", (dev->use == XIMasterPointer),
"display", display,
+ "device-manager", device_manager,
"device-id", dev->deviceid,
NULL);
@@ -232,7 +234,7 @@ add_device (GdkDeviceManagerXI2 *device_manager,
GdkDevice *device;
display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager));
- device = create_device (display, dev);
+ device = create_device (GDK_DEVICE_MANAGER (device_manager), display, dev);
g_hash_table_replace (device_manager->id_table,
GINT_TO_POINTER (dev->deviceid),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]