[gnome-settings-daemon/gnome-3-12] media-keys: Don't show Orientation lock popup if not supported
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/gnome-3-12] media-keys: Don't show Orientation lock popup if not supported
- Date: Fri, 25 Jul 2014 22:11:36 +0000 (UTC)
commit d146ef6d216695de3988582f4024019ef4968f4f
Author: Bastien Nocera <hadess hadess net>
Date: Fri Jul 25 12:11:46 2014 +0200
media-keys: Don't show Orientation lock popup if not supported
https://bugzilla.gnome.org/show_bug.cgi?id=732159
plugins/media-keys/gsd-media-keys-manager.c | 41 +++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
---
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index 71f45a0..71eb16c 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -178,6 +178,10 @@ struct GsdMediaKeysManagerPrivate
gboolean screencast_recording;
GCancellable *screencast_cancellable;
+ /* Rotation */
+ guint orientation_watch_id;
+ gboolean orientation_available;
+
/* systemd stuff */
GDBusProxy *logind_proxy;
gint inhibit_keys_fd;
@@ -1660,12 +1664,36 @@ do_video_rotate_action (GsdMediaKeysManager *manager,
}
static void
+orientation_appeared_cb (GDBusConnection *connection,
+ const gchar *name,
+ const gchar *name_owner,
+ gpointer user_data)
+{
+ GsdMediaKeysManager *manager = user_data;
+
+ manager->priv->orientation_available = TRUE;
+}
+
+static void
+orientation_disappeared_cb (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ GsdMediaKeysManager *manager = user_data;
+
+ manager->priv->orientation_available = FALSE;
+}
+
+static void
do_video_rotate_lock_action (GsdMediaKeysManager *manager,
gint64 timestamp)
{
GSettings *settings;
gboolean locked;
+ if (!manager->priv->orientation_available)
+ return;
+
settings = g_settings_new ("org.gnome.settings-daemon.peripherals.touchscreen");
locked = !g_settings_get_boolean (settings, "orientation-lock");
g_settings_set_boolean (settings, "orientation-lock", locked);
@@ -2386,6 +2414,14 @@ start_media_keys_idle_cb (GsdMediaKeysManager *manager)
g_debug ("Starting mpris controller");
manager->priv->mpris_controller = mpris_controller_new ();
+ /* Rotation */
+ manager->priv->orientation_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
+ "org.gnome.SettingsDaemon.Orientation",
+ G_BUS_NAME_WATCHER_FLAGS_NONE,
+ orientation_appeared_cb,
+ orientation_disappeared_cb,
+ manager, NULL);
+
gnome_settings_profile_end (NULL);
manager->priv->start_idle_id = 0;
@@ -2434,6 +2470,11 @@ gsd_media_keys_manager_stop (GsdMediaKeysManager *manager)
manager->priv->gtksettings = NULL;
}
+ if (manager->priv->orientation_watch_id > 0) {
+ g_bus_unwatch_name (manager->priv->orientation_watch_id);
+ manager->priv->orientation_watch_id = 0;
+ }
+
g_clear_pointer (&manager->priv->ca, ca_context_destroy);
#ifdef HAVE_GUDEV
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]