- Reset the offset when drag zoom interrupted by clear
- Update selection when drag selection interrupted by clear
- Fix overflow in min and max offset calculation
Change-Id: I6eea70d713d4b46e75d254b9374631623c023600
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/19605
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
IP-Clean: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Hudson CI
*/
public void clear() {
fDataModel.clear();
*/
public void clear() {
fDataModel.clear();
+ if (fDragState == DRAG_SELECTION) {
+ updateSelectionTime();
+ }
fDragState = DRAG_NONE;
fDragButton = 0;
synchronized (fDataModel) {
fDragState = DRAG_NONE;
fDragButton = 0;
synchronized (fDataModel) {
fRangeDuration = 0L;
fFullRangeStartTime = 0L;
fFullRangeEndTime = 0L;
fRangeDuration = 0L;
fFullRangeStartTime = 0L;
fFullRangeEndTime = 0L;
if (fZoom != null) {
fZoom.setFullRange(0L, 0L);
fZoom.setNewRange(0L, 0L);
if (fZoom != null) {
fZoom.setFullRange(0L, 0L);
fZoom.setNewRange(0L, 0L);
fDragState = DRAG_RANGE;
fDragButton = event.button;
fStartPosition = event.x;
fDragState = DRAG_RANGE;
fDragButton = event.button;
fStartPosition = event.x;
- fMaxOffset = (int) ((fRangeStartTime - fFullRangeStartTime) / fScaledData.fBucketDuration);
- fMinOffset = (int) ((fRangeStartTime + fRangeDuration - fFullRangeEndTime) / fScaledData.fBucketDuration);
+ long maxOffset = (fRangeStartTime - fFullRangeStartTime) / fScaledData.fBucketDuration;
+ long minOffset = (fRangeStartTime + fRangeDuration - fFullRangeEndTime) / fScaledData.fBucketDuration;
+ fMaxOffset = (int) Math.max(Integer.MIN_VALUE, Math.min(Integer.MAX_VALUE, maxOffset));
+ fMinOffset = (int) Math.max(Integer.MIN_VALUE, Math.min(Integer.MAX_VALUE, minOffset));
return;
} else if (event.button == 3) {
fDragState = DRAG_ZOOM;
return;
} else if (event.button == 3) {
fDragState = DRAG_ZOOM;