summaryrefslogtreecommitdiff
path: root/src/backends/meta-monitor-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/meta-monitor-manager.c')
-rw-r--r--src/backends/meta-monitor-manager.c9
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);
}
}