From ecc91867b307b1280e0a1cb1beb3fd8d2ebdc4b4 Mon Sep 17 00:00:00 2001 From: Bill Spitzak Date: Mon, 17 Jan 2000 20:40:12 +0000 Subject: Fixed divide by zero in Fl_Scrollbar found by Harm-Jan Zwinderman. This happened if minimum == maximum. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@987 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Scrollbar.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Fl_Scrollbar.cxx b/src/Fl_Scrollbar.cxx index 16ba09074..464266a17 100644 --- a/src/Fl_Scrollbar.cxx +++ b/src/Fl_Scrollbar.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Scrollbar.cxx,v 1.7.2.5 2000/01/16 04:30:37 bill Exp $" +// "$Id: Fl_Scrollbar.cxx,v 1.7.2.6 2000/01/17 20:40:12 bill Exp $" // // Scroll bar widget for the Fast Light Tool Kit (FLTK). // @@ -75,7 +75,11 @@ int Fl_Scrollbar::handle(int event) { else { int sliderx; int S = int(slider_size()*W+.5); - double val = (value()-minimum())/(maximum()-minimum()); + double val; + if (minimum() == maximum()) + val = 0.5; + else + val = (value()-minimum())/(maximum()-minimum()); if (val >= 1.0) sliderx = W-S; else if (val <= 0.0) sliderx = 0; else sliderx = int(val*(W-S)+.5); @@ -91,7 +95,11 @@ int Fl_Scrollbar::handle(int event) { else { int slidery; int S = int(slider_size()*H+.5); - double val = (value()-minimum())/(maximum()-minimum()); + double val; + if (minimum() == maximum()) + val = 0.5; + else + val = (value()-minimum())/(maximum()-minimum()); if (val >= 1.0) slidery = H-S; else if (val <= 0.0) slidery = 0; else slidery = int(val*(H-S)+.5); @@ -241,5 +249,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.5 2000/01/16 04:30:37 bill Exp $". +// End of "$Id: Fl_Scrollbar.cxx,v 1.7.2.6 2000/01/17 20:40:12 bill Exp $". // -- cgit v1.2.3