Author: greg.ercolano
Date: 2010-05-10 13:23:42 -0700 (Mon, 10 May 2010)
New Revision: 7599
Log:
1) Invoke callback if when(FL_WHEN_RELEASE)
2) Removed unintended fallthrough from FL_DRAG -> FL_RELEASE handler.
3) Removed redundant redraw() calls



Modified:
   branches/branch-1.3/src/Fl_Tree.cxx

Modified: branches/branch-1.3/src/Fl_Tree.cxx
===================================================================
--- branches/branch-1.3/src/Fl_Tree.cxx 2010-05-09 21:07:27 UTC (rev 7598)
+++ branches/branch-1.3/src/Fl_Tree.cxx 2010-05-10 20:23:42 UTC (rev 7599)
@@ -304,12 +304,12 @@
                   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 @@
           }
         }
       }
+      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;
     }
   }

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

Reply via email to