DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

Link: http://www.fltk.org/str.php?L1872
Version: 1.1-current


I have an Fl_Scroll widget embedded in a custom widget. When I push one of
the sliders of one of the scrollbars of the Fl_Scroll then the FL_PUSH is
not handled by the Fl_Slider if the slider has 'full size'. Hmmmh, hard to
describe, better you look at the code to see what I mean:

int Fl_Slider::handle(int event, int X, int Y, int W, int H) {
  switch (event) {
  case FL_PUSH:
...
      S = int(slider_size_*ww+.5); if (S >= ww) return 0;
...
  }
}

Here 0 is returned if the slider size is greater or equal to the
width/height of the slider. This behaviour is not consistent with the
scrollbar knobs which always return 1 when they get pushed. Imho the
slider should behave identical. As my custom widget handles Fl_RELEASE
events too it is irritating to see the custom widget action triggered when
I push the slider of the Fl_Scroll.

Looking through the code I think it is save to remove
  if (S >= ww) return 0;
so that the my code now looks like this:

int Fl_Slider::handle(int event, int X, int Y, int W, int H) {
  switch (event) {
  case FL_PUSH:
...
      S = int(slider_size_*ww+.5);
...
  }
}


Link: http://www.fltk.org/str.php?L1872
Version: 1.1-current

_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs

Reply via email to