From 7b832a512e9bc39e39802cfc81ac7de7d32017a4 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Tue, 25 Jan 2011 19:54:09 +0000 Subject: Added Fl::event_dispatch() which can add a function to FLTK that monitors all events before they reach Fl::handle(). STR 2532 git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8314 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/Fl.cxx') diff --git a/src/Fl.cxx b/src/Fl.cxx index 00ecaf788..06a819cea 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -89,6 +89,8 @@ int Fl::damage_, char *Fl::e_text = (char *)""; int Fl::e_length; +Fl_Event_Dispatch Fl::e_dispatch = 0; + unsigned char Fl::options_[] = { 0, 0 }; unsigned char Fl::options_read_ = 0; @@ -727,7 +729,7 @@ static handler_link *handlers = 0; them returns non zero then the event is ignored. Events that cause this to be called are: - - FL_SHORTCUT events that are not recognized by any widget. + - FL_SHORTCUT events that are not recognized by any widget. This lets you provide global shortcut keys. - System events that FLTK does not recognize. See fl_xevent. - \e Some other events when the widget FLTK selected returns @@ -978,6 +980,12 @@ int Fl::handle(int e, Fl_Window* window) widget uses the event. */ { + if (e_dispatch) { + int ret = e_dispatch(e, window); + if (ret) + return ret; + } + e_number = e; if (fl_local_grab) return fl_local_grab(e); -- cgit v1.2.3