summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl.cxx10
-rw-r--r--src/Fl_Menu_add.cxx15
-rw-r--r--src/Fl_Scrollbar.cxx16
3 files changed, 26 insertions, 15 deletions
diff --git a/src/Fl.cxx b/src/Fl.cxx
index 4628ae017..aa0700e73 100644
--- a/src/Fl.cxx
+++ b/src/Fl.cxx
@@ -1,6 +1,6 @@
#include <stdio.h>
//
-// "$Id: Fl.cxx,v 1.24.2.13 1999/10/23 06:19:59 bill Exp $"
+// "$Id: Fl.cxx,v 1.24.2.14 2000/01/16 04:30:36 bill Exp $"
//
// Main event handling code for the Fast Light Tool Kit (FLTK).
//
@@ -573,7 +573,11 @@ void Fl_Window::hide() {
#ifdef WIN32
if (x->private_dc) ReleaseDC(x->xid,x->private_dc);
- if (x->xid == fl_window) fl_GetDC(0); // releases dc belonging to window
+ if (x->xid == fl_window && fl_gc) {
+ ReleaseDC(fl_window, fl_gc);
+ fl_window = (HWND)-1;
+ fl_gc = 0;
+ }
#else
if (x->region) XDestroyRegion(x->region);
#endif
@@ -700,5 +704,5 @@ int fl_old_shortcut(const char* s) {
}
//
-// End of "$Id: Fl.cxx,v 1.24.2.13 1999/10/23 06:19:59 bill Exp $".
+// End of "$Id: Fl.cxx,v 1.24.2.14 2000/01/16 04:30:36 bill Exp $".
//
diff --git a/src/Fl_Menu_add.cxx b/src/Fl_Menu_add.cxx
index fe1647f78..82bc5df4b 100644
--- a/src/Fl_Menu_add.cxx
+++ b/src/Fl_Menu_add.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Menu_add.cxx,v 1.9.2.4 1999/07/12 12:22:45 carl Exp $"
+// "$Id: Fl_Menu_add.cxx,v 1.9.2.5 2000/01/16 04:30:37 bill Exp $"
//
// Menu utilities for the Fast Light Tool Kit (FLTK).
//
@@ -225,10 +225,17 @@ void Fl_Menu_::remove(int i) {
int n = size();
if (i<0 || i>=n) return;
if (!alloc) copy(menu_);
- if (alloc > 1) free((void *)menu_[i].text);
- memmove(&menu_[i],&menu_[i+1],(n-i)*sizeof(Fl_Menu_Item));
+ // find the next item, skipping submenus:
+ Fl_Menu_Item* item = menu_+i;
+ const Fl_Menu_Item* next_item = item->next();
+ // delete the text only if all items were created with add():
+ if (alloc > 1) {
+ for (Fl_Menu_Item* m = item; m < next_item; m++)
+ if (m->text) free((void*)(m->text));
+ }
+ memmove(item, next_item, ((menu_+n+1)-next_item)*sizeof(Fl_Menu_Item));
}
//
-// End of "$Id: Fl_Menu_add.cxx,v 1.9.2.4 1999/07/12 12:22:45 carl Exp $".
+// End of "$Id: Fl_Menu_add.cxx,v 1.9.2.5 2000/01/16 04:30:37 bill Exp $".
//
diff --git a/src/Fl_Scrollbar.cxx b/src/Fl_Scrollbar.cxx
index 88dc8971b..16ba09074 100644
--- a/src/Fl_Scrollbar.cxx
+++ b/src/Fl_Scrollbar.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Scrollbar.cxx,v 1.7.2.4 1999/12/29 03:14:37 mike Exp $"
+// "$Id: Fl_Scrollbar.cxx,v 1.7.2.5 2000/01/16 04:30:37 bill Exp $"
//
// Scroll bar widget for the Fast Light Tool Kit (FLTK).
//
@@ -106,7 +106,7 @@ int Fl_Scrollbar::handle(int event) {
case FL_LEAVE:
return 1;
case FL_RELEASE:
- damage(FL_DAMAGE_EXPOSE);
+ damage(FL_DAMAGE_ALL);
if (pushed_) {
Fl::remove_timeout(timeout_cb, this);
pushed_ = 0;
@@ -120,7 +120,7 @@ int Fl_Scrollbar::handle(int event) {
handle_push();
Fl::add_timeout(INITIALREPEAT, timeout_cb, this);
increment_cb();
- damage(FL_DAMAGE_EXPOSE);
+ damage(FL_DAMAGE_ALL);
return 1;
}
return Fl_Slider::handle(event, X,Y,W,H);
@@ -190,9 +190,9 @@ void Fl_Scrollbar::draw() {
if (W < 3*H) {Fl_Slider::draw(X,Y,W,H); return;}
Fl_Slider::draw(X+H,Y,W-2*H,H);
if (damage()&FL_DAMAGE_ALL) {
- draw_box((pushed_&1) ? down(slider()) : slider(),
+ draw_box((pushed_==1) ? down(slider()) : slider(),
X, Y, H, H, selection_color());
- draw_box((pushed_&2) ? down(slider()) : slider(),
+ draw_box((pushed_==2) ? down(slider()) : slider(),
X+W-H, Y, H, H, selection_color());
if (active_r())
fl_color(labelcolor());
@@ -210,9 +210,9 @@ void Fl_Scrollbar::draw() {
if (H < 3*W) {Fl_Slider::draw(X,Y,W,H); return;}
Fl_Slider::draw(X,Y+W,W,H-2*W);
if (damage()&FL_DAMAGE_ALL) {
- draw_box((pushed_&1) ? down(slider()) : slider(),
+ draw_box((pushed_==1) ? down(slider()) : slider(),
X, Y, W, W, selection_color());
- draw_box((pushed_&2) ? down(slider()) : slider(),
+ draw_box((pushed_==2) ? down(slider()) : slider(),
X, Y+H-W, W, W, selection_color());
if (active_r())
fl_color(labelcolor());
@@ -241,5 +241,5 @@ Fl_Scrollbar::Fl_Scrollbar(int X, int Y, int W, int H, const char* L)
}
//
-// End of "$Id: Fl_Scrollbar.cxx,v 1.7.2.4 1999/12/29 03:14:37 mike Exp $".
+// End of "$Id: Fl_Scrollbar.cxx,v 1.7.2.5 2000/01/16 04:30:37 bill Exp $".
//