int increment = max(1, x_slack / cols);
startslack = x_slack;
for(short col=0; col < cols; col++) {
- int diff = min(colMaxWidth[col], colWidth[col] + increment) - colWidth[col];
+ // FIXME: double check this
+ int diff = min(min(colMaxWidth[col], colWidth[col] + increment) - colWidth[col], x_slack);
x_slack -= diff;
colWidth[col] += diff;
}
case "x": if (parent==null && Surface.fromBox(this)!=null) { CHECKSET_INT(x); } else { if (test(PACKED) && parent != null) return; CHECKSET_INT(x); dirty(); MARK_RESIZE; dirty(); }
case "y": if (parent==null && Surface.fromBox(this)!=null) { CHECKSET_INT(y); } else { if (test(PACKED) && parent != null) return; CHECKSET_INT(y); dirty(); MARK_RESIZE; dirty(); }
- case "Press1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Press2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Press3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Release1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Release2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Release3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Click1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Click2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Click3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "DoubleClick1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "DoubleClick2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "DoubleClick3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "KeyPressed": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "KeyReleased": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Move": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Enter": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
- case "Leave": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.put(name, value);
+ case "Press1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Press2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Press3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Release1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Release2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Release3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Click1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Click2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Click3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "DoubleClick1": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "DoubleClick2": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "DoubleClick3": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "KeyPressed": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "KeyReleased": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Move": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Enter": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
+ case "Leave": if (!test(STOP_UPWARD_PROPAGATION) && parent != null) parent.putAndTriggerTraps(name, value);
case "_Move": propagateDownward(name, value, false);
case "_Press1": propagateDownward(name, value, false);