idle-monitor: Move reset_idletime handling to events.c

It's not specific to the Wayland protocol at all, and it's not really
a Wayland compositor thing. This should eventually be in the native
backend.
This commit is contained in:
Jasper St. Pierre
2014-03-30 20:50:03 -04:00
parent 490e1c8c3b
commit 1e2bdcc3c5
3 changed files with 34 additions and 26 deletions

View File

@ -1850,6 +1850,38 @@ meta_display_handle_xevent (MetaDisplay *display,
return bypass_gtk;
}
static void
handle_idletime_for_event (const ClutterEvent *event)
{
ClutterInputDevice *device, *source_device;
MetaIdleMonitor *core_monitor, *device_monitor;
int device_id;
/* This is handled by XSync under X11. */
if (!meta_is_wayland_compositor ())
return;
device = clutter_event_get_device (event);
if (device == NULL)
return;
device_id = clutter_input_device_get_device_id (device);
core_monitor = meta_idle_monitor_get_core ();
device_monitor = meta_idle_monitor_get_for_device (device_id);
meta_idle_monitor_reset_idletime (core_monitor);
meta_idle_monitor_reset_idletime (device_monitor);
source_device = clutter_event_get_source_device (event);
if (source_device != device)
{
device_id = clutter_input_device_get_device_id (device);
device_monitor = meta_idle_monitor_get_for_device (device_id);
meta_idle_monitor_reset_idletime (device_monitor);
}
}
static gboolean
meta_display_handle_event (MetaDisplay *display,
const ClutterEvent *event)
@ -1864,6 +1896,8 @@ meta_display_handle_event (MetaDisplay *display,
meta_wayland_compositor_update (compositor, event);
}
handle_idletime_for_event (event);
window = get_window_for_event (display, event);
display->current_time = event->any.time;