Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
JScrollbar/JSlider fix for UI/class notification infinite loop
  • Loading branch information
hansonr authored and hansonr committed Nov 19, 2018
commit 940d5be922a066ee29321f56d0f024a21c41818c
Binary file modified sources/net.sf.j2s.core/dist/swingjs/SwingJS-site.zip
Binary file not shown.
2 changes: 1 addition & 1 deletion sources/net.sf.j2s.core/dist/swingjs/timestamp
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20181118005502
20181119153133
Binary file modified sources/net.sf.j2s.core/dist/swingjs/ver/3.2.4/SwingJS-site.zip
Binary file not shown.
2 changes: 1 addition & 1 deletion sources/net.sf.j2s.core/dist/swingjs/ver/3.2.4/timestamp
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20181118005502
20181119153133
Binary file modified sources/net.sf.j2s.java.core/dist/SwingJS-site.zip
Binary file not shown.
2 changes: 1 addition & 1 deletion sources/net.sf.j2s.java.core/src/javax/swing/Timer.java
Original file line number Diff line number Diff line change
Expand Up @@ -555,7 +555,7 @@ private ArrayList<Object> timerQueue() {
public void restart() {
// getLock().lock();
// try {
// stop();
stop();
start();
// } finally {
// getLock().unlock();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,8 +250,6 @@
return false;
}

this.elementOffset = this.element.offset();

var position = this._getPosition(event);

index = event.target.index;
Expand Down Expand Up @@ -620,12 +618,13 @@
},

_getPixelMouse : function(position, offsetHandle) {
var offset = this.element.offset;
var p = (this.orientation === "horizontal" ?
position.x
- this.elementOffset.left
- offset.left
- (this._clickOffset ? this._clickOffset.left : 0)
: position.y
- this.elementOffset.top
- offset.top
- (this._clickOffset ? this._clickOffset.top : 0));
return p - this.handleSize / 2;
},
Expand Down
14 changes: 10 additions & 4 deletions sources/net.sf.j2s.java.core/src/swingjs/plaf/JSScrollBarUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public class JSScrollBarUI extends JSSliderUI {

private boolean isInvisible;

private boolean isAdjusting;

public JSScrollBarUI() {
super();
isScrollBar = true;
Expand All @@ -38,10 +40,14 @@ public void propertyChange(PropertyChangeEvent e) {

@Override
public void stateChanged(ChangeEvent e) {
super.stateChanged(e);
setScrollBarExtentAndCSS();
if (debugging)
System.out.println(id + " stateChange " + dumpEvent(e));
if (!isAdjusting) {
isAdjusting = true;
super.stateChanged(e);
setScrollBarExtentAndCSS();
isAdjusting = false;
if (debugging)
System.out.println(id + " stateChange " + dumpEvent(e));
}
}


Expand Down
18 changes: 14 additions & 4 deletions sources/net.sf.j2s.java.core/src/swingjs/plaf/JSScrollPaneUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -1161,6 +1161,8 @@ class Handler implements ChangeListener, PropertyChangeListener {// ,
// }
// }

private boolean isAdjusting;

//
// ChangeListener: This is added to the vieport, and hsb/vsb models.
//
Expand Down Expand Up @@ -1189,8 +1191,12 @@ private void vsbStateChanged(JViewport viewport, ChangeEvent e) {
BoundedRangeModel model = (BoundedRangeModel) (e.getSource());
Point p = viewport.getViewPosition();
p.y = model.getValue();
viewport.setViewPosition(p);
scrollpane.getVerticalScrollBar().setVisibleAmount(viewport.getHeight());
if (!isAdjusting) {
isAdjusting = true;
viewport.setViewPosition(p);
scrollpane.getVerticalScrollBar().setVisibleAmount(viewport.getHeight());
isAdjusting = false;
}
}

private void hsbStateChanged(JViewport viewport, ChangeEvent e) {
Expand Down Expand Up @@ -1225,8 +1231,12 @@ private void hsbStateChanged(JViewport viewport, ChangeEvent e) {
}
}
}
scrollpane.getHorizontalScrollBar().setVisibleAmount(viewport.getWidth());
viewport.setViewPosition(p);
if (!isAdjusting) {
isAdjusting = true;
viewport.setViewPosition(p);
scrollpane.getHorizontalScrollBar().setVisibleAmount(viewport.getWidth());
isAdjusting = false;
}
}

private void viewportStateChanged(ChangeEvent e) {
Expand Down