mirror of
https://gitlab.gnome.org/GNOME/libmks.git
synced 2024-12-22 13:45:21 +00:00
Merge branch 'bilelmoussaoui/use-notify' into 'main'
cleanup: Use explicit notify for properties See merge request GNOME/libmks!37
This commit is contained in:
commit
c92f5c0a4a
@ -56,6 +56,19 @@ enum {
|
|||||||
|
|
||||||
static GParamSpec *properties [N_PROPS];
|
static GParamSpec *properties [N_PROPS];
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_keyboard_set_modifiers (MksKeyboard *self,
|
||||||
|
MksKeyboardModifier modifiers)
|
||||||
|
{
|
||||||
|
g_assert (MKS_IS_KEYBOARD (self));
|
||||||
|
|
||||||
|
if (self->modifiers != modifiers)
|
||||||
|
{
|
||||||
|
self->modifiers = modifiers;
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_MODIFIERS]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mks_keyboard_keyboard_notify_cb (MksKeyboard *self,
|
mks_keyboard_keyboard_notify_cb (MksKeyboard *self,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
@ -68,10 +81,7 @@ mks_keyboard_keyboard_notify_cb (MksKeyboard *self,
|
|||||||
g_assert (MKS_QEMU_IS_KEYBOARD (keyboard));
|
g_assert (MKS_QEMU_IS_KEYBOARD (keyboard));
|
||||||
|
|
||||||
if (strcmp (pspec->name, "modifiers") == 0)
|
if (strcmp (pspec->name, "modifiers") == 0)
|
||||||
{
|
mks_keyboard_set_modifiers (self, mks_qemu_keyboard_get_modifiers (keyboard));
|
||||||
self->modifiers = mks_qemu_keyboard_get_modifiers (keyboard);
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_MODIFIERS]);
|
|
||||||
}
|
|
||||||
|
|
||||||
MKS_EXIT;
|
MKS_EXIT;
|
||||||
}
|
}
|
||||||
@ -82,6 +92,7 @@ mks_keyboard_set_keyboard (MksKeyboard *self,
|
|||||||
{
|
{
|
||||||
g_assert (MKS_IS_KEYBOARD (self));
|
g_assert (MKS_IS_KEYBOARD (self));
|
||||||
g_assert (!keyboard || MKS_QEMU_IS_KEYBOARD (keyboard));
|
g_assert (!keyboard || MKS_QEMU_IS_KEYBOARD (keyboard));
|
||||||
|
g_assert (self->keyboard == NULL);
|
||||||
|
|
||||||
if (g_set_object (&self->keyboard, keyboard))
|
if (g_set_object (&self->keyboard, keyboard))
|
||||||
{
|
{
|
||||||
@ -90,7 +101,7 @@ mks_keyboard_set_keyboard (MksKeyboard *self,
|
|||||||
G_CALLBACK (mks_keyboard_keyboard_notify_cb),
|
G_CALLBACK (mks_keyboard_keyboard_notify_cb),
|
||||||
self,
|
self,
|
||||||
G_CONNECT_SWAPPED);
|
G_CONNECT_SWAPPED);
|
||||||
self->modifiers = mks_qemu_keyboard_get_modifiers (keyboard);
|
mks_keyboard_set_modifiers (self, mks_qemu_keyboard_get_modifiers (keyboard));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@ struct _MksMouse
|
|||||||
MksQemuMouse *mouse;
|
MksQemuMouse *mouse;
|
||||||
double last_known_x;
|
double last_known_x;
|
||||||
double last_known_y;
|
double last_known_y;
|
||||||
|
|
||||||
|
guint is_absolute: 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MksMouseClass
|
struct _MksMouseClass
|
||||||
@ -54,14 +56,53 @@ enum {
|
|||||||
|
|
||||||
static GParamSpec *properties [N_PROPS];
|
static GParamSpec *properties [N_PROPS];
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_mouse_set_is_absolute (MksMouse *self,
|
||||||
|
gboolean is_absolute)
|
||||||
|
{
|
||||||
|
g_assert (MKS_IS_MOUSE (self));
|
||||||
|
|
||||||
|
if (self->is_absolute != is_absolute)
|
||||||
|
{
|
||||||
|
self->is_absolute = is_absolute;
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_IS_ABSOLUTE]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_mouse_mouse_notify_cb (MksMouse *self,
|
||||||
|
GParamSpec *pspec,
|
||||||
|
MksQemuMouse *mouse)
|
||||||
|
{
|
||||||
|
MKS_ENTRY;
|
||||||
|
|
||||||
|
g_assert (MKS_IS_MOUSE (self));
|
||||||
|
g_assert (pspec != NULL);
|
||||||
|
g_assert (MKS_QEMU_IS_MOUSE (mouse));
|
||||||
|
|
||||||
|
if (strcmp (pspec->name, "is-absolute") == 0)
|
||||||
|
mks_mouse_set_is_absolute (self, mks_qemu_mouse_get_is_absolute (mouse));
|
||||||
|
|
||||||
|
MKS_EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mks_mouse_set_mouse (MksMouse *self,
|
mks_mouse_set_mouse (MksMouse *self,
|
||||||
MksQemuMouse *mouse)
|
MksQemuMouse *mouse)
|
||||||
{
|
{
|
||||||
g_assert (MKS_IS_MOUSE (self));
|
g_assert (MKS_IS_MOUSE (self));
|
||||||
g_assert (MKS_QEMU_IS_MOUSE (mouse));
|
g_assert (MKS_QEMU_IS_MOUSE (mouse));
|
||||||
|
g_assert (self->mouse == NULL);
|
||||||
|
|
||||||
g_set_object (&self->mouse, mouse);
|
if (g_set_object (&self->mouse, mouse))
|
||||||
|
{
|
||||||
|
g_signal_connect_object (self->mouse,
|
||||||
|
"notify",
|
||||||
|
G_CALLBACK (mks_mouse_mouse_notify_cb),
|
||||||
|
self,
|
||||||
|
G_CONNECT_SWAPPED);
|
||||||
|
mks_mouse_set_is_absolute (self, mks_qemu_mouse_get_is_absolute (mouse));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@ -156,10 +197,7 @@ mks_mouse_get_is_absolute (MksMouse *self)
|
|||||||
{
|
{
|
||||||
g_return_val_if_fail (MKS_IS_MOUSE (self), FALSE);
|
g_return_val_if_fail (MKS_IS_MOUSE (self), FALSE);
|
||||||
|
|
||||||
if (self->mouse)
|
return self->is_absolute;
|
||||||
return mks_qemu_mouse_get_is_absolute (self->mouse);
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -76,7 +76,7 @@ enum {
|
|||||||
static GParamSpec *properties [N_PROPS];
|
static GParamSpec *properties [N_PROPS];
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mks_screen_set_width (MksScreen *self,
|
mks_screen_set_width (MksScreen *self,
|
||||||
guint width)
|
guint width)
|
||||||
{
|
{
|
||||||
g_assert (MKS_IS_SCREEN (self));
|
g_assert (MKS_IS_SCREEN (self));
|
||||||
@ -89,7 +89,7 @@ _mks_screen_set_width (MksScreen *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mks_screen_set_height (MksScreen *self,
|
mks_screen_set_height (MksScreen *self,
|
||||||
guint height)
|
guint height)
|
||||||
{
|
{
|
||||||
g_assert (MKS_IS_SCREEN (self));
|
g_assert (MKS_IS_SCREEN (self));
|
||||||
@ -102,7 +102,7 @@ _mks_screen_set_height (MksScreen *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mks_screen_set_number (MksScreen *self,
|
mks_screen_set_number (MksScreen *self,
|
||||||
guint number)
|
guint number)
|
||||||
{
|
{
|
||||||
g_assert (MKS_IS_SCREEN (self));
|
g_assert (MKS_IS_SCREEN (self));
|
||||||
@ -114,6 +114,26 @@ _mks_screen_set_number (MksScreen *self,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_screen_set_type (MksScreen *self,
|
||||||
|
const char *type)
|
||||||
|
{
|
||||||
|
MksScreenKind kind;
|
||||||
|
|
||||||
|
g_assert (MKS_IS_SCREEN (self));
|
||||||
|
|
||||||
|
kind = MKS_SCREEN_KIND_TEXT;
|
||||||
|
|
||||||
|
if (strcmp (type, "Graphic") == 0)
|
||||||
|
kind = MKS_SCREEN_KIND_GRAPHIC;
|
||||||
|
|
||||||
|
if (kind != self->kind)
|
||||||
|
{
|
||||||
|
self->kind = kind;
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_KIND]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mks_screen_console_notify_cb (MksScreen *self,
|
mks_screen_console_notify_cb (MksScreen *self,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
@ -126,29 +146,13 @@ mks_screen_console_notify_cb (MksScreen *self,
|
|||||||
if (strcmp (pspec->name, "label") == 0)
|
if (strcmp (pspec->name, "label") == 0)
|
||||||
_mks_device_set_name (MKS_DEVICE (self), mks_qemu_console_get_label (console));
|
_mks_device_set_name (MKS_DEVICE (self), mks_qemu_console_get_label (console));
|
||||||
else if (strcmp (pspec->name, "width") == 0)
|
else if (strcmp (pspec->name, "width") == 0)
|
||||||
_mks_screen_set_width (self, mks_qemu_console_get_width (console));
|
mks_screen_set_width (self, mks_qemu_console_get_width (console));
|
||||||
else if (strcmp (pspec->name, "height") == 0)
|
else if (strcmp (pspec->name, "height") == 0)
|
||||||
_mks_screen_set_height (self, mks_qemu_console_get_height (console));
|
mks_screen_set_height (self, mks_qemu_console_get_height (console));
|
||||||
else if (strcmp (pspec->name, "number") == 0)
|
else if (strcmp (pspec->name, "number") == 0)
|
||||||
_mks_screen_set_number (self, mks_qemu_console_get_head (console));
|
mks_screen_set_number (self, mks_qemu_console_get_head (console));
|
||||||
else if (strcmp (pspec->name, "type") == 0)
|
else if (strcmp (pspec->name, "type") == 0)
|
||||||
{
|
mks_screen_set_type (self, mks_qemu_console_get_type_ ((console)));
|
||||||
const char *type;
|
|
||||||
|
|
||||||
if ((type = mks_qemu_console_get_type_ ((console))))
|
|
||||||
{
|
|
||||||
MksScreenKind kind = MKS_SCREEN_KIND_TEXT;
|
|
||||||
|
|
||||||
if (strcmp (type, "Graphic") == 0)
|
|
||||||
kind = MKS_SCREEN_KIND_GRAPHIC;
|
|
||||||
|
|
||||||
if (kind != self->kind)
|
|
||||||
{
|
|
||||||
self->kind = kind;
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_KIND]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -163,8 +167,6 @@ mks_screen_set_console (MksScreen *self,
|
|||||||
|
|
||||||
if (g_set_object (&self->console, console))
|
if (g_set_object (&self->console, console))
|
||||||
{
|
{
|
||||||
const char *type;
|
|
||||||
|
|
||||||
_mks_device_set_name (MKS_DEVICE (self), mks_qemu_console_get_label (console));
|
_mks_device_set_name (MKS_DEVICE (self), mks_qemu_console_get_label (console));
|
||||||
|
|
||||||
self->console_notify_handler =
|
self->console_notify_handler =
|
||||||
@ -174,15 +176,10 @@ mks_screen_set_console (MksScreen *self,
|
|||||||
self,
|
self,
|
||||||
G_CONNECT_SWAPPED);
|
G_CONNECT_SWAPPED);
|
||||||
|
|
||||||
if ((type = mks_qemu_console_get_type_ ((console))))
|
mks_screen_set_type (self, mks_qemu_console_get_type_ ((console)));
|
||||||
{
|
mks_screen_set_width (self, mks_qemu_console_get_width (console));
|
||||||
if (strcmp (type, "Graphic") == 0)
|
mks_screen_set_height (self, mks_qemu_console_get_height (console));
|
||||||
self->kind = MKS_SCREEN_KIND_GRAPHIC;
|
mks_screen_set_number (self, mks_qemu_console_get_head (console));
|
||||||
}
|
|
||||||
|
|
||||||
self->width = mks_qemu_console_get_width (console);
|
|
||||||
self->height = mks_qemu_console_get_height (console);
|
|
||||||
self->number = mks_qemu_console_get_head (console);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,6 +106,9 @@ struct _MksSession
|
|||||||
*/
|
*/
|
||||||
MksQemuObject *vm_object;
|
MksQemuObject *vm_object;
|
||||||
MksQemuVM *vm;
|
MksQemuVM *vm;
|
||||||
|
|
||||||
|
char *name;
|
||||||
|
char *uuid;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -164,6 +167,26 @@ mks_session_add_device (MksSession *self,
|
|||||||
g_list_store_append (self->devices, device);
|
g_list_store_append (self->devices, device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_session_set_name (MksSession *self,
|
||||||
|
const char *name)
|
||||||
|
{
|
||||||
|
g_assert (MKS_IS_SESSION (self));
|
||||||
|
|
||||||
|
if (g_set_str (&self->name, name))
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_NAME]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_session_set_uuid (MksSession *self,
|
||||||
|
const char *uuid)
|
||||||
|
{
|
||||||
|
g_assert (MKS_IS_SESSION (self));
|
||||||
|
|
||||||
|
if (g_set_str (&self->uuid, uuid))
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_UUID]);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mks_session_vm_notify_cb (MksSession *self,
|
mks_session_vm_notify_cb (MksSession *self,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
@ -173,11 +196,10 @@ mks_session_vm_notify_cb (MksSession *self,
|
|||||||
g_assert (pspec != NULL);
|
g_assert (pspec != NULL);
|
||||||
g_assert (MKS_QEMU_IS_VM (vm));
|
g_assert (MKS_QEMU_IS_VM (vm));
|
||||||
|
|
||||||
if (0) {}
|
if (strcmp (pspec->name, "name") == 0)
|
||||||
else if (strcmp (pspec->name, "name") == 0)
|
mks_session_set_name (self, mks_qemu_vm_get_name (vm));
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_NAME]);
|
|
||||||
else if (strcmp (pspec->name, "uuid") == 0)
|
else if (strcmp (pspec->name, "uuid") == 0)
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_UUID]);
|
mks_session_set_uuid (self, mks_qemu_vm_get_uuid (vm));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -200,9 +222,8 @@ mks_session_set_vm (MksSession *self,
|
|||||||
G_CALLBACK (mks_session_vm_notify_cb),
|
G_CALLBACK (mks_session_vm_notify_cb),
|
||||||
self,
|
self,
|
||||||
G_CONNECT_SWAPPED);
|
G_CONNECT_SWAPPED);
|
||||||
|
mks_session_set_name (self, mks_qemu_vm_get_name (vm));
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_NAME]);
|
mks_session_set_uuid (self, mks_qemu_vm_get_uuid (vm));
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_UUID]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -286,6 +307,8 @@ mks_session_dispose (GObject *object)
|
|||||||
g_clear_object (&self->object_manager);
|
g_clear_object (&self->object_manager);
|
||||||
g_clear_object (&self->vm);
|
g_clear_object (&self->vm);
|
||||||
g_clear_object (&self->vm_object);
|
g_clear_object (&self->vm_object);
|
||||||
|
g_clear_pointer (&self->name, g_free);
|
||||||
|
g_clear_pointer (&self->uuid, g_free);
|
||||||
|
|
||||||
G_OBJECT_CLASS (mks_session_parent_class)->dispose (object);
|
G_OBJECT_CLASS (mks_session_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
@ -682,10 +705,7 @@ mks_session_get_uuid (MksSession *self)
|
|||||||
{
|
{
|
||||||
g_return_val_if_fail (MKS_IS_SESSION (self), NULL);
|
g_return_val_if_fail (MKS_IS_SESSION (self), NULL);
|
||||||
|
|
||||||
if (self->vm != NULL)
|
return self->uuid;
|
||||||
return mks_qemu_vm_get_uuid (self->vm);
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -699,10 +719,7 @@ mks_session_get_name (MksSession *self)
|
|||||||
{
|
{
|
||||||
g_return_val_if_fail (MKS_IS_SESSION (self), NULL);
|
g_return_val_if_fail (MKS_IS_SESSION (self), NULL);
|
||||||
|
|
||||||
if (self->vm != NULL)
|
return self->name;
|
||||||
return mks_qemu_vm_get_name (self->vm);
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,6 +35,7 @@ struct _MksTouchable
|
|||||||
{
|
{
|
||||||
MksDevice parent_instance;
|
MksDevice parent_instance;
|
||||||
MksQemuMultiTouch *touch;
|
MksQemuMultiTouch *touch;
|
||||||
|
int max_slots;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MksTouchableClass
|
struct _MksTouchableClass
|
||||||
@ -53,14 +54,55 @@ enum {
|
|||||||
static GParamSpec *properties [N_PROPS];
|
static GParamSpec *properties [N_PROPS];
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_touchable_set_max_slots (MksTouchable *self,
|
||||||
|
int max_slots)
|
||||||
|
{
|
||||||
|
g_assert (MKS_IS_TOUCHABLE (self));
|
||||||
|
// Per INPUT_EVENT_SLOTS_MIN / INPUT_EVENT_SLOTS_MAX in QEMU
|
||||||
|
g_assert (max_slots >= 0 && max_slots <= 10);
|
||||||
|
|
||||||
|
if (self->max_slots != max_slots)
|
||||||
|
{
|
||||||
|
self->max_slots = max_slots;
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_MAX_SLOTS]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mks_touchable_touch_notify_cb (MksTouchable *self,
|
||||||
|
GParamSpec *pspec,
|
||||||
|
MksQemuMultiTouch *touch)
|
||||||
|
{
|
||||||
|
MKS_ENTRY;
|
||||||
|
|
||||||
|
g_assert (MKS_IS_TOUCHABLE (self));
|
||||||
|
g_assert (pspec != NULL);
|
||||||
|
g_assert (MKS_QEMU_IS_MULTI_TOUCH (touch));
|
||||||
|
|
||||||
|
if (strcmp (pspec->name, "max-slots") == 0)
|
||||||
|
mks_touchable_set_max_slots (self, mks_qemu_multi_touch_get_max_slots (touch));
|
||||||
|
|
||||||
|
MKS_EXIT;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mks_touchable_set_touch (MksTouchable *self,
|
mks_touchable_set_touch (MksTouchable *self,
|
||||||
MksQemuMultiTouch *touch)
|
MksQemuMultiTouch *touch)
|
||||||
{
|
{
|
||||||
g_assert (MKS_IS_TOUCHABLE (self));
|
g_assert (MKS_IS_TOUCHABLE (self));
|
||||||
g_assert (!touch || MKS_QEMU_IS_MULTI_TOUCH (touch));
|
g_assert (!touch || MKS_QEMU_IS_MULTI_TOUCH (touch));
|
||||||
|
g_assert (self->touch == NULL);
|
||||||
|
|
||||||
g_set_object (&self->touch, touch);
|
if (g_set_object (&self->touch, touch))
|
||||||
|
{
|
||||||
|
g_signal_connect_object (self->touch,
|
||||||
|
"notify",
|
||||||
|
G_CALLBACK (mks_touchable_touch_notify_cb),
|
||||||
|
self,
|
||||||
|
G_CONNECT_SWAPPED);
|
||||||
|
mks_touchable_set_max_slots (self, mks_qemu_multi_touch_get_max_slots (touch));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@ -133,7 +175,7 @@ mks_touchable_class_init (MksTouchableClass *klass)
|
|||||||
*/
|
*/
|
||||||
properties [PROP_MAX_SLOTS] =
|
properties [PROP_MAX_SLOTS] =
|
||||||
g_param_spec_int ("max-slots", NULL, NULL,
|
g_param_spec_int ("max-slots", NULL, NULL,
|
||||||
0, G_MAXINT, 0,
|
0, 10, 0,
|
||||||
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
g_object_class_install_properties (object_class, N_PROPS, properties);
|
g_object_class_install_properties (object_class, N_PROPS, properties);
|
||||||
@ -309,8 +351,5 @@ mks_touchable_get_max_slots (MksTouchable *self)
|
|||||||
{
|
{
|
||||||
g_return_val_if_fail (MKS_IS_TOUCHABLE (self), 0);
|
g_return_val_if_fail (MKS_IS_TOUCHABLE (self), 0);
|
||||||
|
|
||||||
if (self->touch)
|
return self->max_slots;
|
||||||
return mks_qemu_multi_touch_get_max_slots (self->touch);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user