PDA

View Full Version : [FIXED] [4.1.1a] Ext.slider.Multi setMinValue and setMaxValue don't fire change event



skrooks
16 Jan 2013, 8:57 AM
REQUIRED INFORMATION


Ext version tested:

Ext 4.1.1a
Browser versions tested against:

Firefox 18.0 (Windows)
DOCTYPE tested against:

____
Description:

Suppose you have a slider with a defined minValue, maxValue and one or more values. If a call to setMinValue or setMaxValue causes one of slider's values to snap into the new valid range, the change event does not get fired.
Steps to reproduce the problem:

Create a multislider with defined minValue and maxValue.
Set 2 values, one at the min and one at the max.
Add an event handler for the change event.
Increase the minValue and decrease the maxValue so that the values are adjusted to fit within the valid range.
The result that was expected:

The change event handler should be called
The result that occurs instead:

The change event handler does not get called
Test Case:



Ext.create('Ext.window.Window', {
layout : 'vbox',
autoShow : true,
items : [
{
xtype : 'multislider',
minValue : 0,
maxValue : 100,
width : 100,
values : [0, 100],
listeners : {
change : function () {
alert("Slider value changed!")
}
}
},
{
xtype : 'button',
text : 'Shrink',
listeners : {
click : function (button) {
var slider = button.up('window').down('multislider');
slider.setMinValue(slider.minValue + 1);
slider.setMaxValue(slider.maxValue - 1);
}
}
}
]
});
Clicking the "Shrink" button should pop up a message saying "Slider value changed!".


HELPFUL INFORMATION


Debugging already done:

In Multi.js (Ext.slider.Multi), the setMinValue and setMaxValue functions update the thumb values directly but don't bother firing any events. Looking at the code for setValue, I'm wondering if setMinValue and setMaxValue should also make a call to checkDirty.
Possible fix:

not provided
Additional CSS used:

only default ext-all.css
Operating System:

Win7 Pro

mitchellsimoens
16 Jan 2013, 12:15 PM
Thanks for the report! I have opened a bug in our bug tracker.