Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
GNOME
gtk
Commits
d24f63e9
Commit
d24f63e9
authored
Nov 26, 2015
by
Carlos Garnacho
Browse files
GdkDevice: Add GdkSeat property and getter
https://bugzilla.gnome.org/show_bug.cgi?id=759309
parent
0472c088
Changes
4
Hide whitespace changes
Inline
Side-by-side
docs/reference/gdk/gdk3-sections.txt
View file @
d24f63e9
...
...
@@ -732,6 +732,7 @@ gdk_device_get_has_cursor
gdk_device_get_n_axes
gdk_device_get_n_keys
gdk_device_warp
gdk_device_get_seat
<SUBSECTION>
gdk_device_grab
...
...
gdk/gdkdevice.c
View file @
d24f63e9
...
...
@@ -90,6 +90,7 @@ enum {
PROP_N_AXES
,
PROP_VENDOR_ID
,
PROP_PRODUCT_ID
,
PROP_SEAT
,
LAST_PROP
};
...
...
@@ -271,6 +272,21 @@ gdk_device_class_init (GdkDeviceClass *klass)
G_PARAM_READWRITE
|
G_PARAM_CONSTRUCT_ONLY
|
G_PARAM_STATIC_STRINGS
);
/**
* GdkDevice:seat:
*
* #GdkSeat of this device.
*
* Since: 3.20
*/
device_props
[
PROP_SEAT
]
=
g_param_spec_object
(
"seat"
,
P_
(
"Seat"
),
P_
(
"Seat"
),
GDK_TYPE_SEAT
,
G_PARAM_READWRITE
|
G_PARAM_STATIC_STRINGS
);
g_object_class_install_properties
(
object_class
,
LAST_PROP
,
device_props
);
/**
...
...
@@ -381,6 +397,9 @@ gdk_device_set_property (GObject *object,
case
PROP_PRODUCT_ID
:
device
->
product_id
=
g_value_dup_string
(
value
);
break
;
case
PROP_SEAT
:
device
->
seat
=
g_value_get_object
(
value
);
break
;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID
(
object
,
prop_id
,
pspec
);
break
;
...
...
@@ -430,6 +449,9 @@ gdk_device_get_property (GObject *object,
case
PROP_PRODUCT_ID
:
g_value_set_string
(
value
,
device
->
product_id
);
break
;
case
PROP_SEAT
:
g_value_set_object
(
value
,
device
->
seat
);
break
;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID
(
object
,
prop_id
,
pspec
);
break
;
...
...
@@ -1880,3 +1902,36 @@ gdk_device_get_product_id (GdkDevice *device)
return
device
->
product_id
;
}
void
gdk_device_set_seat
(
GdkDevice
*
device
,
GdkSeat
*
seat
)
{
g_return_if_fail
(
GDK_IS_DEVICE
(
device
));
g_return_if_fail
(
!
seat
||
GDK_IS_SEAT
(
seat
));
if
(
device
->
seat
==
seat
)
return
;
device
->
seat
=
seat
;
g_object_notify
(
G_OBJECT
(
device
),
"seat"
);
}
/**
* gdk_device_get_seat:
* @device: A #GdkDevice
*
* Returns the #GdkSeat the device belongs to.
*
* Returns: (transfer none): A #GdkSeat. This memory is owned by GTK+ and
* must not be freed.
*
* Since: 3.20
**/
GdkSeat
*
gdk_device_get_seat
(
GdkDevice
*
device
)
{
g_return_val_if_fail
(
GDK_IS_DEVICE
(
device
),
NULL
);
return
device
->
seat
;
}
gdk/gdkdevice.h
View file @
d24f63e9
...
...
@@ -279,6 +279,9 @@ const gchar *gdk_device_get_vendor_id (GdkDevice *device);
GDK_AVAILABLE_IN_3_16
const
gchar
*
gdk_device_get_product_id
(
GdkDevice
*
device
);
GDK_AVAILABLE_IN_3_20
GdkSeat
*
gdk_device_get_seat
(
GdkDevice
*
device
);
G_END_DECLS
#endif
/* __GDK_DEVICE_H__ */
gdk/gdkdeviceprivate.h
View file @
d24f63e9
...
...
@@ -21,6 +21,7 @@
#include "gdkdevice.h"
#include "gdkdevicemanager.h"
#include "gdkevents.h"
#include "gdkseat.h"
G_BEGIN_DECLS
...
...
@@ -59,6 +60,8 @@ struct _GdkDevice
gchar
*
vendor_id
;
gchar
*
product_id
;
GdkSeat
*
seat
;
};
struct
_GdkDeviceClass
...
...
@@ -176,6 +179,9 @@ GdkWindow * _gdk_device_window_at_position (GdkDevice *device,
GdkModifierType
*
mask
,
gboolean
get_toplevel
);
void
gdk_device_set_seat
(
GdkDevice
*
device
,
GdkSeat
*
seat
);
G_END_DECLS
#endif
/* __GDK_DEVICE_PRIVATE_H__ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment