Revision: 3761
http://vexi.svn.sourceforge.net/vexi/?rev=3761&view=rev
Author: clrg
Date: 2009-11-25 01:56:26 +0000 (Wed, 25 Nov 2009)
Log Message:
-----------
Fixes for selectables, especially when adding/removing items
Modified Paths:
--------------
trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectable.t
trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectcontainer.t
trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/combo.t
Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectable.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectable.t
2009-11-22 02:28:47 UTC (rev 3760)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectable.t
2009-11-25 01:56:26 UTC (rev 3761)
@@ -235,6 +235,9 @@
if (oldg) {
// remove v from oldg
oldg.members.remove(v);
+ if (oldg.selected == v) {
+ oldg.selected = null;
+ }
}
if (newg) {
// add to group
@@ -243,7 +246,9 @@
} else {
newg.members.push(v);
}
- } else return null;
+ } else {
+ return null;
+ }
}
if (v.selected) {
// initialize as selected
Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectcontainer.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectcontainer.t
2009-11-22 02:28:47 UTC (rev 3760)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectcontainer.t
2009-11-25 01:56:26 UTC (rev 3761)
@@ -64,23 +64,21 @@
if (c) {
if (g) {
// insert into existing group
+ // NB write trap on selectable.group handles assignment
c.group = g;
- // respect selected state of c
- if (c.selected and !g.selected) {
- g.selected = c;
- }
} else {
// no group yet, create one
+ // NB read trap on selectable.group handles group creation
g = c.group;
if (g==null) {
// not a selectable
return;
}
+ t.v_listgroup = g;
// keep selected in view if a scrolling widget
if (trapee.th_scroll) {
g.selected ++= trapee.syncView;
}
- t.v_listgroup = g;
// respect selected state of c
if (c.selected) {
t.v_listgroup.selected = c;
@@ -93,7 +91,7 @@
static.childrenRemoved = function(c) {
if (c==null) {
var _c = trapee[trapname];
- if (_c) {
+ if (_c and _c.v_group) {
_c.group = null;
}
}
Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/combo.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/combo.t
2009-11-22 02:28:47 UTC (rev 3760)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/combo.t
2009-11-25 01:56:26 UTC (rev 3761)
@@ -52,7 +52,7 @@
t.v_edit.KeyPressed = v;
if (t.matchtext) {
if (t.v_edit.text == "") {
- static.unmatch(t);
+ static.unmatch(t.v_group);
} else if (!t.popped) {
t.popup = true;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn