diff --git a/CHANGES b/CHANGES index cac5f3af4..c5a6b9d56 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,16 @@ +CHANGES IN FLTK 1.1.0b7 + + - More documentation updates... + - Fl_Help_View could get in an infinitely loop when + determining the maximum width of the page; this + was due to a bug in the get_length() method with + percentages (100% width would cause the bug.) + - Don't need -lgdi32 for CygWin, since -mwindows + does this for us. + - The WIN32 event handler did not properly handle + WM_SYNCPAINT messages. + + CHANGES IN FLTK 1.1.0b6 - Documentation updates... diff --git a/src/Fl_Help_View.cxx b/src/Fl_Help_View.cxx index 1183131b9..19b1ba53a 100644 --- a/src/Fl_Help_View.cxx +++ b/src/Fl_Help_View.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Help_View.cxx,v 1.1.2.16 2001/11/26 20:13:29 easysw Exp $" +// "$Id: Fl_Help_View.cxx,v 1.1.2.17 2001/11/30 16:10:08 easysw Exp $" // // Fl_Help_View widget routines. // @@ -746,6 +746,7 @@ Fl_Help_View::format() columns[MAX_COLUMNS]; // Column widths + // Reset document width... hsize_ = w() - 24; @@ -2006,7 +2007,12 @@ Fl_Help_View::get_length(const char *l) { // I - Value if (!l[0]) return 0; val = atoi(l); - if (l[strlen(l) - 1] == '%') val = val * hsize_ / 100; + if (l[strlen(l) - 1] == '%') { + if (val > 100) val = 100; + else if (val < 0) val = 0; + + val = val * (hsize_ - 24) / 100; + } return val; } @@ -2543,5 +2549,5 @@ hscrollbar_callback(Fl_Widget *s, void *) // -// End of "$Id: Fl_Help_View.cxx,v 1.1.2.16 2001/11/26 20:13:29 easysw Exp $". +// End of "$Id: Fl_Help_View.cxx,v 1.1.2.17 2001/11/30 16:10:08 easysw Exp $". // diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 9c08b3e7f..de80c9d0a 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_win32.cxx,v 1.33.2.37.2.8 2001/11/22 15:35:01 easysw Exp $" +// "$Id: Fl_win32.cxx,v 1.33.2.37.2.9 2001/11/30 16:10:08 easysw Exp $" // // WIN32-specific code for the Fast Light Tool Kit (FLTK). // @@ -435,21 +435,6 @@ extern void fl_restore_pen(void); static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { - // Matt: When dragging a full window, MSWindows on 'slow' - // machines can lose track of the window refresh area. It sends some kind - // of panic message to the desktop that in turn sends this message on to - // all applications. - static int cnt=0; - if (uMsg == WM_SYNCPAINT) { - MSG msg; - if ( PeekMessage( &msg, hWnd, WM_PAINT, WM_PAINT, false )==0 ) - InvalidateRect(hWnd,0,FALSE); - if (cnt) { - InvalidateRect(fl_window,0,FALSE); - cnt = 0; - } else cnt = 1; - } else if (uMsg == WM_PAINT) cnt = 0; - fl_msg.message = uMsg; Fl_Window *window = fl_find(hWnd); @@ -463,6 +448,14 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar Fl::handle(FL_CLOSE, window); return 0; + case WM_SYNCPAINT : + case WM_NCPAINT : + case WM_ERASEBKGND : + // Andreas Weitl - WM_SYNCPAINT needs to be passed to DefWindowProc + // so that Windows can generate the proper paint messages... + // Similarly, WM_NCPAINT and WM_ERASEBKGND need this, too... + break; + case WM_PAINT: { Fl_X *i = Fl_X::i(window); @@ -655,7 +648,6 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar fl_GetDC(hWnd); fl_select_palette(); break; - #endif default: @@ -1005,5 +997,5 @@ void Fl_Window::make_current() { } // -// End of "$Id: Fl_win32.cxx,v 1.33.2.37.2.8 2001/11/22 15:35:01 easysw Exp $". +// End of "$Id: Fl_win32.cxx,v 1.33.2.37.2.9 2001/11/30 16:10:08 easysw Exp $". //