diff options
Diffstat (limited to 'src/backends/meta-monitor-manager.c')
-rw-r--r-- | src/backends/meta-monitor-manager.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c index 5c7eae8e9..a6c7f9a0d 100644 --- a/src/backends/meta-monitor-manager.c +++ b/src/backends/meta-monitor-manager.c @@ -351,7 +351,13 @@ lid_is_closed_changed (UpClient *client, gpointer user_data) { MetaMonitorManager *manager = user_data; + gboolean lid_is_closed; + lid_is_closed = up_client_get_lid_is_closed (manager->up_client); + if (lid_is_closed == manager->lid_is_closed) + return; + + manager->lid_is_closed = lid_is_closed; meta_monitor_manager_lid_is_closed_changed (manager); } @@ -361,7 +367,7 @@ meta_monitor_manager_real_is_lid_closed (MetaMonitorManager *manager) if (!manager->up_client) return FALSE; - return up_client_get_lid_is_closed (manager->up_client); + return manager->lid_is_closed; } gboolean @@ -737,6 +743,7 @@ meta_monitor_manager_constructed (GObject *object) { g_signal_connect_object (manager->up_client, "notify::lid-is-closed", G_CALLBACK (lid_is_closed_changed), manager, 0); + manager->lid_is_closed = up_client_get_lid_is_closed (manager->up_client); } } |