summaryrefslogtreecommitdiff
path: root/src/backends/x11/meta-backend-x11.c
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-12-29 18:57:09 -0800
committerJasper St. Pierre <jstpierre@mecheye.net>2014-12-31 08:53:57 -0800
commitb9fb4a5887aab95f6712e5c248c4d88dc4548e02 (patch)
treefb24b27c92356d4493b158802850103759967fde /src/backends/x11/meta-backend-x11.c
parentd9985cd9bc4660a4b43206605111f874d2aa4645 (diff)
downloadmutter-b9fb4a5887aab95f6712e5c248c4d88dc4548e02.tar.gz
backend: Use a GHashTable for device monitors
The array code has been tricky to maintain and leaky. Let's just use a GHashTable to simplify our lives.
Diffstat (limited to 'src/backends/x11/meta-backend-x11.c')
-rw-r--r--src/backends/x11/meta-backend-x11.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
index fa99e0de7..8705a3d1d 100644
--- a/src/backends/x11/meta-backend-x11.c
+++ b/src/backends/x11/meta-backend-x11.c
@@ -79,11 +79,15 @@ static void
handle_alarm_notify (MetaBackend *backend,
XEvent *event)
{
- int i;
+ GHashTableIter iter;
+ gpointer value;
- for (i = 0; i <= backend->device_id_max; i++)
- if (backend->device_monitors[i])
- meta_idle_monitor_xsync_handle_xevent (backend->device_monitors[i], (XSyncAlarmNotifyEvent*) event);
+ g_hash_table_iter_init (&iter, backend->device_monitors);
+ while (g_hash_table_iter_next (&iter, NULL, &value))
+ {
+ MetaIdleMonitor *device_monitor = META_IDLE_MONITOR (value);
+ meta_idle_monitor_xsync_handle_xevent (device_monitor, (XSyncAlarmNotifyEvent*) event);
+ }
}
static void