diff options
-rw-r--r-- | .gitignore | 49 | ||||
-rw-r--r-- | data/apps_mate_settings_daemon_xrandr.schemas.in | 19 | ||||
-rw-r--r-- | plugins/housekeeping/msd-disk-space.c | 8 | ||||
-rw-r--r-- | plugins/media-keys/msd-media-keys-manager.c | 17 | ||||
-rw-r--r-- | plugins/xrandr/msd-xrandr-manager.c | 11 |
5 files changed, 97 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d1a0b48 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +aclocal.m4 +autom4te.cache +compile +config.guess +config.h* +config.log +config.status +config.sub +configure +depcomp +INSTALL +install-sh +intltool-* +libtool +ltmain.sh +Makefile +Makefile.in +Makefile.in.in +missing +mkinstalldirs +*.o +*.lo +*.a +*.la +*.gmo +po/POTFILES +po/stamp-it +stamp-h1 +.deps +.libs +gnome-settings-daemon/gnome-settings-client.h +gnome-settings-daemon/gnome-settings-daemon +gnome-settings-daemon/gnome-settings-manager-glue.h +data/*.pc +data/*.schemas +data/gnome-settings-daemon.desktop +data/gnome-settings-daemon.desktop.in +data/50-accessibility.xml +data/org.gnome.SettingsDaemon.service +*.gnome-settings-plugin +plugins/a11y-keyboard/test-a11y-preferences-dialog +plugins/background/test-background +plugins/media-keys/gsd-marshal.c +plugins/media-keys/gsd-marshal.h +plugins/media-keys/gsd-media-keys-manager-glue.h +plugins/media-keys/test-media-keys +plugins/media-keys/test-media-window +plugins/mouse/gsd-locate-pointer +plugins/xrandr/gsd-xrandr-manager-glue.h diff --git a/data/apps_mate_settings_daemon_xrandr.schemas.in b/data/apps_mate_settings_daemon_xrandr.schemas.in index 2314ac8..3428354 100644 --- a/data/apps_mate_settings_daemon_xrandr.schemas.in +++ b/data/apps_mate_settings_daemon_xrandr.schemas.in @@ -15,6 +15,25 @@ </locale> </schema> <schema> + <key>/schemas/apps/mate_settings_daemon/xrandr/use_xorg_monitor_settings</key> + <applyto>/apps/mate_settings_daemon/xrandr/use_xorg_monitor_settings</applyto> + <owner>mate</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Do not touch monitor configuration</short> + <long>Usually, mate-settings-daemon configures internal and + external monitors according to the + turn_on_external_monitors_at_startup and + turn_on_laptop_monitor_at_startup settings and determines + an appropriate cloning/side-by-side mode. Setting this key + to True disables this, and the monitor settings are not + touched at all (unless there is an explicit user + configuration). + </long> + </locale> + </schema> + <schema> <key>/schemas/apps/mate_settings_daemon/xrandr/turn_on_external_monitors_at_startup</key> <applyto>/apps/mate_settings_daemon/xrandr/turn_on_external_monitors_at_startup</applyto> <owner>mate</owner> diff --git a/plugins/housekeeping/msd-disk-space.c b/plugins/housekeeping/msd-disk-space.c index 6842ae5..e36be16 100644 --- a/plugins/housekeeping/msd-disk-space.c +++ b/plugins/housekeeping/msd-disk-space.c @@ -181,7 +181,7 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, gboolean has_trash; gboolean has_disk_analyzer; gboolean retval = TRUE; - const gchar *path; + gchar *path; /* Don't show a dialog if one is already displayed */ if (dialog) @@ -190,7 +190,7 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, name = g_unix_mount_guess_name (mount->mount); free_space = (gint64) mount->buf.f_frsize * (gint64) mount->buf.f_bavail; has_trash = ldsm_mount_has_trash (mount); - path = g_unix_mount_get_mount_path (mount->mount); + path = g_strdup (g_unix_mount_get_mount_path (mount->mount)); program = g_find_program_in_path (DISK_SPACE_ANALYZER); has_disk_analyzer = (program != NULL); @@ -218,7 +218,7 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, break; case MSD_LDSM_DIALOG_RESPONSE_ANALYZE: retval = FALSE; - ldsm_analyze_path (g_unix_mount_get_mount_path (mount->mount)); + ldsm_analyze_path (path); break; case MSD_LDSM_DIALOG_RESPONSE_EMPTY_TRASH: retval = TRUE; @@ -232,6 +232,8 @@ ldsm_notify_for_mount (LdsmMountInfo *mount, g_assert_not_reached (); } + g_free (path); + return retval; } diff --git a/plugins/media-keys/msd-media-keys-manager.c b/plugins/media-keys/msd-media-keys-manager.c index d7e1b04..e7310c6 100644 --- a/plugins/media-keys/msd-media-keys-manager.c +++ b/plugins/media-keys/msd-media-keys-manager.c @@ -862,6 +862,19 @@ on_control_default_sink_changed (GvcMixerControl *control, update_default_sink (manager); } +static void +on_control_stream_removed (GvcMixerControl *control, + guint id, + GsdMediaKeysManager *manager) +{ + if (manager->priv->stream != NULL) { + if (gvc_mixer_stream_get_id (manager->priv->stream) == id) { + g_object_unref (manager->priv->stream); + manager->priv->stream = NULL; + } + } +} + #endif /* HAVE_PULSE */ static gint @@ -1186,6 +1199,10 @@ msd_media_keys_manager_start (MsdMediaKeysManager *manager, "default-sink-changed", G_CALLBACK (on_control_default_sink_changed), manager); + g_signal_connect (manager->priv->volume, + "stream-removed", + G_CALLBACK (on_control_stream_removed), + manager); gvc_mixer_control_open (manager->priv->volume); diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c index dc00be1..7d8d7f5 100644 --- a/plugins/xrandr/msd-xrandr-manager.c +++ b/plugins/xrandr/msd-xrandr-manager.c @@ -61,6 +61,7 @@ #define CONF_DIR "/apps/mate_settings_daemon/xrandr" #define CONF_KEY_SHOW_NOTIFICATION_ICON (CONF_DIR "/show_notification_icon") +#define CONF_KEY_USE_XORG_MONITOR_SETTINGS (CONF_DIR "/use_xorg_monitor_settings") #define CONF_KEY_TURN_ON_EXTERNAL_MONITORS_AT_STARTUP (CONF_DIR "/turn_on_external_monitors_at_startup") #define CONF_KEY_TURN_ON_LAPTOP_MONITOR_AT_STARTUP (CONF_DIR "/turn_on_laptop_monitor_at_startup") #define CONF_KEY_DEFAULT_CONFIGURATION_FILE (CONF_DIR "/default_configuration_file") @@ -77,7 +78,7 @@ #define MSD_XRANDR_ICON_NAME "msd-xrandr" /* executable of the control center's display configuration capplet */ -#define MSD_XRANDR_DISPLAY_CAPPLET "mate-control-center display" +#define MSD_XRANDR_DISPLAY_CAPPLET "mate-display-properties" #define MSD_DBUS_PATH "/org/mate/SettingsDaemon" #define MSD_DBUS_NAME "org.mate.SettingsDaemon" @@ -2168,10 +2169,11 @@ apply_intended_configuration (MsdXrandrManager *manager, const char *intended_fi gboolean result; my_error = NULL; - result = apply_configuration_from_filename (manager, intended_filename, FALSE, timestamp, &my_error); + result = apply_configuration_from_filename (manager, intended_filename, TRUE, timestamp, &my_error); if (!result) { if (my_error) { - if (!g_error_matches (my_error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) + if (!g_error_matches (my_error, G_FILE_ERROR, G_FILE_ERROR_NOENT) && + !g_error_matches (my_error, MATE_RR_ERROR, MATE_RR_ERROR_NO_MATCHING_CONFIG)) error_message (manager, _("Could not apply the stored configuration for monitors"), my_error, NULL); g_error_free (my_error); @@ -2349,7 +2351,8 @@ msd_xrandr_manager_start (MsdXrandrManager *manager, show_timestamps_dialog (manager, "Startup"); if (!apply_stored_configuration_at_startup (manager, GDK_CURRENT_TIME)) /* we don't have a real timestamp at startup anyway */ if (!apply_default_configuration_from_file (manager, GDK_CURRENT_TIME)) - apply_default_boot_configuration (manager, GDK_CURRENT_TIME); + if (!mateconf_client_get_bool (manager->priv->client, CONF_KEY_USE_XORG_MONITOR_SETTINGS, NULL)) + apply_default_boot_configuration (manager, GDK_CURRENT_TIME); log_msg ("State of screen after initial configuration:\n"); log_screen (manager->priv->rw_screen); |