From 7508ce1e31fb3ab2d6699a95ffb7711e74a2516e Mon Sep 17 00:00:00 2001 From: Bill Spitzak Date: Mon, 9 Aug 1999 06:19:33 +0000 Subject: It crashed when a group with exactly 1 child was deleted. Overlay on a single buffered Fl_Gl_Window is faked more accurately when there is no overlay hardware. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@639 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Gl_Window.cxx | 8 +++----- src/Fl_Group.cxx | 6 +++--- src/Fl_Menu.cxx | 15 ++++++++++++--- 3 files changed, 18 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index ef21b9107..7b1a21ebb 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Gl_Window.cxx,v 1.12.2.1 1999/03/18 20:04:12 bill Exp $" +// "$Id: Fl_Gl_Window.cxx,v 1.12.2.2 1999/08/09 06:19:32 bill Exp $" // // OpenGL window code for the Fast Light Tool Kit (FLTK). // @@ -255,9 +255,7 @@ void Fl_Gl_Window::flush() { } else { // single-buffered context is simpler: - // this faking of the overlay is incorrect but worked good for - // one in-house program: - if (overlay != this || damage()!=FL_DAMAGE_OVERLAY || !Fl::pushed()) draw(); + draw(); if (overlay == this) draw_overlay(); glFlush(); @@ -328,5 +326,5 @@ void Fl_Gl_Window::draw_overlay() {} #endif // -// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.1 1999/03/18 20:04:12 bill Exp $". +// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.2 1999/08/09 06:19:32 bill Exp $". // diff --git a/src/Fl_Group.cxx b/src/Fl_Group.cxx index 0d81124bc..8ff018746 100644 --- a/src/Fl_Group.cxx +++ b/src/Fl_Group.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Group.cxx,v 1.8.2.2 1999/07/22 21:37:03 bill Exp $" +// "$Id: Fl_Group.cxx,v 1.8.2.3 1999/08/09 06:19:32 bill Exp $" // // Group widget for the Fast Light Tool Kit (FLTK). // @@ -259,7 +259,7 @@ void Fl_Group::clear() { int old_children = children(); // clear everything now, in case fl_fix_focus recursively calls us: children_ = 0; - array_ = 0; + // array_ = 0; dont do this, it will clobber old_array if only one child savedfocus_ = 0; resizable_ = this; init_sizes(); @@ -503,5 +503,5 @@ void Fl_Group::draw_outside_label(const Fl_Widget& w) const { } // -// End of "$Id: Fl_Group.cxx,v 1.8.2.2 1999/07/22 21:37:03 bill Exp $". +// End of "$Id: Fl_Group.cxx,v 1.8.2.3 1999/08/09 06:19:32 bill Exp $". // diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx index 11d7437e3..d2a9290d0 100644 --- a/src/Fl_Menu.cxx +++ b/src/Fl_Menu.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Menu.cxx,v 1.18.2.1 1999/04/26 06:45:27 bill Exp $" +// "$Id: Fl_Menu.cxx,v 1.18.2.2 1999/08/09 06:19:33 bill Exp $" // // Menu code for the Fast Light Tool Kit (FLTK). // @@ -536,7 +536,16 @@ int menuwindow::handle(int e) { // the second click (not the one that popped up the menu): if (!Fl::event_is_click() || p.state == PUSH_STATE || p.menubar && p.current_item && !p.current_item->submenu() // button - ) p.state = DONE_STATE; + ) { +#if 0 // makes the check/radio items leave the menu up + const Fl_Menu_Item* m = p.current_item; + if (m && button && (m->flags & (FL_MENU_TOGGLE|FL_MENU_RADIO))) { + ((Fl_Menu_*)button)->picked(m); + p.p[p.menu_number]->redraw(); + } else +#endif + p.state = DONE_STATE; + } return 1; } return Fl_Window::handle(e); @@ -719,5 +728,5 @@ const Fl_Menu_Item* Fl_Menu_Item::test_shortcut() const { } // -// End of "$Id: Fl_Menu.cxx,v 1.18.2.1 1999/04/26 06:45:27 bill Exp $". +// End of "$Id: Fl_Menu.cxx,v 1.18.2.2 1999/08/09 06:19:33 bill Exp $". // -- cgit v1.2.3