mirror of
https://github.com/fltk/fltk.git
synced 2026-06-05 08:06:35 +08:00
Fl_Widget::damage(uchar,int,int,int,int) didn't clip the
bounding box properly (STR #626) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3916 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
CHANGES IN FLTK 1.1.6
|
CHANGES IN FLTK 1.1.6
|
||||||
|
|
||||||
- Documentation updates (STR #552, STR #608)
|
- Documentation updates (STR #552, STR #608)
|
||||||
|
- Fl_Widget::damage(uchar,int,int,int,int) didn't clip
|
||||||
|
the bounding box properly (STR #626)
|
||||||
|
- Windows could appear on the wrong screen on OSX (STR
|
||||||
|
#628)
|
||||||
- Fl_Double_Window produced an error on resize with X11
|
- Fl_Double_Window produced an error on resize with X11
|
||||||
- FLUID didn't display menu items using images properly
|
- FLUID didn't display menu items using images properly
|
||||||
(STR #564)
|
(STR #564)
|
||||||
|
|||||||
+8
-8
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// "$Id: Fl.cxx,v 1.24.2.41.2.68 2004/09/12 20:26:23 easysw Exp $"
|
// "$Id: Fl.cxx,v 1.24.2.41.2.69 2004/11/23 19:09:55 easysw Exp $"
|
||||||
//
|
//
|
||||||
// Main event handling code for the Fast Light Tool Kit (FLTK).
|
// Main event handling code for the Fast Light Tool Kit (FLTK).
|
||||||
//
|
//
|
||||||
@@ -998,12 +998,6 @@ void Fl_Widget::damage(uchar fl, int X, int Y, int W, int H) {
|
|||||||
Fl_X* i = Fl_X::i((Fl_Window*)wi);
|
Fl_X* i = Fl_X::i((Fl_Window*)wi);
|
||||||
if (!i) return; // window not mapped, so ignore it
|
if (!i) return; // window not mapped, so ignore it
|
||||||
|
|
||||||
if (X<=0 && Y<=0 && W>=wi->w() && H>=wi->h()) {
|
|
||||||
// if damage covers entire window delete region:
|
|
||||||
wi->damage(fl);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// clip the damage to the window and quit if none:
|
// clip the damage to the window and quit if none:
|
||||||
if (X < 0) {W += X; X = 0;}
|
if (X < 0) {W += X; X = 0;}
|
||||||
if (Y < 0) {H += Y; Y = 0;}
|
if (Y < 0) {H += Y; Y = 0;}
|
||||||
@@ -1011,6 +1005,12 @@ void Fl_Widget::damage(uchar fl, int X, int Y, int W, int H) {
|
|||||||
if (H > wi->h()-Y) H = wi->h()-Y;
|
if (H > wi->h()-Y) H = wi->h()-Y;
|
||||||
if (W <= 0 || H <= 0) return;
|
if (W <= 0 || H <= 0) return;
|
||||||
|
|
||||||
|
if (!X && !Y && W==wi->w() && H==wi->h()) {
|
||||||
|
// if damage covers entire window delete region:
|
||||||
|
wi->damage(fl);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (wi->damage()) {
|
if (wi->damage()) {
|
||||||
// if we already have damage we must merge with existing region:
|
// if we already have damage we must merge with existing region:
|
||||||
if (i->region) {
|
if (i->region) {
|
||||||
@@ -1052,5 +1052,5 @@ void Fl_Window::flush() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// End of "$Id: Fl.cxx,v 1.24.2.41.2.68 2004/09/12 20:26:23 easysw Exp $".
|
// End of "$Id: Fl.cxx,v 1.24.2.41.2.69 2004/11/23 19:09:55 easysw Exp $".
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user