mirror of
https://github.com/brl/mutter.git
synced 2024-12-03 05:10:40 -05:00
backend: Check if the gsettings scheme exists
Mutter makes use of a gsettings scheme that comes from gnome-settings-daemon to check for the screen orientation. In use cases where gnome-settings-daemon is not available, this would lead to a crash as the key doesn't exists Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2398>
This commit is contained in:
parent
8fdb80a718
commit
c861101ae6
@ -122,7 +122,8 @@ sync_state (MetaOrientationManager *self)
|
||||
if (had_accel != self->has_accel)
|
||||
g_object_notify_by_pspec (G_OBJECT (self), props[PROP_HAS_ACCELEROMETER]);
|
||||
|
||||
if (g_settings_get_boolean (self->settings, ORIENTATION_LOCK_KEY))
|
||||
if (self->settings != NULL &&
|
||||
g_settings_get_boolean (self->settings, ORIENTATION_LOCK_KEY))
|
||||
return;
|
||||
|
||||
if (self->prev_orientation == self->curr_orientation)
|
||||
@ -273,6 +274,8 @@ iio_sensor_vanished_cb (GDBusConnection *connection,
|
||||
static void
|
||||
meta_orientation_manager_init (MetaOrientationManager *self)
|
||||
{
|
||||
GSettingsSchemaSource *schema_source = g_settings_schema_source_get_default ();
|
||||
|
||||
self->iio_watch_id = g_bus_watch_name (G_BUS_TYPE_SYSTEM,
|
||||
"net.hadess.SensorProxy",
|
||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
||||
@ -281,10 +284,13 @@ meta_orientation_manager_init (MetaOrientationManager *self)
|
||||
self,
|
||||
NULL);
|
||||
|
||||
self->settings = g_settings_new (CONF_SCHEMA);
|
||||
g_signal_connect_object (self->settings, "changed::"ORIENTATION_LOCK_KEY,
|
||||
G_CALLBACK (orientation_lock_changed), self, 0);
|
||||
sync_state (self);
|
||||
if (g_settings_schema_source_lookup (schema_source, CONF_SCHEMA, TRUE))
|
||||
{
|
||||
self->settings = g_settings_new (CONF_SCHEMA);
|
||||
g_signal_connect_object (self->settings, "changed::"ORIENTATION_LOCK_KEY,
|
||||
G_CALLBACK (orientation_lock_changed), self, 0);
|
||||
sync_state (self);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user