diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-04-21 19:03:22 -0400 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-04-21 20:25:21 -0400 |
commit | 00ea9bf14bd98edd902e33cd8e6af1688bee3131 (patch) | |
tree | 18ec21788c6224a8001f4a2010b4b0865fa88d3a /src/backends/meta-idle-monitor.c | |
parent | f3ee9be4cbb5cada9a125eaddb533847d90c4595 (diff) | |
download | mutter-00ea9bf14bd98edd902e33cd8e6af1688bee3131.tar.gz |
backends: Start on an initial MetaBackend object
This isn't great so far -- all we did is put the idle monitors here
instead. We'll soon have separate backend subclasses for the two
backends.
Diffstat (limited to 'src/backends/meta-idle-monitor.c')
-rw-r--r-- | src/backends/meta-idle-monitor.c | 65 |
1 files changed, 5 insertions, 60 deletions
diff --git a/src/backends/meta-idle-monitor.c b/src/backends/meta-idle-monitor.c index 5e18f1b1d..adc96ab3d 100644 --- a/src/backends/meta-idle-monitor.c +++ b/src/backends/meta-idle-monitor.c @@ -38,8 +38,7 @@ #include <meta/meta-idle-monitor.h> #include "meta-idle-monitor-private.h" #include "meta-idle-monitor-dbus.h" -#include "backends/x11/meta-idle-monitor-xsync.h" -#include "backends/native/meta-idle-monitor-native.h" +#include "meta-backend.h" G_STATIC_ASSERT(sizeof(unsigned long) == sizeof(gpointer)); @@ -54,9 +53,6 @@ static GParamSpec *obj_props[PROP_LAST]; G_DEFINE_TYPE (MetaIdleMonitor, meta_idle_monitor, G_TYPE_OBJECT) -static MetaIdleMonitor *device_monitors[256]; -static int device_id_max; - void _meta_idle_monitor_watch_fire (MetaIdleMonitorWatch *watch) { @@ -160,38 +156,6 @@ meta_idle_monitor_init (MetaIdleMonitor *monitor) { } -static GType -get_idle_monitor_type (void) -{ -#if defined(CLUTTER_WINDOWING_X11) - if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11)) - return META_TYPE_IDLE_MONITOR_XSYNC; -#endif - - return META_TYPE_IDLE_MONITOR_NATIVE; -} - -static void -ensure_device_monitor (int device_id) -{ - if (device_monitors[device_id]) - return; - - device_monitors[device_id] = g_object_new (get_idle_monitor_type (), - "device-id", device_id, - NULL); - device_id_max = MAX (device_id_max, device_id); -} - -/* FIXME -- destroy device monitors at some point */ -G_GNUC_UNUSED static void -destroy_device_monitor (int device_id) -{ - g_clear_object (&device_monitors[device_id]); - if (device_id == device_id_max) - device_id_max--; -} - /** * meta_idle_monitor_get_core: * @@ -202,8 +166,8 @@ destroy_device_monitor (int device_id) MetaIdleMonitor * meta_idle_monitor_get_core (void) { - ensure_device_monitor (0); - return device_monitors[0]; + MetaBackend *backend = meta_get_backend (); + return meta_backend_get_idle_monitor (backend, 0); } /** @@ -217,10 +181,8 @@ meta_idle_monitor_get_core (void) MetaIdleMonitor * meta_idle_monitor_get_for_device (int device_id) { - g_return_val_if_fail (device_id > 0 && device_id < 256, NULL); - - ensure_device_monitor (device_id); - return device_monitors[device_id]; + MetaBackend *backend = meta_get_backend (); + return meta_backend_get_idle_monitor (backend, device_id); } static MetaIdleMonitorWatch * @@ -354,20 +316,3 @@ meta_idle_monitor_get_idletime (MetaIdleMonitor *monitor) { return META_IDLE_MONITOR_GET_CLASS (monitor)->get_idletime (monitor); } - -void -meta_idle_monitor_xsync_handle_xevent_all (XEvent *xevent) -{ - int i; - - for (i = 0; i <= device_id_max; i++) - { - if (device_monitors[i]) - { - if (!META_IS_IDLE_MONITOR_XSYNC (device_monitors[i])) - return; - - meta_idle_monitor_xsync_handle_xevent (device_monitors[i], (XSyncAlarmNotifyEvent*)xevent); - } - } -} |