X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Feventdispatcher.hh;h=a9b5af7b2997056a3831decf5b230fb822f189b7;hb=5a139f7263e33b499836f5df9ac37400e02c32f9;hp=5e7a1fe484fff6400aa84a7005879c64d567cb07;hpb=e53fbcf092c40b22ccc4c5f23795e12c9862c338;p=chaz%2Fopenbox diff --git a/otk/eventdispatcher.hh b/otk/eventdispatcher.hh index 5e7a1fe4..a9b5af7b 100644 --- a/otk/eventdispatcher.hh +++ b/otk/eventdispatcher.hh @@ -16,18 +16,29 @@ public: virtual ~OtkEventDispatcher(); virtual void clearAllHandlers(void); - virtual void registerHandler(Window id, OtkEventHandler *handler); + virtual void registerHandler(Window id, otk::OtkEventHandler *handler); virtual void clearHandler(Window id); virtual void dispatchEvents(void); - inline void setFallbackHandler(OtkEventHandler *fallback) + inline void setFallbackHandler(otk::OtkEventHandler *fallback) { _fallback = fallback; } - OtkEventHandler *getFallbackHandler(void) const { return _fallback; } + otk::OtkEventHandler *getFallbackHandler(void) const { return _fallback; } + //! Sets an event handler that gets all events for all handlers after + //! any specific handlers have received them + inline void setMasterHandler(otk::OtkEventHandler *master) + { _master = master; } + otk::OtkEventHandler *getMasterHandler(void) const { return _master; } + + otk::OtkEventHandler *findHandler(Window win); + private: OtkEventMap _map; OtkEventHandler *_fallback; + OtkEventHandler *_master; + //! The time at which the last XEvent with a time was received + Time _lasttime; // XXX: store this! also provide an accessor! }; }