mirror of
https://github.com/fltk/fltk.git
synced 2026-06-06 08:32:07 +08:00
Calling deactivate() from a non-displayed widget could cause an infinite
loop. I didn't really fix this, but I removed deactivate() from constructors and replaced with set_flag(INACTIVE). The loop would happen if a widget responded to FL_MOVE by calling draw_overlay or otherwise creating an overlay, which is a pretty rare event. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@792 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.1 1999/09/16 05:34:25 bill Exp $"
|
// "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.2 1999/10/23 05:59:26 bill Exp $"
|
||||||
//
|
//
|
||||||
// OpenGL overlay code for the Fast Light Tool Kit (FLTK).
|
// OpenGL overlay code for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
@@ -70,7 +70,7 @@ public:
|
|||||||
overlay_choice.d = 0;
|
overlay_choice.d = 0;
|
||||||
overlay_choice.o = 1;
|
overlay_choice.o = 1;
|
||||||
g = &overlay_choice;
|
g = &overlay_choice;
|
||||||
deactivate();
|
set_flag(INACTIVE);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -195,5 +195,5 @@ void Fl_Gl_Window::hide_overlay() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// End of "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.1 1999/09/16 05:34:25 bill Exp $".
|
// End of "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.2 1999/10/23 05:59:26 bill Exp $".
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// "$Id: Fl_Overlay_Window.cxx,v 1.7 1999/01/07 19:17:24 mike Exp $"
|
// "$Id: Fl_Overlay_Window.cxx,v 1.7.2.1 1999/10/23 05:59:27 bill Exp $"
|
||||||
//
|
//
|
||||||
// Overlay window code for the Fast Light Tool Kit (FLTK).
|
// Overlay window code for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
@@ -84,7 +84,7 @@ class _Fl_Overlay : public Fl_Window {
|
|||||||
void show();
|
void show();
|
||||||
public:
|
public:
|
||||||
_Fl_Overlay(int x, int y, int w, int h) :
|
_Fl_Overlay(int x, int y, int w, int h) :
|
||||||
Fl_Window(x,y,w,h) {deactivate();}
|
Fl_Window(x,y,w,h) {set_flag(INACTIVE);}
|
||||||
};
|
};
|
||||||
|
|
||||||
int Fl_Overlay_Window::can_do_overlay() {
|
int Fl_Overlay_Window::can_do_overlay() {
|
||||||
@@ -140,5 +140,5 @@ void Fl_Overlay_Window::redraw_overlay() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// End of "$Id: Fl_Overlay_Window.cxx,v 1.7 1999/01/07 19:17:24 mike Exp $".
|
// End of "$Id: Fl_Overlay_Window.cxx,v 1.7.2.1 1999/10/23 05:59:27 bill Exp $".
|
||||||
//
|
//
|
||||||
|
|||||||
+3
-3
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// "$Id: forms_free.cxx,v 1.4 1999/01/07 19:17:44 mike Exp $"
|
// "$Id: forms_free.cxx,v 1.4.2.1 1999/10/23 05:59:27 bill Exp $"
|
||||||
//
|
//
|
||||||
// Forms free widget routines for the Fast Light Tool Kit (FLTK).
|
// Forms free widget routines for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
@@ -42,7 +42,7 @@ Fl_Free::Fl_Free(uchar t,int x,int y,int w,int h,const char *l,
|
|||||||
Fl_Widget(x,y,w,h,l) {
|
Fl_Widget(x,y,w,h,l) {
|
||||||
type(t);
|
type(t);
|
||||||
hfunc = hdl;
|
hfunc = hdl;
|
||||||
if (t == FL_SLEEPING_FREE) deactivate();
|
if (t == FL_SLEEPING_FREE) set_flag(INACTIVE);
|
||||||
if (t == FL_CONTINUOUS_FREE || t == FL_ALL_FREE)
|
if (t == FL_CONTINUOUS_FREE || t == FL_ALL_FREE)
|
||||||
Fl::add_timeout(.01,step,this);
|
Fl::add_timeout(.01,step,this);
|
||||||
}
|
}
|
||||||
@@ -73,5 +73,5 @@ int Fl_Free::handle(int e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// End of "$Id: forms_free.cxx,v 1.4 1999/01/07 19:17:44 mike Exp $".
|
// End of "$Id: forms_free.cxx,v 1.4.2.1 1999/10/23 05:59:27 bill Exp $".
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user