Merge lp:~khurshid-alam/unity-settings-daemon/media-keys-fix into lp:unity-settings-daemon

Proposed by Khurshid Alam
Status: Merged
Merged at revision: 4189
Proposed branch: lp:~khurshid-alam/unity-settings-daemon/media-keys-fix
Merge into: lp:unity-settings-daemon
Diff against target: 217 lines (+53/-27)
1 file modified
plugins/media-keys/gsd-media-keys-manager.c (+53/-27)
To merge this branch: bzr merge lp:~khurshid-alam/unity-settings-daemon/media-keys-fix
Reviewer Review Type Date Requested Status
Sebastien Bacher Approve
Review via email: mp+359935@code.launchpad.net

Commit message

* media-keys: Add more debug info

  This backports commits dc13b2d, 5f01643 & a09ae56 from gnome-settings-daemon.

* media-keys: Fix cancelled async calls usage

  This backports commits 86cbfda + 5147e6b & 214145c from gnome-settings-daemon.

* DESKTOP_SESSION is now unity

  Unity uses legacy key-grabber code. But since artful unity isn't the default session anymore and DESKTOP_SESSION changed from ubuntu to unity. Fixes LP: #1755106 LP: #1188569 LP: #1727842

Description of the change

It may seem unnecessary to add debug info for each dbus method call (revno: 4187), but I noticed session name change only after I added the debug info in the first place. Beside I don't want to partially backport commit for no reason. They do no harm.

And since I have other fixes just for media-keys plugin, this will keep size of each MR & no of MRs short.

To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks, that looks fine to me

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'plugins/media-keys/gsd-media-keys-manager.c'
--- plugins/media-keys/gsd-media-keys-manager.c 2017-10-03 05:07:39 +0000
+++ plugins/media-keys/gsd-media-keys-manager.c 2018-11-30 16:30:16 +0000
@@ -223,7 +223,7 @@
223 GDBusConnection *connection;223 GDBusConnection *connection;
224 GCancellable *bus_cancellable;224 GCancellable *bus_cancellable;
225 GDBusProxy *xrandr_proxy;225 GDBusProxy *xrandr_proxy;
226 GCancellable *cancellable;226 GCancellable *cancellable; /* Only used for XRandR operations */
227227
228 guint start_idle_id;228 guint start_idle_id;
229229
@@ -699,6 +699,7 @@
699{699{
700 GsdMediaKeysManager *manager = data;700 GsdMediaKeysManager *manager = data;
701701
702 g_debug ("Retrying to grab accelerators");
702 grab_media_keys (manager);703 grab_media_keys (manager);
703 return FALSE;704 return FALSE;
704}705}
@@ -718,8 +719,10 @@
718719
719 if (error) {720 if (error) {
720 retry = (error->code == G_DBUS_ERROR_UNKNOWN_METHOD);721 retry = (error->code == G_DBUS_ERROR_UNKNOWN_METHOD);
721 if (!retry)722 if (!retry && !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
722 g_warning ("%d: %s", error->code, error->message);723 g_warning ("Failed to grab accelerators: %s (%d)", error->message, error->code);
724 else if (retry)
725 g_debug ("Failed to grab accelerators, will retry: %s (%d)", error->message, error->code);
723 g_error_free (error);726 g_error_free (error);
724 } else {727 } else {
725 int i;728 int i;
@@ -768,9 +771,14 @@
768{771{
769 GrabData *data = user_data;772 GrabData *data = user_data;
770 MediaKey *key = data->key;773 MediaKey *key = data->key;
774 GError *error = NULL;
771775
772 shell_key_grabber_call_grab_accelerator_finish (SHELL_KEY_GRABBER (object),776 if (!shell_key_grabber_call_grab_accelerator_finish (SHELL_KEY_GRABBER (object),
773 &key->accel_id, result, NULL);777 &key->accel_id, result, &error)) {
778 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
779 g_warning ("Failed to grab accelerator: %s", error->message);
780 g_error_free (error);
781 }
774782
775 g_slice_free (GrabData, data);783 g_slice_free (GrabData, data);
776}784}
@@ -838,8 +846,14 @@
838 gpointer user_data)846 gpointer user_data)
839{847{
840 GsdMediaKeysManager *manager = user_data;848 GsdMediaKeysManager *manager = user_data;
841 shell_key_grabber_call_ungrab_accelerator_finish (SHELL_KEY_GRABBER (object),849
842 NULL, result, NULL);850 GError *error = NULL;
851 if (!shell_key_grabber_call_ungrab_accelerator_finish (SHELL_KEY_GRABBER (object),
852 NULL, result, &error)) {
853 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
854 g_warning ("Failed to ungrab accelerator: %s", error->message);
855 g_error_free (error);
856 }
843}857}
844858
845static void859static void
@@ -1390,7 +1404,7 @@
1390 priv->screen_saver_proxy = gnome_settings_bus_get_screen_saver_proxy ();1404 priv->screen_saver_proxy = gnome_settings_bus_get_screen_saver_proxy ();
13911405
1392 gsd_screen_saver_call_lock (priv->screen_saver_proxy,1406 gsd_screen_saver_call_lock (priv->screen_saver_proxy,
1393 priv->cancellable,1407 priv->bus_cancellable,
1394 (GAsyncReadyCallback) on_screen_locked,1408 (GAsyncReadyCallback) on_screen_locked,
1395 manager);1409 manager);
1396}1410}
@@ -2005,7 +2019,8 @@
2005 manager->priv->cancellable = NULL;2019 manager->priv->cancellable = NULL;
20062020
2007 if (error != NULL) {2021 if (error != NULL) {
2008 g_warning ("Unable to call '%s': %s", action, error->message);2022 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
2023 g_warning ("Failed to complete XRandR action: %s", error->message);
2009 g_error_free (error);2024 g_error_free (error);
2010 } else {2025 } else {
2011 g_variant_unref (variant);2026 g_variant_unref (variant);
@@ -2275,7 +2290,7 @@
2275 guint first;2290 guint first;
2276 gint i, n;2291 gint i, n;
22772292
2278 if (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "ubuntu") != 0)2293 if (g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "unity") != 0)
2279 if (!priv->have_legacy_keygrabber)2294 if (!priv->have_legacy_keygrabber)
2280 return;2295 return;
22812296
@@ -2817,6 +2832,9 @@
2817{2832{
2818 guint i;2833 guint i;
28192834
2835 g_debug ("Received accel id %u (device-id: %u, timestamp: %u",
2836 accel_id, deviceid, timestamp);
2837
2820 for (i = 0; i < manager->priv->keys->len; i++) {2838 for (i = 0; i < manager->priv->keys->len; i++) {
2821 MediaKey *key;2839 MediaKey *key;
28222840
@@ -2831,6 +2849,8 @@
2831 do_action (manager, deviceid, key->key_type, timestamp);2849 do_action (manager, deviceid, key->key_type, timestamp);
2832 return;2850 return;
2833 }2851 }
2852
2853 g_warning ("Could not find accelerator for accel id %u", accel_id);
2834}2854}
28352855
2836static void2856static void
@@ -2962,12 +2982,17 @@
2962 gpointer data)2982 gpointer data)
2963{2983{
2964 GsdMediaKeysManager *manager = data;2984 GsdMediaKeysManager *manager = data;
2985 GError *error = NULL;
29652986
2966 manager->priv->key_grabber =2987 manager->priv->key_grabber =
2967 shell_key_grabber_proxy_new_for_bus_finish (result, NULL);2988 shell_key_grabber_proxy_new_for_bus_finish (result, &error);
29682989
2969 if (!manager->priv->key_grabber)2990 if (!manager->priv->key_grabber) {
2991 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
2992 g_warning ("Failed to create proxy for key grabber: %s", error->message);
2993 g_error_free (error);
2970 return;2994 return;
2995 }
29712996
2972 g_signal_connect (manager->priv->key_grabber, "accelerator-activated",2997 g_signal_connect (manager->priv->key_grabber, "accelerator-activated",
2973 G_CALLBACK (on_accelerator_activated), manager);2998 G_CALLBACK (on_accelerator_activated), manager);
@@ -2979,7 +3004,7 @@
2979session_has_key_grabber (void)3004session_has_key_grabber (void)
2980{3005{
2981 const gchar *session = g_getenv ("DESKTOP_SESSION");3006 const gchar *session = g_getenv ("DESKTOP_SESSION");
2982 return g_strcmp0 (session, "gnome") == 0 || g_strcmp0 (session, "ubuntu") == 0;3007 return g_strcmp0 (session, "gnome") == 0 || g_strcmp0 (session, "unity") == 0;
2983}3008}
29843009
2985static void3010static void
@@ -3379,7 +3404,8 @@
33793404
3380 res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);3405 res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);
3381 if (res == NULL) {3406 if (res == NULL) {
3382 g_warning ("Unable to inhibit keypresses: %s", error->message);3407 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
3408 g_warning ("Unable to inhibit keypresses: %s", error->message);
3383 g_error_free (error);3409 g_error_free (error);
3384 } else {3410 } else {
3385 g_variant_get (res, "(h)", &idx);3411 g_variant_get (res, "(h)", &idx);
@@ -3478,7 +3504,8 @@
34783504
3479 manager->priv->xrandr_proxy = g_dbus_proxy_new_finish (res, &error);3505 manager->priv->xrandr_proxy = g_dbus_proxy_new_finish (res, &error);
3480 if (manager->priv->xrandr_proxy == NULL) {3506 if (manager->priv->xrandr_proxy == NULL) {
3481 g_warning ("Failed to get proxy for XRandR operations: %s", error->message);3507 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
3508 g_warning ("Failed to get proxy for XRandR operations: %s", error->message);
3482 g_error_free (error);3509 g_error_free (error);
3483 }3510 }
3484}3511}
@@ -3492,8 +3519,9 @@
34923519
3493 manager->priv->power_proxy = g_dbus_proxy_new_finish (res, &error);3520 manager->priv->power_proxy = g_dbus_proxy_new_finish (res, &error);
3494 if (manager->priv->power_proxy == NULL) {3521 if (manager->priv->power_proxy == NULL) {
3495 g_warning ("Failed to get proxy for power: %s",3522 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
3496 error->message);3523 g_warning ("Failed to get proxy for power: %s",
3524 error->message);
3497 g_error_free (error);3525 g_error_free (error);
3498 }3526 }
3499}3527}
@@ -3507,8 +3535,9 @@
35073535
3508 manager->priv->power_screen_proxy = g_dbus_proxy_new_finish (res, &error);3536 manager->priv->power_screen_proxy = g_dbus_proxy_new_finish (res, &error);
3509 if (manager->priv->power_screen_proxy == NULL) {3537 if (manager->priv->power_screen_proxy == NULL) {
3510 g_warning ("Failed to get proxy for power (screen): %s",3538 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
3511 error->message);3539 g_warning ("Failed to get proxy for power (screen): %s",
3540 error->message);
3512 g_error_free (error);3541 g_error_free (error);
3513 }3542 }
3514}3543}
@@ -3522,8 +3551,9 @@
35223551
3523 manager->priv->power_keyboard_proxy = g_dbus_proxy_new_finish (res, &error);3552 manager->priv->power_keyboard_proxy = g_dbus_proxy_new_finish (res, &error);
3524 if (manager->priv->power_keyboard_proxy == NULL) {3553 if (manager->priv->power_keyboard_proxy == NULL) {
3525 g_warning ("Failed to get proxy for power (keyboard): %s",3554 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
3526 error->message);3555 g_warning ("Failed to get proxy for power (keyboard): %s",
3556 error->message);
3527 g_error_free (error);3557 g_error_free (error);
3528 }3558 }
3529}3559}
@@ -3536,15 +3566,11 @@
3536 GDBusConnection *connection;3566 GDBusConnection *connection;
3537 GError *error = NULL;3567 GError *error = NULL;
35383568
3539 if (manager->priv->bus_cancellable == NULL ||
3540 g_cancellable_is_cancelled (manager->priv->bus_cancellable)) {
3541 g_warning ("Operation has been cancelled, so not retrieving session bus");
3542 return;
3543 }
35443569
3545 connection = g_bus_get_finish (res, &error);3570 connection = g_bus_get_finish (res, &error);
3546 if (connection == NULL) {3571 if (connection == NULL) {
3547 g_warning ("Could not get session bus: %s", error->message);3572 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
3573 g_warning ("Could not get session bus: %s", error->message);
3548 g_error_free (error);3574 g_error_free (error);
3549 return;3575 return;
3550 }3576 }

Subscribers

People subscribed via source and target branches