~ubuntu-branches/ubuntu/wily/unity-settings-daemon/wily-proposed

« back to all changes in this revision

Viewing changes to plugins/media-keys/gsd-media-keys-manager.c

  • Committer: Package Import Robot
  • Author(s): Sebastien Bacher, Bastien Nocera, Carlos Garnacho, Cosimo Cecchi, Florian Müllner, Jan Alexander Steffens (heftig), Kalev Lember, Matthias Clasen, Peter Hutterer, Ryan Lortie, Sebastien Bacher
  • Date: 2015-10-08 16:15:07 UTC
  • mfrom: (1.1.34)
  • Revision ID: package-import@ubuntu.com-20151008161507-2ox0t1y8guybhioq
Tags: 15.04.1+15.10.20151008-0ubuntu1
[ Bastien Nocera ]
* housekeeping: Don't follow symlinks to subdirectories, that can lead
  to data being deleted that shouldn't
* media-keys: Postpone initialisation of libcanberra

[ Carlos Garnacho ]
* [xsettings] backport some small fixes from upstream, should fix
  issues where settings changes are delayed

[ Cosimo Cecchi ]
* housekeeping: Don't follow symlinks to subdirectories, that can lead
  to data being deleted that shouldn't

[ Florian Müllner ]
* [xsettings] backport some small fixes from upstream, should fix
  issues where settings changes are delayed

[ Jan Alexander Steffens (heftig) ]
* [xsettings] backport some small fixes from upstream, should fix
  issues where settings changes are delayed

[ Kalev Lember ]
* [xsettings] backport some small fixes from upstream, should fix
  issues where settings changes are delayed

[ Matthias Clasen ]
* [xsettings] backport some small fixes from upstream, should fix
  issues where settings changes are delayed

[ Peter Hutterer ]
* Backport changes from upstream git and
  https://bugzilla.gnome.org/show_bug.cgi?id=724789 to better handle
  XError

[ Ryan Lortie ]
* [xsettings] backport some small fixes from upstream, should fix
  issues where settings changes are delayed

[ Sebastien Bacher ]
* [orientation] tweaked version of upstream fix for settings updates
* [xrandr] slightly updated version of an upstream bugfix for a
  segfault issue (LP: #1298024)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1358
1358
}
1359
1359
 
1360
1360
static void
 
1361
sound_theme_changed (GtkSettings         *settings,
 
1362
                     GParamSpec          *pspec,
 
1363
                     GsdMediaKeysManager *manager)
 
1364
{
 
1365
        char *theme_name;
 
1366
 
 
1367
        g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
 
1368
        if (theme_name)
 
1369
                ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
 
1370
        g_free (theme_name);
 
1371
}
 
1372
 
 
1373
static void
 
1374
ensure_canberra (GsdMediaKeysManager *manager)
 
1375
{
 
1376
        char *theme_name;
 
1377
 
 
1378
        if (manager->priv->ca != NULL)
 
1379
                return;
 
1380
 
 
1381
        ca_context_create (&manager->priv->ca);
 
1382
        ca_context_set_driver (manager->priv->ca, "pulse");
 
1383
        ca_context_change_props (manager->priv->ca, 0,
 
1384
                                 CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
 
1385
                                 NULL);
 
1386
        manager->priv->gtksettings = gtk_settings_get_for_screen (gdk_screen_get_default ());
 
1387
        g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
 
1388
        if (theme_name)
 
1389
                ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
 
1390
        g_free (theme_name);
 
1391
        g_signal_connect (manager->priv->gtksettings, "notify::gtk-sound-theme-name",
 
1392
                          G_CALLBACK (sound_theme_changed), manager);
 
1393
}
 
1394
 
 
1395
static void
1361
1396
update_dialog (GsdMediaKeysManager *manager,
1362
1397
               GvcMixerStream      *stream,
1363
1398
               guint                vol,
1389
1424
 
1390
1425
done:
1391
1426
        if (quiet == FALSE && sound_changed != FALSE && muted == FALSE) {
 
1427
                ensure_canberra (manager);
1392
1428
                ca_context_change_device (manager->priv->ca,
1393
1429
                                          gvc_mixer_stream_get_name (stream));
1394
1430
                ca_context_play (manager->priv->ca, 1,
1594
1630
}
1595
1631
 
1596
1632
static void
1597
 
sound_theme_changed (GtkSettings         *settings,
1598
 
                     GParamSpec          *pspec,
1599
 
                     GsdMediaKeysManager *manager)
1600
 
{
1601
 
        char *theme_name;
1602
 
 
1603
 
        g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
1604
 
        if (theme_name)
1605
 
                ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
1606
 
        g_free (theme_name);
1607
 
}
1608
 
 
1609
 
static void
1610
1633
update_default_sink (GsdMediaKeysManager *manager)
1611
1634
{
1612
1635
        GvcMixerStream *stream;
3011
3034
start_media_keys_idle_cb (GsdMediaKeysManager *manager)
3012
3035
{
3013
3036
        const gchar *module;
3014
 
        char *theme_name;
3015
3037
 
3016
3038
        g_debug ("Starting media_keys manager");
3017
3039
        gnome_settings_profile_start (NULL);
3061
3083
 
3062
3084
        manager->priv->sound_settings = g_settings_new ("com.ubuntu.sound");
3063
3085
 
3064
 
        /* Sound events */
3065
 
        ca_context_create (&manager->priv->ca);
3066
 
        ca_context_set_driver (manager->priv->ca, "pulse");
3067
 
        ca_context_change_props (manager->priv->ca, 0,
3068
 
                                 CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
3069
 
                                 NULL);
3070
 
        manager->priv->gtksettings = gtk_settings_get_for_screen (gdk_screen_get_default ());
3071
 
        g_object_get (G_OBJECT (manager->priv->gtksettings), "gtk-sound-theme-name", &theme_name, NULL);
3072
 
        if (theme_name)
3073
 
                ca_context_change_props (manager->priv->ca, CA_PROP_CANBERRA_XDG_THEME_NAME, theme_name, NULL);
3074
 
        g_free (theme_name);
3075
 
        g_signal_connect (manager->priv->gtksettings, "notify::gtk-sound-theme-name",
3076
 
                          G_CALLBACK (sound_theme_changed), manager);
3077
 
 
3078
3086
        /* for the power plugin interface code */
3079
3087
        manager->priv->power_settings = g_settings_new (SETTINGS_POWER_DIR);
3080
3088