diff options
Diffstat (limited to 'registryd/event-source.c')
-rw-r--r-- | registryd/event-source.c | 71 |
1 files changed, 36 insertions, 35 deletions
diff --git a/registryd/event-source.c b/registryd/event-source.c index ca4340c5..d73c9b67 100644 --- a/registryd/event-source.c +++ b/registryd/event-source.c @@ -24,36 +24,37 @@ #include "event-source.h" -typedef struct { +typedef struct +{ GSource source; - + Display *display; - GPollFD event_poll_fd; + GPollFD event_poll_fd; } DisplaySource; /*---------------------------------------------------------------------------*/ -static void (*_spi_default_filter) (XEvent*, void*) = NULL; -static void* _spi_default_filter_data = NULL; +static void (*_spi_default_filter) (XEvent *, void *) = NULL; +static void *_spi_default_filter_data = NULL; /*---------------------------------------------------------------------------*/ -static gboolean +static gboolean event_prepare (GSource *source, gint *timeout) { - Display *display = ((DisplaySource *)source)->display; + Display *display = ((DisplaySource *) source)->display; gboolean retval; - + *timeout = -1; retval = XPending (display); - + return retval; } -static gboolean -event_check (GSource *source) +static gboolean +event_check (GSource *source) { - DisplaySource *display_source = (DisplaySource*)source; + DisplaySource *display_source = (DisplaySource *) source; gboolean retval; if (display_source->event_poll_fd.revents & G_IO_IN) @@ -64,12 +65,12 @@ event_check (GSource *source) return retval; } -static gboolean -event_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) +static gboolean +event_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) { - Display *display = ((DisplaySource*)source)->display; + Display *display = ((DisplaySource *) source)->display; XEvent xevent; - + /* TODO - Should this be "if (XPending (display))"? * The effect of this might be to run other main loop functions * before dispatching the next XEvent. @@ -79,19 +80,19 @@ event_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) XNextEvent (display, &xevent); switch (xevent.type) - { - case KeyPress: - case KeyRelease: - break; - default: - if (XFilterEvent (&xevent, None)) - continue; - } - + { + case KeyPress: + case KeyRelease: + break; + default: + if (XFilterEvent (&xevent, None)) + continue; + } + if (_spi_default_filter) { _spi_default_filter (&xevent, _spi_default_filter_data); - } + } } return TRUE; @@ -112,9 +113,9 @@ display_source_new (Display *display) GSource *source = g_source_new (&event_funcs, sizeof (DisplaySource)); DisplaySource *display_source = (DisplaySource *) source; g_source_set_name (source, "[at-spi2-core] display_source_funcs"); - + display_source->display = display; - + return source; } @@ -122,7 +123,7 @@ display_source_new (Display *display) static DisplaySource *spi_display_source = NULL; -void +void spi_events_init (Display *display) { GSource *source; @@ -130,13 +131,13 @@ spi_events_init (Display *display) int connection_number = ConnectionNumber (display); source = display_source_new (display); - spi_display_source = (DisplaySource*) source; + spi_display_source = (DisplaySource *) source; g_source_set_priority (source, G_PRIORITY_DEFAULT); - + spi_display_source->event_poll_fd.fd = connection_number; spi_display_source->event_poll_fd.events = G_IO_IN; - + g_source_add_poll (source, &spi_display_source->event_poll_fd); g_source_set_can_recurse (source, TRUE); g_source_attach (source, NULL); @@ -158,14 +159,14 @@ spi_set_events (long event_mask) { long xevent_mask = StructureNotifyMask | PropertyChangeMask; xevent_mask |= event_mask; - - XSelectInput (spi_display_source->display, + + XSelectInput (spi_display_source->display, DefaultRootWindow (spi_display_source->display), xevent_mask); } void -spi_set_filter (void (*filter) (XEvent*, void*), void* data) +spi_set_filter (void (*filter) (XEvent *, void *), void *data) { _spi_default_filter = filter; _spi_default_filter_data = data; |