From fe4f5ef72c159e5f6e6023a41e5f021dd92d64f2 Mon Sep 17 00:00:00 2001 From: Bill Spitzak Date: Wed, 3 Mar 1999 07:40:18 +0000 Subject: [PATCH] Generates FL_ENTER after grab() is released for whatever widget the mouse is over. git-svn-id: file:///fltk/svn/fltk/trunk@351 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl.cxx | 14 ++++++++------ src/Fl_win32.cxx | 12 ++++-------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Fl.cxx b/src/Fl.cxx index f45038c28..7d8cb4a73 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl.cxx,v 1.20 1999/02/26 07:07:55 bill Exp $" +// "$Id: Fl.cxx,v 1.21 1999/03/03 07:40:17 bill Exp $" // // Main event handling code for the Fast Light Tool Kit (FLTK). // @@ -418,7 +418,6 @@ int Fl::handle(int event, Fl_Window* window) case FL_DRAG: // this should not happen if enter/leave events were reported // correctly by the system, but just in case: - fl_xmousewin = window; if (pushed()) { w = pushed(); event = FL_DRAG; @@ -427,7 +426,10 @@ int Fl::handle(int event, Fl_Window* window) } else if (modal() && w != modal()) { w = 0; } - if (grab()) w = grab(); + if (grab()) + w = grab(); + else + fl_xmousewin = window; break; case FL_RELEASE: { @@ -490,11 +492,11 @@ int Fl::handle(int event, Fl_Window* window) return 0; case FL_ENTER: - fl_xmousewin = window; fl_fix_focus(); + if (!grab()) {fl_xmousewin = window; fl_fix_focus();} return 1; case FL_LEAVE: - if (window == fl_xmousewin) {fl_xmousewin = 0; fl_fix_focus();} + if (!grab() && window == fl_xmousewin) {fl_xmousewin = 0; fl_fix_focus();} return 1; default: @@ -681,5 +683,5 @@ int fl_old_shortcut(const char* s) { } // -// End of "$Id: Fl.cxx,v 1.20 1999/02/26 07:07:55 bill Exp $". +// End of "$Id: Fl.cxx,v 1.21 1999/03/03 07:40:17 bill Exp $". // diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 2d08091cb..5bc268324 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_win32.cxx,v 1.29 1999/02/19 15:34:09 mike Exp $" +// "$Id: Fl_win32.cxx,v 1.30 1999/03/03 07:40:18 bill Exp $" // // WIN32-specific code for the Fast Light Tool Kit (FLTK). // @@ -197,12 +197,6 @@ void Fl::get_mouse(int &x, int &y) { //////////////////////////////////////////////////////////////// -extern Fl_Window *fl_xfocus; // in Fl.C -extern Fl_Window *fl_xmousewin; // in Fl.C -void fl_fix_focus(); // in Fl.C - -//////////////////////////////////////////////////////////////// - HWND fl_capture; static int mouse_event(Fl_Window *window, int what, int button, @@ -599,6 +593,8 @@ void Fl_Window::resize(int X,int Y,int W,int H) { //////////////////////////////////////////////////////////////// +void fl_fix_focus(); // in Fl.C + char fl_show_iconic; // hack for Fl_Window::iconic() // int fl_background_pixel = -1; // color to use for background HCURSOR fl_default_cursor; @@ -895,5 +891,5 @@ void Fl_Window::make_current() { } // -// End of "$Id: Fl_win32.cxx,v 1.29 1999/02/19 15:34:09 mike Exp $". +// End of "$Id: Fl_win32.cxx,v 1.30 1999/03/03 07:40:18 bill Exp $". //