-typedef struct {
- Listener parent;
- GList *focus_listeners;
- GList *window_listeners;
- GList *toolkit_listeners;
- GList *applications;
- DeviceEventController *device_event_controller;
- Desktop *desktop;
- gboolean (*kbd_event_hook) (gpointer source);
-} Registry;
+#define SPI_REGISTRY_TYPE (spi_registry_get_type ())
+#define SPI_REGISTRY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SPI_REGISTRY_TYPE, SpiRegistry))
+#define SPI_REGISTRY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SPI_REGISTRY_TYPE, SpiRegistryClass))
+#define SPI_IS_REGISTRY(o) (G_TYPE_CHECK__INSTANCE_TYPE ((o), SPI_REGISTRY_TYPE))
+#define SPI_IS_REGISTRY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SPI_REGISTRY_TYPE))
+
+struct _SpiRegistry {
+ SpiListener parent;
+
+ GList *object_listeners;
+ GList *window_listeners;
+ GList *toolkit_listeners;
+ GQueue *deferred_event_queue;
+ gboolean is_queueing;
+ guint exit_notify_timeout;
+ guint queue_handler_id;
+ Bonobo_Unknown focus_object;
+ SpiDEController *de_controller;
+ SpiDesktop *desktop;
+};