extension: Support marshaling double to/from GVariant

Co-authored-by: Håvard Sørbø <havard@hsorbo.no>
This commit is contained in:
Ole André Vadla Ravnås
2024-05-29 00:05:54 +02:00
parent 2b947e6d75
commit e920bad7f5
+9
View File
@@ -1606,6 +1606,8 @@ PyGObject_marshal_variant (GVariant * variant)
return PyGObject_marshal_string (g_variant_get_string (variant, NULL));
case G_VARIANT_CLASS_INT64:
return PyLong_FromLongLong (g_variant_get_int64 (variant));
case G_VARIANT_CLASS_DOUBLE:
return PyFloat_FromDouble (g_variant_get_double (variant));
case G_VARIANT_CLASS_BOOLEAN:
return PyBool_FromLong (g_variant_get_boolean (variant));
case G_VARIANT_CLASS_ARRAY:
@@ -1716,6 +1718,13 @@ PyGObject_unmarshal_variant (PyObject * value, GVariant ** variant)
return TRUE;
}
if (PyFloat_Check (value))
{
*variant = g_variant_new_double (PyFloat_AsDouble (value));
return TRUE;
}
if (PyBool_Check (value))
{
*variant = g_variant_new_boolean (value == Py_True);