summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdk/gdkdevice.c144
-rw-r--r--gdk/gdkdevice.h15
-rw-r--r--gdk/gdkdisplay.c18
-rw-r--r--gdk/gdkevents.c11
-rw-r--r--gdk/gdkwindow.c10
-rw-r--r--gdk/x11/gdkdevice-core.c4
-rw-r--r--gdk/x11/gdkdevice-xi.c15
-rw-r--r--gdk/x11/gdkdevice-xi2.c2
-rw-r--r--gdk/x11/gdkdevicemanager-xi.c15
-rw-r--r--gdk/x11/gdkdevicemanager-xi2.c8
-rw-r--r--gdk/x11/gdkdisplay-x11.c4
-rw-r--r--gtk/gtkbutton.c4
-rw-r--r--gtk/gtkcellrendereraccel.c2
-rw-r--r--gtk/gtkcolorsel.c2
-rw-r--r--gtk/gtkcombobox.c2
-rw-r--r--gtk/gtkdnd.c2
-rw-r--r--gtk/gtkentry.c2
-rw-r--r--gtk/gtkmenu.c2
-rw-r--r--gtk/gtkmenushell.c2
-rw-r--r--gtk/gtkplug-x11.c2
-rw-r--r--gtk/gtkscalebutton.c2
-rw-r--r--gtk/gtktooltip.c2
-rw-r--r--gtk/gtktreeview.c2
-rw-r--r--gtk/gtkwindow.c2
-rw-r--r--tests/testinput.c19
25 files changed, 149 insertions, 144 deletions
diff --git a/gdk/gdkdevice.c b/gdk/gdkdevice.c
index 593e265af2..c84c332292 100644
--- a/gdk/gdkdevice.c
+++ b/gdk/gdkdevice.c
@@ -43,6 +43,12 @@ struct _GdkAxisInfo
struct _GdkDevicePrivate
{
+ gchar *name;
+ GdkInputSource source;
+ GdkInputMode mode;
+ gboolean has_cursor;
+ gint num_keys;
+ GdkDeviceKey *keys;
GdkDeviceManager *device_manager;
GdkDisplay *display;
GdkDevice *associated;
@@ -261,13 +267,11 @@ gdk_device_dispose (GObject *object)
priv->axes = NULL;
}
- g_free (device->name);
- g_free (device->keys);
- g_free (device->axes);
+ g_free (priv->name);
+ g_free (priv->keys);
- device->name = NULL;
- device->keys = NULL;
- device->axes = NULL;
+ priv->name = NULL;
+ priv->keys = NULL;
G_OBJECT_CLASS (gdk_device_parent_class)->dispose (object);
}
@@ -290,22 +294,22 @@ gdk_device_set_property (GObject *object,
priv->device_manager = g_value_get_object (value);
break;
case PROP_NAME:
- if (device->name)
- g_free (device->name);
+ if (priv->name)
+ g_free (priv->name);
- device->name = g_value_dup_string (value);
+ priv->name = g_value_dup_string (value);
break;
case PROP_TYPE:
priv->type = g_value_get_enum (value);
break;
case PROP_INPUT_SOURCE:
- device->source = g_value_get_enum (value);
+ priv->source = g_value_get_enum (value);
break;
case PROP_INPUT_MODE:
gdk_device_set_mode (device, g_value_get_enum (value));
break;
case PROP_HAS_CURSOR:
- device->has_cursor = g_value_get_boolean (value);
+ priv->has_cursor = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -334,21 +338,19 @@ gdk_device_get_property (GObject *object,
g_value_set_object (value, priv->associated);
break;
case PROP_NAME:
- g_value_set_string (value,
- device->name);
+ g_value_set_string (value, priv->name);
break;
case PROP_TYPE:
g_value_set_enum (value, priv->type);
break;
case PROP_INPUT_SOURCE:
- g_value_set_enum (value, device->source);
+ g_value_set_enum (value, priv->source);
break;
case PROP_INPUT_MODE:
- g_value_set_enum (value, device->mode);
+ g_value_set_enum (value, priv->mode);
break;
case PROP_HAS_CURSOR:
- g_value_set_boolean (value,
- device->has_cursor);
+ g_value_set_boolean (value, priv->has_cursor);
break;
case PROP_N_AXES:
g_value_set_uint (value, priv->axes->len);
@@ -438,7 +440,7 @@ _gdk_device_allocate_history (GdkDevice *device,
for (i = 0; i < n_events; i++)
result[i] = g_malloc (sizeof (GdkTimeCoord) -
- sizeof (double) * (GDK_MAX_TIMECOORD_AXES - device->num_axes));
+ sizeof (double) * (GDK_MAX_TIMECOORD_AXES - device->priv->axes->len));
return result;
}
@@ -476,7 +478,7 @@ gdk_device_get_name (GdkDevice *device)
{
g_return_val_if_fail (GDK_IS_DEVICE (device), NULL);
- return device->name;
+ return device->priv->name;
}
/**
@@ -494,7 +496,7 @@ gdk_device_get_has_cursor (GdkDevice *device)
{
g_return_val_if_fail (GDK_IS_DEVICE (device), FALSE);
- return device->has_cursor;
+ return device->priv->has_cursor;
}
/**
@@ -512,7 +514,7 @@ gdk_device_get_source (GdkDevice *device)
{
g_return_val_if_fail (GDK_IS_DEVICE (device), 0);
- return device->source;
+ return device->priv->source;
}
/**
@@ -528,7 +530,8 @@ gdk_device_set_source (GdkDevice *device,
{
g_return_if_fail (GDK_IS_DEVICE (device));
- device->source = source;
+ device->priv->source = source;
+ g_object_notify (G_OBJECT (device), "input-source");
}
/**
@@ -546,7 +549,7 @@ gdk_device_get_mode (GdkDevice *device)
{
g_return_val_if_fail (GDK_IS_DEVICE (device), 0);
- return device->mode;
+ return device->priv->mode;
}
/**
@@ -566,7 +569,7 @@ gdk_device_set_mode (GdkDevice *device,
{
g_return_val_if_fail (GDK_IS_DEVICE (device), FALSE);
- if (device->mode == mode)
+ if (device->priv->mode == mode)
return TRUE;
if (mode == GDK_MODE_DISABLED &&
@@ -575,7 +578,7 @@ gdk_device_set_mode (GdkDevice *device,
/* FIXME: setting has_cursor when mode is window? */
- device->mode = mode;
+ device->priv->mode = mode;
g_object_notify (G_OBJECT (device), "input-mode");
if (gdk_device_get_device_type (device) != GDK_DEVICE_TYPE_MASTER)
@@ -585,6 +588,24 @@ gdk_device_set_mode (GdkDevice *device,
}
/**
+ * gdk_device_get_n_keys:
+ * @device: a #GdkDevice
+ *
+ * Returns the number of keys the device currently has.
+ *
+ * Returns: the number of keys.
+ *
+ * Since: 3.0
+ **/
+gint
+gdk_device_get_n_keys (GdkDevice *device)
+{
+ g_return_val_if_fail (GDK_IS_DEVICE (device), 0);
+
+ return device->priv->num_keys;
+}
+
+/**
* gdk_device_get_key:
* @device: a #GdkDevice.
* @index_: the index of the macro button to get.
@@ -605,17 +626,17 @@ gdk_device_get_key (GdkDevice *device,
GdkModifierType *modifiers)
{
g_return_val_if_fail (GDK_IS_DEVICE (device), FALSE);
- g_return_val_if_fail (index_ < device->num_keys, FALSE);
+ g_return_val_if_fail (index_ < device->priv->num_keys, FALSE);
- if (!device->keys[index_].keyval &&
- !device->keys[index_].modifiers)
+ if (!device->priv->keys[index_].keyval &&
+ !device->priv->keys[index_].modifiers)
return FALSE;
if (keyval)
- *keyval = device->keys[index_].keyval;
+ *keyval = device->priv->keys[index_].keyval;
if (modifiers)
- *modifiers = device->keys[index_].modifiers;
+ *modifiers = device->priv->keys[index_].modifiers;
return TRUE;
}
@@ -637,10 +658,10 @@ gdk_device_set_key (GdkDevice *device,
GdkModifierType modifiers)
{
g_return_if_fail (GDK_IS_DEVICE (device));
- g_return_if_fail (index_ < device->num_keys);
+ g_return_if_fail (index_ < device->priv->num_keys);
- device->keys[index_].keyval = keyval;
- device->keys[index_].modifiers = modifiers;
+ device->priv->keys[index_].keyval = keyval;
+ device->priv->keys[index_].modifiers = modifiers;
}
/**
@@ -658,10 +679,14 @@ GdkAxisUse
gdk_device_get_axis_use (GdkDevice *device,
guint index_)
{
+ GdkAxisInfo *info;
+
g_return_val_if_fail (GDK_IS_DEVICE (device), GDK_AXIS_IGNORE);
- g_return_val_if_fail (index_ < device->num_axes, GDK_AXIS_IGNORE);
+ g_return_val_if_fail (index_ < device->priv->axes->len, GDK_AXIS_IGNORE);
+
+ info = &g_array_index (device->priv->axes, GdkAxisInfo, index_);
- return device->axes[index_].use;
+ return info->use;
}
/**
@@ -681,29 +706,27 @@ gdk_device_set_axis_use (GdkDevice *device,
GdkAxisInfo *info;
g_return_if_fail (GDK_IS_DEVICE (device));
- g_return_if_fail (index_ < device->num_axes);
+ g_return_if_fail (index_ < device->priv->axes->len);
priv = device->priv;
info = &g_array_index (priv->axes, GdkAxisInfo, index_);
info->use = use;
- device->axes[index_].use = use;
-
switch (use)
{
case GDK_AXIS_X:
case GDK_AXIS_Y:
- device->axes[index_].min = info->min_axis = 0;
- device->axes[index_].max = info->max_axis = 0;
+ info->min_axis = 0;
+ info->max_axis = 0;
break;
case GDK_AXIS_XTILT:
case GDK_AXIS_YTILT:
- device->axes[index_].min = info->min_axis = -1;
- device->axes[index_].max = info->max_axis = 1;
+ info->min_axis = -1;
+ info->max_axis = 1;
break;
default:
- device->axes[index_].min = info->min_axis = 0;
- device->axes[index_].max = info->max_axis = 1;
+ info->min_axis = 0;
+ info->max_axis = 1;
break;
}
}
@@ -817,12 +840,12 @@ gdk_device_get_device_type (GdkDevice *device)
*
* Since: 3.0
**/
-guint
+gint
gdk_device_get_n_axes (GdkDevice *device)
{
g_return_val_if_fail (GDK_IS_DEVICE (device), 0);
- return device->num_axes;
+ return device->priv->axes->len;
}
/**
@@ -1093,10 +1116,6 @@ _gdk_device_reset_axes (GdkDevice *device)
g_array_remove_index (priv->axes, i);
g_object_notify (G_OBJECT (device), "n-axes");
-
- /* This is done for backwards compatibility */
- g_free (device->axes);
- device->axes = NULL;
}
guint
@@ -1138,16 +1157,7 @@ _gdk_device_add_axis (GdkDevice *device,
}
priv->axes = g_array_append_val (priv->axes, axis_info);
- device->num_axes = priv->axes->len;
- pos = device->num_axes - 1;
-
- /* This is done for backwards compatibility, since the public
- * struct doesn't actually store the device data.
- */
- device->axes = g_realloc (device->axes, sizeof (GdkDeviceAxis) * priv->axes->len);
- device->axes[pos].use = axis_info.use;
- device->axes[pos].min = axis_info.min_axis;
- device->axes[pos].max = axis_info.max_axis;
+ pos = device->priv->axes->len - 1;
g_object_notify (G_OBJECT (device), "n-axes");
@@ -1158,11 +1168,11 @@ void
_gdk_device_set_keys (GdkDevice *device,
guint num_keys)
{
- if (device->keys)
- g_free (device->keys);
+ if (device->priv->keys)
+ g_free (device->priv->keys);
- device->num_keys = num_keys;
- device->keys = g_new0 (GdkDeviceKey, num_keys);
+ device->priv->num_keys = num_keys;
+ device->priv->keys = g_new0 (GdkDeviceKey, num_keys);
}
static GdkAxisInfo *
@@ -1321,16 +1331,14 @@ _gdk_device_translate_screen_coord (GdkDevice *device,
gdouble value,
gdouble *axis_value)
{
- GdkDevicePrivate *priv;
+ GdkDevicePrivate *priv = device->priv;
GdkAxisInfo axis_info;
gdouble axis_width, scale, offset;
GdkWindowObject *window_private;
- if (device->mode != GDK_MODE_SCREEN)
+ if (priv->mode != GDK_MODE_SCREEN)
return FALSE;
- priv = device->priv;
-
if (index_ >= priv->axes->len)
return FALSE;
diff --git a/gdk/gdkdevice.h b/gdk/gdkdevice.h
index d4917f39ac..e40f17f804 100644
--- a/gdk/gdkdevice.h
+++ b/gdk/gdkdevice.h
@@ -194,18 +194,6 @@ struct _GdkDevice
{
GObject parent_instance;
- /* All fields are read-only */
- gchar *GSEAL (name);
- GdkInputSource GSEAL (source);
- GdkInputMode GSEAL (mode);
- gboolean GSEAL (has_cursor); /* TRUE if a X pointer follows device motion */
-
- gint GSEAL (num_axes);
- GdkDeviceAxis *GSEAL (axes);
-
- gint GSEAL (num_keys);
- GdkDeviceKey *GSEAL (keys);
-
/*< private >*/
GdkDevicePrivate *priv;
};
@@ -224,6 +212,7 @@ GdkInputMode gdk_device_get_mode (GdkDevice *device);
gboolean gdk_device_set_mode (GdkDevice *device,
GdkInputMode mode);
+gint gdk_device_get_n_keys (GdkDevice *device);
gboolean gdk_device_get_key (GdkDevice *device,
guint index_,
guint *keyval,
@@ -253,7 +242,7 @@ gboolean gdk_device_get_history (GdkDevice *device,
void gdk_device_free_history (GdkTimeCoord **events,
gint n_events);
-guint gdk_device_get_n_axes (GdkDevice *device);
+gint gdk_device_get_n_axes (GdkDevice *device);
GList * gdk_device_list_axes (GdkDevice *device);
gboolean gdk_device_get_axis_value (GdkDevice *device,
gdouble *axes,
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index 1dab470c5d..69d8c6a501 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -494,7 +494,7 @@ gdk_display_pointer_ungrab (GdkDisplay *display,
{
device = dev->data;
- if (device->source != GDK_SOURCE_MOUSE)
+ if (gdk_device_get_source (device) != GDK_SOURCE_MOUSE)
continue;
gdk_device_ungrab (device, time_);
@@ -570,7 +570,7 @@ gdk_display_keyboard_ungrab (GdkDisplay *display,
{
device = dev->data;
- if (device->source != GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
continue;
gdk_device_ungrab (device, time);
@@ -1209,7 +1209,7 @@ generate_grab_broken_event (GdkWindow *window,
event->grab_broken.implicit = implicit;
event->grab_broken.grab_window = grab_window;
gdk_event_set_device (event, device);
- event->grab_broken.keyboard = (device->source == GDK_SOURCE_KEYBOARD) ? TRUE : FALSE;
+ event->grab_broken.keyboard = (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) ? TRUE : FALSE;
gdk_event_put (event);
gdk_event_free (event);
@@ -1538,7 +1538,7 @@ _gdk_display_device_grab_update (GdkDisplay *display,
if (!current_grab->activated)
{
- if (device->source != GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
switch_to_pointer_grab (display, device, current_grab, NULL, time, current_serial);
}
@@ -1566,7 +1566,7 @@ _gdk_display_device_grab_update (GdkDisplay *display,
grabs = g_list_delete_link (grabs, grabs);
g_hash_table_insert (display->device_grabs, device, grabs);
- if (device->source != GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
switch_to_pointer_grab (display, device,
next_grab, current_grab,
time, current_serial);
@@ -1663,7 +1663,7 @@ _gdk_display_check_grab_ownership (GdkDisplay *display,
g_hash_table_iter_init (&iter, display->device_grabs);
higher_ownership = device_ownership = GDK_OWNERSHIP_NONE;
- device_is_keyboard = (device->source == GDK_SOURCE_KEYBOARD);
+ device_is_keyboard = (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD);
while (g_hash_table_iter_next (&iter, &key, &value))
{
@@ -1679,8 +1679,8 @@ _gdk_display_check_grab_ownership (GdkDisplay *display,
continue;
/* Discard device if it's not of the same type */
- if ((device_is_keyboard && dev->source != GDK_SOURCE_KEYBOARD) ||
- (!device_is_keyboard && dev->source == GDK_SOURCE_KEYBOARD))
+ if ((device_is_keyboard && gdk_device_get_source (dev) != GDK_SOURCE_KEYBOARD) ||
+ (!device_is_keyboard && gdk_device_get_source (dev) == GDK_SOURCE_KEYBOARD))
continue;
grab = grabs->data;
@@ -1813,7 +1813,7 @@ gdk_display_pointer_is_grabbed (GdkDisplay *display)
{
device = dev->data;
- if (device->source == GDK_SOURCE_MOUSE &&
+ if (gdk_device_get_source (device) == GDK_SOURCE_MOUSE &&
gdk_display_device_is_grabbed (display, device))
return TRUE;
}
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index fa61e082b9..8b402fc84c 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -499,17 +499,16 @@ gdk_event_copy (const GdkEvent *event)
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
if (event->button.axes)
- new_event->button.axes = g_memdup (event->button.axes,
- sizeof (gdouble) * event->button.device->num_axes);
+ new_event->button.axes = g_memdup (event->button.axes,
+ sizeof (gdouble) * gdk_device_get_n_axes (event->button.device));
break;
case GDK_MOTION_NOTIFY:
if (event->motion.axes)
- new_event->motion.axes = g_memdup (event->motion.axes,
- sizeof (gdouble) * event->motion.device->num_axes);
-
+ new_event->motion.axes = g_memdup (event->motion.axes,
+ sizeof (gdouble) * gdk_device_get_n_axes (event->motion.device));
break;
-
+
default:
break;
}
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 87d9d55abe..62644365d1 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -8589,7 +8589,7 @@ send_crossing_event (GdkDisplay *display,
}
if (gdk_device_get_device_type (device) == GDK_DEVICE_TYPE_MASTER &&
- device->mode != GDK_MODE_DISABLED &&
+ gdk_device_get_mode (device) != GDK_MODE_DISABLED &&
!g_list_find (window->devices_inside, device))
window->devices_inside = g_list_prepend (window->devices_inside, device);
}
@@ -8955,7 +8955,7 @@ gdk_pointer_grab (GdkWindow * window,
{
device = dev->data;
- if (device->source != GDK_SOURCE_MOUSE)
+ if (gdk_device_get_source (device) != GDK_SOURCE_MOUSE)
continue;
res = _gdk_windowing_device_grab (device,
@@ -9060,7 +9060,7 @@ gdk_keyboard_grab (GdkWindow *window,
{
device = dev->data;
- if (device->source != GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
continue;
res = _gdk_windowing_device_grab (device,
@@ -9448,7 +9448,7 @@ proxy_pointer_event (GdkDisplay *display,
event->motion.is_hint = is_hint;
event->motion.device = source_event->motion.device;
event->motion.axes = g_memdup (source_event->motion.axes,
- sizeof (gdouble) * source_event->motion.device->num_axes);
+ sizeof (gdouble) * gdk_device_get_n_axes (source_event->motion.device));
}
}
@@ -9557,7 +9557,7 @@ proxy_button_event (GdkEvent *source_event,
event->button.state = state;
event->button.device = source_event->button.device;
event->button.axes = g_memdup (source_event->button.axes,
- sizeof (gdouble) * source_event->button.device->num_axes);
+ sizeof (gdouble) * gdk_device_get_n_axes (source_event->button.device));
if (type == GDK_BUTTON_PRESS)
_gdk_event_button_generate (display, event);
diff --git a/gdk/x11/gdkdevice-core.c b/gdk/x11/gdkdevice-core.c
index 1620bde488..a399713b55 100644
--- a/gdk/x11/gdkdevice-core.c
+++ b/gdk/x11/gdkdevice-core.c
@@ -313,7 +313,7 @@ gdk_device_core_grab (GdkDevice *device,
else
xconfine_to = GDK_WINDOW_XID (confine_to);
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
{
/* Device is a keyboard */
status = XGrabKeyboard (GDK_DISPLAY_XDISPLAY (display),
@@ -371,7 +371,7 @@ gdk_device_core_ungrab (GdkDevice *device,
display = gdk_device_get_display (device);
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
XUngrabKeyboard (GDK_DISPLAY_XDISPLAY (display), time_);
else
XUngrabPointer (GDK_DISPLAY_XDISPLAY (display), time_);
diff --git a/gdk/x11/gdkdevice-xi.c b/gdk/x11/gdkdevice-xi.c
index a1e850ec90..8bebf075d3 100644
--- a/gdk/x11/gdkdevice-xi.c
+++ b/gdk/x11/gdkdevice-xi.c
@@ -155,7 +155,8 @@ gdk_device_xi_constructed (GObject *object)
device->device_id);
if (gdk_error_trap_pop ())
- g_warning ("Device %s can't be opened", GDK_DEVICE (device)->name);
+ g_warning ("Device %s can't be opened",
+ gdk_device_get_name (GDK_DEVICE (device)));
if (G_OBJECT_CLASS (gdk_device_xi_parent_class)->constructed)
G_OBJECT_CLASS (gdk_device_xi_parent_class)->constructed (object);
@@ -556,10 +557,11 @@ gdk_device_xi_update_axes (GdkDevice *device,
int i;
device_xi = GDK_DEVICE_XI (device);
- g_return_if_fail (first_axis >= 0 && first_axis + axes_count <= device->num_axes);
+ g_return_if_fail (first_axis >= 0 &&
+ first_axis + axes_count <= gdk_device_get_n_axes (device));
if (!device_xi->axis_data)
- device_xi->axis_data = g_new0 (gint, device->num_axes);
+ device_xi->axis_data = g_new0 (gint, gdk_device_get_n_axes (device));
for (i = 0; i < axes_count; i++)
device_xi->axis_data[first_axis + i] = axis_data[i];
@@ -577,6 +579,7 @@ gdk_device_xi_translate_axes (GdkDevice *device,
GdkWindow *impl_window;
gdouble root_x, root_y;
gdouble temp_x, temp_y;
+ gint n_axes;
gint i;
device_xi = GDK_DEVICE_XI (device);
@@ -586,7 +589,9 @@ gdk_device_xi_translate_axes (GdkDevice *device,
if (!gdk_device_xi_get_window_info (impl_window, &root_x, &root_y))
return;
- for (i = 0; i < device->num_axes; i++)
+ n_axes = gdk_device_get_n_axes (device);
+
+ for (i = 0; i < n_axes; i++)
{
GdkAxisUse use;
@@ -596,7 +601,7 @@ gdk_device_xi_translate_axes (GdkDevice *device,
{
case GDK_AXIS_X:
case GDK_AXIS_Y:
- if (device->mode == GDK_MODE_WINDOW)
+ if (gdk_device_get_mode (device) == GDK_MODE_WINDOW)
_gdk_device_translate_window_coord (device, window,
i, axis_data[i],
&axes[i]);
diff --git a/gdk/x11/gdkdevice-xi2.c b/gdk/x11/gdkdevice-xi2.c
index 648923a743..41142e2097 100644
--- a/gdk/x11/gdkdevice-xi2.c
+++ b/gdk/x11/gdkdevice-xi2.c
@@ -205,7 +205,7 @@ gdk_device_xi2_get_state (GdkDevice *device,
case GDK_AXIS_X:
case GDK_AXIS_Y:
case GDK_AXIS_IGNORE:
- if (device->mode == GDK_MODE_WINDOW)
+ if (gdk_device_get_mode (device) == GDK_MODE_WINDOW)
_gdk_device_translate_window_coord (device, window, j, value, &axes[j]);
else
{
diff --git a/gdk/x11/gdkdevicemanager-xi.c b/gdk/x11/gdkdevicemanager-xi.c
index 52cea65497..6d65725fad 100644
--- a/gdk/x11/gdkdevicemanager-xi.c
+++ b/gdk/x11/gdkdevicemanager-xi.c
@@ -441,7 +441,7 @@ gdk_device_manager_xi_translate_event (GdkEventTranslator *translator,
event->button.x_root = (gdouble) xdbe->x_root;
event->button.y_root = (gdouble) xdbe->y_root;
- event->button.axes = g_new0 (gdouble, device->num_axes);
+ event->button.axes = g_new0 (gdouble, gdk_device_get_n_axes (device));
gdk_device_xi_update_axes (device, xdbe->axes_count,
xdbe->first_axis, xdbe->axis_data);
gdk_device_xi_translate_axes (device, window,
@@ -487,13 +487,15 @@ gdk_device_manager_xi_translate_event (GdkEventTranslator *translator,
xdke->keycode));
if (xdke->keycode < device_xi->min_keycode ||
- xdke->keycode >= device_xi->min_keycode + device->num_keys)
+ xdke->keycode >= device_xi->min_keycode + gdk_device_get_n_keys (device))
{
g_warning ("Invalid device key code received");
return FALSE;
}
- event->key.keyval = device->keys[xdke->keycode - device_xi->min_keycode].keyval;
+ gdk_device_get_key (device, xdke->keycode - device_xi->min_keycode,
+ &event->key.keyval,
+ &event->key.state);
if (event->key.keyval == 0)
{
@@ -509,8 +511,7 @@ gdk_device_manager_xi_translate_event (GdkEventTranslator *translator,
event->key.window = g_object_ref (window);
event->key.time = xdke->time;
- event->key.state = translate_state (xdke->state, xdke->device_state)
- | device->keys[xdke->keycode - device_xi->min_keycode].modifiers;
+ event->key.state |= translate_state (xdke->state, xdke->device_state);
/* Add a string translation for the key event */
if ((event->key.keyval >= 0x20) && (event->key.keyval <= 0xFF))
@@ -552,7 +553,7 @@ gdk_device_manager_xi_translate_event (GdkEventTranslator *translator,
event->motion.x_root = (gdouble) xdme->x_root;
event->motion.y_root = (gdouble) xdme->y_root;
- event->motion.axes = g_new0 (gdouble, device->num_axes);
+ event->motion.axes = g_new0 (gdouble, gdk_device_get_n_axes (device));
gdk_device_xi_update_axes (device, xdme->axes_count,
xdme->first_axis, xdme->axis_data);
gdk_device_xi_translate_axes (device, window,
@@ -626,7 +627,7 @@ gdk_device_manager_xi_translate_event (GdkEventTranslator *translator,
for (i = 0; i < xdse->num_classes; i++)
{
if (input_class->class == ValuatorClass)
- gdk_device_xi_update_axes (device, device->num_axes, 0,
+ gdk_device_xi_update_axes (device, gdk_device_get_n_axes (device), 0,
((XValuatorState *)input_class)->valuators);
input_class = (XInputClass *)(((char *)input_class)+input_class->length);
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index fd4207419d..f97717d522 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -268,7 +268,7 @@ add_device (GdkDeviceManagerXI2 *device_manager,
else if (dev->use == XIFloatingSlave)
device_manager->floating_devices = g_list_append (device_manager->floating_devices, device);
else
- g_warning ("Unhandled device: %s\n", device->name);
+ g_warning ("Unhandled device: %s\n", gdk_device_get_name (device));
if (emit_signal)
g_signal_emit_by_name (device_manager, "device-added", device);
@@ -755,7 +755,7 @@ translate_axes (GdkDevice *device,
{
case GDK_AXIS_X:
case GDK_AXIS_Y:
- if (device->mode == GDK_MODE_WINDOW)
+ if (gdk_device_get_mode (device) == GDK_MODE_WINDOW)
_gdk_device_translate_window_coord (device, window, i, val, &axes[i]);
else
{
@@ -1010,7 +1010,7 @@ gdk_device_manager_xi2_translate_event (GdkEventTranslator *translator,
event->button.window,
&xev->valuators);
- if (event->button.device->mode == GDK_MODE_WINDOW)
+ if (gdk_device_get_mode (event->button.device) == GDK_MODE_WINDOW)
{
GdkDevice *device = event->button.device;
@@ -1061,7 +1061,7 @@ gdk_device_manager_xi2_translate_event (GdkEventTranslator *translator,
event->motion.window,
&xev->valuators);
- if (event->motion.device->mode == GDK_MODE_WINDOW)
+ if (gdk_device_get_mode (event->motion.device) == GDK_MODE_WINDOW)
{
GdkDevice *device = event->motion.device;
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
index 2bdfd45402..148d167d43 100644
--- a/gdk/x11/gdkdisplay-x11.c
+++ b/gdk/x11/gdkdisplay-x11.c
@@ -1152,7 +1152,7 @@ _gdk_input_init (GdkDisplay *display)
{
device = l->data;
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
continue;
display_x11->input_devices = g_list_prepend (display_x11->input_devices,
@@ -1170,7 +1170,7 @@ _gdk_input_init (GdkDisplay *display)
{
device = list->data;
- if (device->source != GDK_SOURCE_MOUSE)
+ if (gdk_device_get_source (device) != GDK_SOURCE_MOUSE)
continue;
display->core_pointer = device;
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
index 8fd97ad2e5..71fb865f43 100644
--- a/gtk/gtkbutton.c
+++ b/gtk/gtkbutton.c
@@ -1827,10 +1827,10 @@ gtk_real_button_activate (GtkButton *button)
device = gtk_get_current_event_device ();
- if (device && device->source != GDK_SOURCE_KEYBOARD)
+ if (device && gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD)
device = gdk_device_get_associated_device (device);
- g_return_if_fail (device && device->source == GDK_SOURCE_KEYBOARD);
+ g_return_if_fail (device && gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD);
if (gtk_widget_get_realized (widget) && !priv->activate_timeout)
{
diff --git a/gtk/gtkcellrendereraccel.c b/gtk/gtkcellrendereraccel.c
index f18ce56d51..b0a42dbc36 100644
--- a/gtk/gtkcellrendereraccel.c
+++ b/gtk/gtkcellrendereraccel.c
@@ -616,7 +616,7 @@ gtk_cell_renderer_accel_start_editing (GtkCellRenderer *cell,
if (!device)
return NULL;
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
{
keyb = device;
pointer = gdk_device_get_associated_device (device);
diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c
index c294266d32..2ed64827af 100644
--- a/gtk/gtkcolorsel.c
+++ b/gtk/gtkcolorsel.c
@@ -1912,7 +1912,7 @@ get_screen_color (GtkWidget *button)
device = gtk_get_current_event_device ();
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
{
keyb_device = device;
pointer_device = gdk_device_get_associated_device (device);
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index 9df273d81c..0a922fa023 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -2199,7 +2199,7 @@ gtk_combo_box_popup_for_device (GtkComboBox *combo_box,
time = gtk_get_current_event_time ();
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
{
keyboard = device;
pointer = gdk_device_get_associated_device (device);
diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c
index d951181632..08496d5761 100644
--- a/gtk/gtkdnd.c
+++ b/gtk/gtkdnd.c
@@ -2329,7 +2329,7 @@ gtk_drag_begin_internal (GtkWidget *widget,
pointer = gdk_event_get_device (event);
- if (pointer->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (pointer) == GDK_SOURCE_KEYBOARD)
{
keyboard = pointer;
pointer = gdk_device_get_associated_device (keyboard);
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 3c0d4b4ff1..cd70918e1e 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -9710,7 +9710,7 @@ gtk_entry_completion_changed (GtkWidget *widget,
device = gtk_get_current_event_device ();
- if (device && device->source == GDK_SOURCE_KEYBOARD)
+ if (device && gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
device = gdk_device_get_associated_device (device);
if (device)
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index 743ad5a63d..3032f3b95e 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -1469,7 +1469,7 @@ gtk_menu_popup_for_device (GtkMenu *menu,
menu_shell = GTK_MENU_SHELL (menu);
priv = gtk_menu_get_private (menu);
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
{
keyboard = device;
pointer = gdk_device_get_associated_device (device);
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index e531de1c13..d630cdd253 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -1807,7 +1807,7 @@ _gtk_menu_shell_set_grab_device (GtkMenuShell *menu_shell,
if (!device)
priv->grab_pointer = NULL;
- else if (device->source == GDK_SOURCE_KEYBOARD)
+ else if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
priv->grab_pointer = gdk_device_get_associated_device (device);
else
priv->grab_pointer = device;
diff --git a/gtk/gtkplug-x11.c b/gtk/gtkplug-x11.c
index ca7e3e0857..ca3af73c27 100644
--- a/gtk/gtkplug-x11.c
+++ b/gtk/gtkplug-x11.c
@@ -378,7 +378,7 @@ _gtk_plug_windowing_filter_func (GdkXEvent *gdk_xevent,
{
GdkDevice *device = d->data;
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
keyboard = device;
}
diff --git a/gtk/gtkscalebutton.c b/gtk/gtkscalebutton.c
index fb2624e53e..f3894ff84b 100644
--- a/gtk/gtkscalebutton.c
+++ b/gtk/gtkscalebutton.c
@@ -1027,7 +1027,7 @@ gtk_scale_popup (GtkWidget *widget,
device = gdk_event_get_device (event);
- if (device->source == GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
{
keyboard = device;
pointer = gdk_device_get_associated_device (device);
diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c
index 309013f847..16018b609d 100644
--- a/gtk/gtktooltip.c
+++ b/gtk/gtktooltip.c
@@ -1350,7 +1350,7 @@ _gtk_tooltip_focus_in (GtkWidget *widget)
device = gtk_get_current_event_device ();
- if (device && device->source == GDK_SOURCE_KEYBOARD)
+ if (device && gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
device = gdk_device_get_associated_device (device);
/* This function should be called by either a focus in event,
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 66e8a5f5d2..85280038a8 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -10407,7 +10407,7 @@ send_focus_change (GtkWidget *widget,
GdkEvent *fevent;
GdkWindow *window;
- if (dev->source != GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (dev) != GDK_SOURCE_KEYBOARD)
continue;
window = gtk_widget_get_window (widget);
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 0621701be9..1f7134e646 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -5923,7 +5923,7 @@ do_focus_change (GtkWidget *widget,
GdkDevice *dev = d->data;
GdkEvent *fevent;
- if (dev->source != GDK_SOURCE_KEYBOARD)
+ if (gdk_device_get_source (dev) != GDK_SOURCE_KEYBOARD)
continue;
/* Skip non-master keyboards that haven't
diff --git a/tests/testinput.c b/tests/testinput.c
index ad7b7e2415..b125c7562c 100644
--- a/tests/testinput.c
+++ b/tests/testinput.c
@@ -46,7 +46,7 @@ static void
update_cursor (GtkWidget *widget, gdouble x, gdouble y)
{
static gint cursor_present = 0;
- gint state = !current_device->has_cursor && cursor_proximity;
+ gint state = !gdk_device_get_has_cursor (current_device) && cursor_proximity;
if (surface != NULL)
{
@@ -167,9 +167,9 @@ print_axes (GdkDevice *device, gdouble *axes)
if (axes)
{
- g_print ("%s ", device->name);
-
- for (i=0; i<device->num_axes; i++)
+ g_print ("%s ", gdk_device_get_name (device));
+
+ for (i = 0; i < gdk_device_get_n_axes (device); i++)
g_print ("%g ", axes[i]);
g_print ("\n");
@@ -188,8 +188,9 @@ button_press_event (GtkWidget *widget, GdkEventButton *event)
print_axes (event->device, event->axes);
gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure);
- draw_brush (widget, event->device->source, event->x, event->y, pressure);
-
+ draw_brush (widget, gdk_device_get_source (event->device),
+ event->x, event->y, pressure);
+
motion_time = event->time;
}
@@ -232,7 +233,8 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
gdk_device_get_axis (event->device, events[i]->axes, GDK_AXIS_X, &x);
gdk_device_get_axis (event->device, events[i]->axes, GDK_AXIS_Y, &y);
gdk_device_get_axis (event->device, events[i]->axes, GDK_AXIS_PRESSURE, &pressure);
- draw_brush (widget, event->device->source, x, y, pressure);
+ draw_brush (widget, gdk_device_get_source (event->device),
+ x, y, pressure);
print_axes (event->device, events[i]->axes);
}
@@ -244,7 +246,8 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure);
- draw_brush (widget, event->device->source, event->x, event->y, pressure);
+ draw_brush (widget, gdk_device_get_source (event->device),
+ event->x, event->y, pressure);
}
motion_time = event->time;
}