backends: Turn MetaInputSettings into a singleton

We will need to fetch information from it at certain places.
The MetaBackend still takes care of freeing it though.
This commit is contained in:
Carlos Garnacho 2016-05-13 13:31:52 +02:00
parent f81e0f8922
commit f51972c2aa
3 changed files with 17 additions and 3 deletions

View File

@ -316,7 +316,7 @@ meta_backend_real_post_init (MetaBackend *backend)
g_slist_free (devices);
}
priv->input_settings = meta_input_settings_create ();
priv->input_settings = meta_input_settings_get ();
center_pointer (backend);
}

View File

@ -101,7 +101,7 @@ struct _MetaInputSettingsClass
GType meta_input_settings_get_type (void) G_GNUC_CONST;
MetaInputSettings * meta_input_settings_create (void);
MetaInputSettings * meta_input_settings_get (void);
GDesktopTabletMapping meta_input_settings_get_tablet_mapping (MetaInputSettings *settings,
ClutterInputDevice *device);

View File

@ -1043,7 +1043,7 @@ meta_input_settings_init (MetaInputSettings *settings)
}
}
MetaInputSettings *
static MetaInputSettings *
meta_input_settings_create (void)
{
#ifdef HAVE_NATIVE_BACKEND
@ -1060,6 +1060,20 @@ meta_input_settings_create (void)
return NULL;
}
MetaInputSettings *
meta_input_settings_get (void)
{
static MetaInputSettings *input_settings = NULL;
if (g_once_init_enter (&input_settings))
{
MetaInputSettings *settings = meta_input_settings_create ();
g_once_init_leave (&input_settings, settings);
}
return input_settings;
}
GDesktopTabletMapping
meta_input_settings_get_tablet_mapping (MetaInputSettings *settings,
ClutterInputDevice *device)