Author: greg.ercolano
Date: 2012-04-12 19:51:15 -0700 (Thu, 12 Apr 2012)
New Revision: 9340
Log:
ABI modifications to Fl_Tree: deprecate mouse selection hotfix with proper
solution.
Modified:
branches/branch-1.3/FL/Fl_Tree.H
branches/branch-1.3/src/Fl_Tree.cxx
Modified: branches/branch-1.3/FL/Fl_Tree.H
===================================================================
--- branches/branch-1.3/FL/Fl_Tree.H 2012-04-10 21:24:02 UTC (rev 9339)
+++ branches/branch-1.3/FL/Fl_Tree.H 2012-04-13 02:51:15 UTC (rev 9340)
@@ -199,6 +199,13 @@
Fl_Tree_Prefs _prefs; // all the tree's settings
int _scrollbar_size; // size of scrollbar trough
+#if FLTK_ABI_VERSION >= 10302
+ // NEW:
+ Fl_Tree_Item *_lastselect;
+#else
+ // OLD: static data inside handle() method
+#endif
+
void fix_scrollbar_order();
protected:
Modified: branches/branch-1.3/src/Fl_Tree.cxx
===================================================================
--- branches/branch-1.3/src/Fl_Tree.cxx 2012-04-10 21:24:02 UTC (rev 9339)
+++ branches/branch-1.3/src/Fl_Tree.cxx 2012-04-13 02:51:15 UTC (rev 9340)
@@ -98,6 +98,14 @@
_callback_item = 0;
_callback_reason = FL_TREE_REASON_NONE;
_scrollbar_size = 0; // 0: uses
Fl::scrollbar_size()
+
+#if FLTK_ABI_VERSION >= 10302
+ // NEW
+ _lastselect = 0;
+#else
+ // OLD: data initialized static inside handle()
+#endif
+
box(FL_DOWN_BOX);
color(FL_BACKGROUND2_COLOR, FL_SELECTION_COLOR);
when(FL_WHEN_CHANGED);
@@ -240,7 +248,12 @@
// Handle events the child FLTK widgets didn't need
- static Fl_Tree_Item *lastselect = 0;
+#if FLTK_ABI_VERSION >= 10302
+ // NEW: data inside Fl_Tree
+#else
+ // OLD:
+ static Fl_Tree_Item *_lastselect = 0;
+#endif
// fprintf(stderr, "ERCODEBUG: Fl_Tree::handle(): Event was %s (%d)\n",
fl_eventnames[e], e); // DEBUGGING
if ( ! _root ) return(ret);
switch ( e ) {
@@ -248,7 +261,7 @@
if (Fl::visible_focus() && handle(FL_FOCUS)) {
Fl::focus(this);
}
- lastselect = 0;
+ _lastselect = 0;
Fl_Tree_Item *o = _root->find_clicked(_prefs);
if ( ! o ) break;
set_item_focus(o); // becomes new focus
widget
@@ -271,7 +284,7 @@
select(o); // add to
selection
} else if ( Fl::event_state() & FL_CTRL ) { // CTRL+PUSH?
select_toggle(o, when()); // toggle
selection state
- lastselect = o; // save toggled
item (prevent oscillation)
+ _lastselect = o; // save toggled
item (prevent oscillation)
} else {
select_only(o, when());
}
@@ -312,9 +325,9 @@
break;
case FL_TREE_SELECT_MULTI:
if ( Fl::event_state() & FL_CTRL && // CTRL-DRAG: toggle?
- lastselect != o ) { // not already toggled from
last microdrag?
+ _lastselect != o ) { // not already toggled from
last microdrag?
select_toggle(o, when()); // toggle selection
- lastselect = o; // save we toggled it (prevents
oscillation)
+ _lastselect = o; // save we toggled it (prevents
oscillation)
} else {
select(o); // select this
}
_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit