diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-12-29 18:57:09 -0800 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-12-31 08:53:57 -0800 |
commit | b9fb4a5887aab95f6712e5c248c4d88dc4548e02 (patch) | |
tree | fb24b27c92356d4493b158802850103759967fde /src/backends/x11/meta-backend-x11.c | |
parent | d9985cd9bc4660a4b43206605111f874d2aa4645 (diff) | |
download | mutter-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.c | 12 |
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 |