Merge lp:~attente/unity-settings-daemon/gnome-key-grabber into lp:unity-settings-daemon

Proposed by William Hua
Status: Merged
Approved by: Sebastien Bacher
Approved revision: 4019
Merged at revision: 4015
Proposed branch: lp:~attente/unity-settings-daemon/gnome-key-grabber
Merge into: lp:unity-settings-daemon
Diff against target: 114 lines (+20/-11)
2 files modified
debian/control (+1/-0)
plugins/media-keys/gsd-media-keys-manager.c (+19/-11)
To merge this branch: bzr merge lp:~attente/unity-settings-daemon/gnome-key-grabber
Reviewer Review Type Date Requested Status
Sebastien Bacher Approve
PS Jenkins bot (community) continuous-integration Approve
Unity Settings Daemon Development Team Pending
Review via email: mp+206033@code.launchpad.net

Commit message

Revert the legacy key grabber.

Description of the change

(This branch depends on https://code.launchpad.net/~attente/unity/gnome-key-grabber/+merge/202755 being released)

Revert the legacy key grabber.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Looks good, once a sensible version of unity with matching change is known, unity-settings-daemon needs "Breaks: unity (<< FIRST_VERSION_WITH_KEY_GRABS)"

Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks for the work!

There were some discussions last week, on #ubutu-desktop about that (see the irclog if you are interested into the details), turns out that some of the flavors/sessions would like to keep using the legacy grabber.

It looks like keeping the codepath for the LTS should be reasonable low cost (feel free to comment on that if you disagree, we might have overlooked details/issues), could you change the merge to keep the code but make it used only out of GNOME and Unity?

review: Needs Fixing
4016. By William Hua

Update debian/changelog.

4017. By William Hua

Try again.

4018. By William Hua

Ubuntu has key grabber.

4019. By William Hua

Breaks pre-key-grabber Unity.

Revision history for this message
William Hua (attente) wrote :

Ok, thanks for clarifying, I guess I misunderstood before because I thought u-s-d would only be available under Unity, and other DEs would be using the less patched g-s-d.

Revision history for this message
Sebastien Bacher (seb128) wrote :

You didn't misunderstood, we though it would be the case, but it turned out that some flavors/session feel like they are closer from unity (they use indicators, they don't want the new GtkHeaderBars, they want menus) ... so we are revisiting the approch and going to make those sessions be variant of Unity rather than GNOME.

Thanks for updating it

One small comment, we usually do check for XDG_CURRENT_DESKTOP=GNOME|Unity, is there any reason to look at DESKTOP_SESSION there?

review: Needs Information
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
William Hua (attente) wrote :

So, the code in that file originally used DESKTOP_SESSION. But if we use XDG_CURRENT_DESKTOP, then there is no way to differentiate between GNOME Shell, GNOME Classic, and the two GNOME Fallback sessions. These are the values for each DE:

[Desktop: DESKTOP_SESSION, XDG_CURRENT_DESKTOP]
GNOME Shell: gnome, GNOME
GNOME Classic: gnome-classic, GNOME
GNOME Flashback (Compiz): gnome-fallback-compiz, GNOME
GNOME Flashback (Metacity): gnome-fallback, GNOME
Unity: ubuntu, Unity

So the question is if GNOME Classic and GNOME Fallback should use the legacy key grabber. If yes, we should use DESKTOP_SESSION, if not, we can use XDG_CURRENT_DESKTOP.

Revision history for this message
Sebastien Bacher (seb128) wrote :

that makes sense, thanks for the explanation!

review: Approve
Revision history for this message
Sebastien Bacher (seb128) wrote :

Works fine here, thanks

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/control'
--- debian/control 2014-02-07 14:57:09 +0000
+++ debian/control 2014-02-17 16:37:48 +0000
@@ -61,6 +61,7 @@
61 gnome-session (<< 3.9.90-0ubuntu6),61 gnome-session (<< 3.9.90-0ubuntu6),
62 gnome-screensaver (<< 2.28.0),62 gnome-screensaver (<< 2.28.0),
63 gnome-color-manager (<< 3.0),63 gnome-color-manager (<< 3.0),
64 unity (<< 7.1.2+14.04.20140214.1-0ubuntu1),
64 unity-greeter (<< 0.2.1-0ubuntu1),65 unity-greeter (<< 0.2.1-0ubuntu1),
65 indicator-datetime (<< 12.10.3daily13.03.26)66 indicator-datetime (<< 12.10.3daily13.03.26)
66Suggests: x11-xserver-utils,67Suggests: x11-xserver-utils,
6768
=== modified file 'plugins/media-keys/gsd-media-keys-manager.c'
--- plugins/media-keys/gsd-media-keys-manager.c 2013-11-13 02:03:10 +0000
+++ plugins/media-keys/gsd-media-keys-manager.c 2014-02-17 16:37:48 +0000
@@ -741,8 +741,8 @@
741}741}
742742
743static gboolean743static gboolean
744grab_media_key_unity (MediaKey *key,744grab_media_key_legacy (MediaKey *key,
745 GsdMediaKeysManager *manager)745 GsdMediaKeysManager *manager)
746{746{
747 char *tmp;747 char *tmp;
748 gboolean need_flush;748 gboolean need_flush;
@@ -832,7 +832,7 @@
832 if (!manager->priv->have_legacy_keygrabber)832 if (!manager->priv->have_legacy_keygrabber)
833 grab_media_key (key, manager);833 grab_media_key (key, manager);
834 else {834 else {
835 if (grab_media_key_unity (key, manager))835 if (grab_media_key_legacy (key, manager))
836 need_flush = TRUE;836 need_flush = TRUE;
837 }837 }
838 break;838 break;
@@ -997,7 +997,7 @@
997 g_ptr_array_add (manager->priv->keys, key);997 g_ptr_array_add (manager->priv->keys, key);
998998
999 if (manager->priv->have_legacy_keygrabber)999 if (manager->priv->have_legacy_keygrabber)
1000 grab_media_key_unity (key, manager);1000 grab_media_key_legacy (key, manager);
1001}1001}
10021002
1003static void1003static void
@@ -1038,7 +1038,7 @@
1038 g_ptr_array_add (manager->priv->keys, key);1038 g_ptr_array_add (manager->priv->keys, key);
10391039
1040 if (manager->priv->have_legacy_keygrabber)1040 if (manager->priv->have_legacy_keygrabber)
1041 grab_media_key_unity (key, manager);1041 grab_media_key_legacy (key, manager);
1042 }1042 }
1043 g_strfreev (custom_paths);1043 g_strfreev (custom_paths);
10441044
@@ -2123,8 +2123,9 @@
2123 GVariant *sources;2123 GVariant *sources;
2124 gint i, n;2124 gint i, n;
21252125
2126 if (!manager->priv->have_legacy_keygrabber)2126 if (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "ubuntu") != 0)
2127 return;2127 if (!manager->priv->have_legacy_keygrabber)
2128 return;
21282129
2129 settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR);2130 settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR);
2130 sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);2131 sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);
@@ -2755,13 +2756,20 @@
2755 init_kbd (manager);2756 init_kbd (manager);
2756}2757}
27572758
2759static gboolean
2760session_has_key_grabber (void)
2761{
2762 const gchar *session = g_getenv ("DESKTOP_SESSION");
2763 return g_strcmp0 (session, "gnome") == 0 || g_strcmp0 (session, "ubuntu") == 0;
2764}
2765
2758static void2766static void
2759on_shell_appeared (GDBusConnection *connection,2767on_shell_appeared (GDBusConnection *connection,
2760 const char *name,2768 const char *name,
2761 const char *name_owner,2769 const char *name_owner,
2762 gpointer user_data)2770 gpointer user_data)
2763{2771{
2764 if (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "gnome") != 0)2772 if (!session_has_key_grabber ())
2765 return;2773 return;
27662774
2767 GsdMediaKeysManager *manager = user_data;2775 GsdMediaKeysManager *manager = user_data;
@@ -2787,7 +2795,7 @@
2787 const char *name,2795 const char *name,
2788 gpointer user_data)2796 gpointer user_data)
2789{2797{
2790 if (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "gnome") != 0)2798 if (!session_has_key_grabber ())
2791 return;2799 return;
27922800
2793 GsdMediaKeysManager *manager = user_data;2801 GsdMediaKeysManager *manager = user_data;
@@ -2807,7 +2815,7 @@
2807 GsdMediaKeysManager *manager = user_data;2815 GsdMediaKeysManager *manager = user_data;
2808 GSList *l;2816 GSList *l;
28092817
2810 if (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "gnome") == 0)2818 if (session_has_key_grabber ())
2811 return;2819 return;
28122820
2813 manager->priv->have_legacy_keygrabber = TRUE;2821 manager->priv->have_legacy_keygrabber = TRUE;
@@ -2844,7 +2852,7 @@
2844{2852{
2845 GsdMediaKeysManager *manager = user_data;2853 GsdMediaKeysManager *manager = user_data;
28462854
2847 if (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "gnome") == 0)2855 if (session_has_key_grabber ())
2848 return;2856 return;
28492857
2850 manager->priv->have_legacy_keygrabber = FALSE;2858 manager->priv->have_legacy_keygrabber = FALSE;

Subscribers

People subscribed via source and target branches