aboutsummaryrefslogtreecommitdiff
path: root/src/FbTk
diff options
context:
space:
mode:
Diffstat (limited to 'src/FbTk')
-rw-r--r--src/FbTk/EventManager.cc18
-rw-r--r--src/FbTk/EventManager.hh9
2 files changed, 19 insertions, 8 deletions
diff --git a/src/FbTk/EventManager.cc b/src/FbTk/EventManager.cc
index 9a11ab2..d4f4f4c 100644
--- a/src/FbTk/EventManager.cc
+++ b/src/FbTk/EventManager.cc
@@ -19,7 +19,7 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: EventManager.cc,v 1.11 2004/04/19 22:46:46 fluxgen Exp $ 22// $Id: EventManager.cc,v 1.12 2004/05/04 14:33:38 rathnor Exp $
23 23
24#include "EventManager.hh" 24#include "EventManager.hh"
25#include "FbWindow.hh" 25#include "FbWindow.hh"
@@ -128,11 +128,19 @@ void EventManager::unregisterEventHandler(Window win) {
128 128
129void EventManager::dispatch(Window win, XEvent &ev, bool parent) { 129void EventManager::dispatch(Window win, XEvent &ev, bool parent) {
130 EventHandler *evhand = 0; 130 EventHandler *evhand = 0;
131 if (parent) 131 if (parent) {
132 evhand = m_parent[win]; 132 EventHandlerMap::iterator it = m_parent.find(win);
133 else { 133 if (it == m_parent.end())
134 return;
135 else
136 evhand = it->second;
137 } else {
134 win = getEventWindow(ev); 138 win = getEventWindow(ev);
135 evhand = m_eventhandlers[win]; 139 EventHandlerMap::iterator it = m_eventhandlers.find(win);
140 if (it == m_eventhandlers.end())
141 return;
142 else
143 evhand = it->second;
136 } 144 }
137 145
138 if (evhand == 0) 146 if (evhand == 0)
diff --git a/src/FbTk/EventManager.hh b/src/FbTk/EventManager.hh
index 049d527..6bd368c 100644
--- a/src/FbTk/EventManager.hh
+++ b/src/FbTk/EventManager.hh
@@ -19,7 +19,7 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: EventManager.hh,v 1.8 2004/04/19 22:46:46 fluxgen Exp $ 22// $Id: EventManager.hh,v 1.9 2004/05/04 14:33:38 rathnor Exp $
23 23
24#include "EventHandler.hh" 24#include "EventHandler.hh"
25#include <map> 25#include <map>
@@ -51,12 +51,15 @@ public:
51 51
52 void registerEventHandler(EventHandler &ev, Window win); 52 void registerEventHandler(EventHandler &ev, Window win);
53 void unregisterEventHandler(Window win); 53 void unregisterEventHandler(Window win);
54
54private: 55private:
55 EventManager() { } 56 EventManager() { }
56 ~EventManager(); 57 ~EventManager();
57 void dispatch(Window win, XEvent &event, bool parent = false); 58 void dispatch(Window win, XEvent &event, bool parent = false);
58 std::map<Window, EventHandler *> m_eventhandlers; 59
59 std::map<Window, EventHandler *> m_parent; 60 typedef std::map<Window, EventHandler *> EventHandlerMap;
61 EventHandlerMap m_eventhandlers;
62 EventHandlerMap m_parent;
60}; 63};
61 64
62} //end namespace FbTk 65} //end namespace FbTk