diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-06-11 15:57:45 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-09-05 08:03:44 +0000 |
commit | 1ae3ebcfb2c10a4cfe6c5e784e3b2e23117f20aa (patch) | |
tree | fab3b82e1902fe338e6da60fed2adcd85bb79418 /panels/display | |
parent | 297906685e3fac790f07cd7b3277c0f1c452650b (diff) | |
download | gnome-control-center-1ae3ebcfb2c10a4cfe6c5e784e3b2e23117f20aa.tar.gz |
display: Use a proxy for org.gnome.Mutter.DisplayConfig
It will be more convenient than a direct DBus call in future commits.
Diffstat (limited to 'panels/display')
-rw-r--r-- | panels/display/cc-display-config-dbus.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/panels/display/cc-display-config-dbus.c b/panels/display/cc-display-config-dbus.c index aa7c673be..13e9b20fd 100644 --- a/panels/display/cc-display-config-dbus.c +++ b/panels/display/cc-display-config-dbus.c @@ -877,6 +877,7 @@ struct _CcDisplayConfigDBus GVariant *state; GDBusConnection *connection; + GDBusProxy *proxy; int min_width; int min_height; @@ -996,17 +997,13 @@ config_apply (CcDisplayConfigDBus *self, cc_display_config_dbus_ensure_non_offset_coords (self); - retval = g_dbus_connection_call_sync (self->connection, - "org.gnome.Mutter.DisplayConfig", - "/org/gnome/Mutter/DisplayConfig", - "org.gnome.Mutter.DisplayConfig", - "ApplyMonitorsConfig", - build_apply_parameters (self, method), - NULL, - G_DBUS_CALL_FLAGS_NO_AUTO_START, - -1, - NULL, - error); + retval = g_dbus_proxy_call_sync (self->proxy, + "ApplyMonitorsConfig", + build_apply_parameters (self, method), + G_DBUS_CALL_FLAGS_NO_AUTO_START, + -1, + NULL, + error); return retval != NULL; } @@ -1432,6 +1429,7 @@ cc_display_config_dbus_constructed (GObject *object) g_autoptr(GVariantIter) monitors = NULL; g_autoptr(GVariantIter) logical_monitors = NULL; g_autoptr(GVariantIter) props = NULL; + g_autoptr(GError) error = NULL; g_variant_get (self->state, CURRENT_STATE_FORMAT, @@ -1472,6 +1470,17 @@ cc_display_config_dbus_constructed (GObject *object) construct_monitors (self, monitors, logical_monitors); + self->proxy = g_dbus_proxy_new_sync (self->connection, + G_DBUS_PROXY_FLAGS_NONE, + NULL, + "org.gnome.Mutter.DisplayConfig", + "/org/gnome/Mutter/DisplayConfig", + "org.gnome.Mutter.DisplayConfig", + NULL, + &error); + if (error) + g_warning ("Could not create DisplayConfig proxy: %s", error->message); + G_OBJECT_CLASS (cc_display_config_dbus_parent_class)->constructed (object); } @@ -1524,6 +1533,7 @@ cc_display_config_dbus_finalize (GObject *object) g_clear_pointer (&self->state, g_variant_unref); g_clear_object (&self->connection); + g_clear_object (&self->proxy); g_list_foreach (self->monitors, (GFunc) g_object_unref, NULL); g_clear_pointer (&self->monitors, g_list_free); |