diff options
| author | Greg Ercolano <erco@seriss.com> | 2010-05-10 20:23:42 +0000 |
|---|---|---|
| committer | Greg Ercolano <erco@seriss.com> | 2010-05-10 20:23:42 +0000 |
| commit | e874b086acaaebc1521a8f2a1043fcd3d3b79ffd (patch) | |
| tree | cf32c194fdaa1997c07d39ec93a5b09fdeaa91c4 /src/Fl_Tree.cxx | |
| parent | 3ef47f712a82fb995d0811e003ad5ce5239baab7 (diff) | |
1) Invoke callback if when(FL_WHEN_RELEASE)
2) Removed unintended fallthrough from FL_DRAG -> FL_RELEASE handler.
3) Removed redundant redraw() calls
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7599 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Tree.cxx')
| -rw-r--r-- | src/Fl_Tree.cxx | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/Fl_Tree.cxx b/src/Fl_Tree.cxx index 4c3a99b14..3578778ca 100644 --- a/src/Fl_Tree.cxx +++ b/src/Fl_Tree.cxx @@ -304,12 +304,12 @@ int Fl_Tree::handle(int e) { changed = 1; // changed o->select_toggle(); // toggle selection lastselect = o; // save we toggled it (prevents oscillation) - redraw(); // make change(s) visible } } else { - changed = 1; // changed - o->select(); // select this - redraw(); // make change(s) visible + if ( ! o->is_selected() ) { + changed = 1; // changed + o->select(); // select this + } } break; } @@ -323,11 +323,17 @@ int Fl_Tree::handle(int e) { } } } + break; } case FL_RELEASE: { if ( Fl::event_button() == FL_LEFT_MOUSE ) { ret |= 1; } + if ( when() & FL_WHEN_RELEASE || + ( changed && when() & FL_WHEN_CHANGED) ) { + set_changed(); + do_callback((Fl_Widget*)this, user_data()); // item callback + } break; } } |
