summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-08-02 21:11:43 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-08-02 21:11:43 +0000
commit85533d11be0b32799d1baf343a13a633cb041ea2 (patch)
tree0925f1dd1abc26883357d0be4693f94b0f394226 /src
parentaf75829757e1dba0ed23aef7ff165cf80c3766b6 (diff)
Fix mouse wheel stuff for browser and helpview widgets (move 3 lines at
a time...) Fl_Group::handle() now sends unknown events to the focus widget first, then to any other child that will take it... git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1542 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Browser_.cxx12
-rw-r--r--src/Fl_Group.cxx19
-rw-r--r--src/Fl_HelpView.cxx14
-rw-r--r--src/Fl_x.cxx12
4 files changed, 41 insertions, 16 deletions
diff --git a/src/Fl_Browser_.cxx b/src/Fl_Browser_.cxx
index 4ae26e785..68ce30eae 100644
--- a/src/Fl_Browser_.cxx
+++ b/src/Fl_Browser_.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.1 2001/08/02 20:18:54 easysw Exp $"
+// "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.2 2001/08/02 21:11:43 easysw Exp $"
//
// Base Browser widget class for the Fast Light Tool Kit (FLTK).
//
@@ -551,9 +551,13 @@ int Fl_Browser_::handle(int event) {
static char whichway;
static int py;
switch (event) {
- case FL_MOUSEWHEEL:
- position(position() + Fl::e_dy * incr_height());
+ case FL_MOUSEWHEEL: {
+ int i = position() + Fl::e_dy * incr_height() * 3;
+ if (i < 0) i = 0;
+ else if (i > (full_height() - h())) i = full_height() - h();
+ position(i);
return (1);
+ }
case FL_PUSH:
if (!Fl::event_inside(X, Y, W, H)) return 0;
@@ -711,5 +715,5 @@ void Fl_Browser_::item_select(void*, int) {}
int Fl_Browser_::item_selected(void* l) const {return l==selection_;}
//
-// End of "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.1 2001/08/02 20:18:54 easysw Exp $".
+// End of "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.2 2001/08/02 21:11:43 easysw Exp $".
//
diff --git a/src/Fl_Group.cxx b/src/Fl_Group.cxx
index db7d1bc43..34b2e692c 100644
--- a/src/Fl_Group.cxx
+++ b/src/Fl_Group.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Group.cxx,v 1.8.2.8.2.2 2001/08/02 15:31:59 easysw Exp $"
+// "$Id: Fl_Group.cxx,v 1.8.2.8.2.3 2001/08/02 21:11:43 easysw Exp $"
//
// Group widget for the Fast Light Tool Kit (FLTK).
//
@@ -189,6 +189,21 @@ int Fl_Group::handle(int event) {
Fl_Tooltip::exit(this); // tooltip
default:
+ // For all other events, try to give to each child, starting at focus:
+ for (i = 0; i < children(); i ++)
+ if (Fl::focus_ == child(i)) break;
+
+ if (i >= children()) i = 0;
+
+ if (children()) {
+ for (int j = i;;) {
+ if (send(child(j), event)) return 1;
+ j++;
+ if (j >= children()) j = 0;
+ if (j == i) break;
+ }
+ }
+
return 0;
}
@@ -523,5 +538,5 @@ void Fl_Group::draw_outside_label(const Fl_Widget& w) const {
}
//
-// End of "$Id: Fl_Group.cxx,v 1.8.2.8.2.2 2001/08/02 15:31:59 easysw Exp $".
+// End of "$Id: Fl_Group.cxx,v 1.8.2.8.2.3 2001/08/02 21:11:43 easysw Exp $".
//
diff --git a/src/Fl_HelpView.cxx b/src/Fl_HelpView.cxx
index d5a599157..15579c41b 100644
--- a/src/Fl_HelpView.cxx
+++ b/src/Fl_HelpView.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_HelpView.cxx,v 1.1.2.2 2001/08/02 20:18:54 easysw Exp $"
+// "$Id: Fl_HelpView.cxx,v 1.1.2.3 2001/08/02 21:11:43 easysw Exp $"
//
// Fl_HelpView widget routines.
//
@@ -2197,15 +2197,21 @@ Fl_HelpView::handle(int event) // I - Event to handle
switch (event)
{
- case FL_MOVE :
case FL_PUSH :
+ case FL_MOVE :
xx = Fl::event_x() - x();
yy = Fl::event_y() - y() + topline_;
if (!scrollbar_.visible() || xx < (w() - 20))
break;
case FL_MOUSEWHEEL :
- topline(topline() + Fl::e_dy * textsize_ * 3);
+ i = topline() + Fl::e_dy * textsize_ * 3;
+ if (i < 0)
+ i = 0;
+ else if (i > (size_ - h()))
+ i = size_ - h();
+
+ topline(i);
return (1);
default :
@@ -3126,5 +3132,5 @@ scrollbar_callback(Fl_Widget *s, void *)
//
-// End of "$Id: Fl_HelpView.cxx,v 1.1.2.2 2001/08/02 20:18:54 easysw Exp $".
+// End of "$Id: Fl_HelpView.cxx,v 1.1.2.3 2001/08/02 21:11:43 easysw Exp $".
//
diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx
index 63441ef4c..f97f8575e 100644
--- a/src/Fl_x.cxx
+++ b/src/Fl_x.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_x.cxx,v 1.24.2.24.2.1 2001/08/02 20:09:25 easysw Exp $"
+// "$Id: Fl_x.cxx,v 1.24.2.24.2.2 2001/08/02 21:11:43 easysw Exp $"
//
// X specific code for the Fast Light Tool Kit (FLTK).
//
@@ -449,11 +449,11 @@ int fl_handle(const XEvent& xevent)
case ButtonPress:
Fl::e_keysym = FL_Button + xevent.xbutton.button;
set_event_xy();
- if (xevent.xbutton.button == 4) {
- Fl::e_dy = +1;
+ if (xevent.xbutton.button == Button4) {
+ Fl::e_dy = -1; // Up
event = FL_MOUSEWHEEL;
- } else if (xevent.xbutton.button == 5) {
- Fl::e_dy = -1;
+ } else if (xevent.xbutton.button == Button5) {
+ Fl::e_dy = +1; // Down
event = FL_MOUSEWHEEL;
} else {
Fl::e_state |= (FL_BUTTON1 << (xevent.xbutton.button-1));
@@ -927,5 +927,5 @@ void Fl_Window::make_current() {
#endif
//
-// End of "$Id: Fl_x.cxx,v 1.24.2.24.2.1 2001/08/02 20:09:25 easysw Exp $".
+// End of "$Id: Fl_x.cxx,v 1.24.2.24.2.2 2001/08/02 21:11:43 easysw Exp $".
//