summaryrefslogtreecommitdiff
path: root/src/backends/native/meta-monitor-manager-kms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/native/meta-monitor-manager-kms.c')
-rw-r--r--src/backends/native/meta-monitor-manager-kms.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c
index c9a3cabe2..9a0364441 100644
--- a/src/backends/native/meta-monitor-manager-kms.c
+++ b/src/backends/native/meta-monitor-manager-kms.c
@@ -109,6 +109,21 @@ meta_monitor_manager_kms_read_edid (MetaMonitorManager *manager,
}
static void
+meta_monitor_manager_kms_read_current_state (MetaMonitorManager *manager)
+{
+ MetaMonitorManagerClass *parent_class =
+ META_MONITOR_MANAGER_CLASS (meta_monitor_manager_kms_parent_class);
+ MetaPowerSave power_save_mode;
+
+ power_save_mode = meta_monitor_manager_get_power_save_mode (manager);
+ if (power_save_mode != META_POWER_SAVE_ON)
+ meta_monitor_manager_power_save_mode_changed (manager,
+ META_POWER_SAVE_ON);
+
+ parent_class->read_current_state (manager);
+}
+
+static void
meta_monitor_manager_kms_set_power_save_mode (MetaMonitorManager *manager,
MetaPowerSave mode)
{
@@ -755,6 +770,7 @@ meta_monitor_manager_kms_class_init (MetaMonitorManagerKmsClass *klass)
object_class->dispose = meta_monitor_manager_kms_dispose;
manager_class->read_edid = meta_monitor_manager_kms_read_edid;
+ manager_class->read_current_state = meta_monitor_manager_kms_read_current_state;
manager_class->ensure_initial_config = meta_monitor_manager_kms_ensure_initial_config;
manager_class->apply_monitors_config = meta_monitor_manager_kms_apply_monitors_config;
manager_class->set_power_save_mode = meta_monitor_manager_kms_set_power_save_mode;