|
|
@ -34,6 +34,7 @@ import javax.swing.plaf.UIResource; |
|
|
|
import javax.swing.plaf.basic.BasicScrollBarUI; |
|
|
|
import javax.swing.plaf.basic.BasicScrollBarUI; |
|
|
|
import java.awt.*; |
|
|
|
import java.awt.*; |
|
|
|
import java.awt.event.*; |
|
|
|
import java.awt.event.*; |
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* @author Konstantin Bulenkov |
|
|
|
* @author Konstantin Bulenkov |
|
|
@ -115,8 +116,8 @@ public class DarkScrollBarUI extends BasicScrollBarUI { |
|
|
|
|
|
|
|
|
|
|
|
Point p = MouseInfo.getPointerInfo().getLocation(); |
|
|
|
Point p = MouseInfo.getPointerInfo().getLocation(); |
|
|
|
SwingUtilities.convertPointFromScreen(p, scrollbar); |
|
|
|
SwingUtilities.convertPointFromScreen(p, scrollbar); |
|
|
|
if (!getThumbBounds().contains(p)) { |
|
|
|
if (!getThumbBounds().contains(p) && !e.getValueIsAdjusting()) { |
|
|
|
if (!thumbFadeinAnimator.isRunning() && e.getValueIsAdjusting()) { |
|
|
|
if (!thumbFadeinAnimator.isRunning()) { |
|
|
|
mouseOverThumb = true; |
|
|
|
mouseOverThumb = true; |
|
|
|
resetThumbAnimator(); |
|
|
|
resetThumbAnimator(); |
|
|
|
} |
|
|
|
} |
|
|
@ -600,7 +601,7 @@ public class DarkScrollBarUI extends BasicScrollBarUI { |
|
|
|
} |
|
|
|
} |
|
|
|
Point p = MouseInfo.getPointerInfo().getLocation(); |
|
|
|
Point p = MouseInfo.getPointerInfo().getLocation(); |
|
|
|
SwingUtilities.convertPointFromScreen(p, scrollbar); |
|
|
|
SwingUtilities.convertPointFromScreen(p, scrollbar); |
|
|
|
if (!getThumbBounds().contains(p)) { |
|
|
|
if (!getThumbBounds().contains(p) && !scrollbar.getValueIsAdjusting()) { |
|
|
|
mouseOverThumb = false; |
|
|
|
mouseOverThumb = false; |
|
|
|
resetThumbAnimator(); |
|
|
|
resetThumbAnimator(); |
|
|
|
} |
|
|
|
} |
|
|
@ -609,9 +610,14 @@ public class DarkScrollBarUI extends BasicScrollBarUI { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void resetThumbAnimator() { |
|
|
|
private void resetThumbAnimator() { |
|
|
|
|
|
|
|
System.out.println(Arrays.toString(Thread.currentThread().getStackTrace())); |
|
|
|
resetAnimators(thumbFadeinAnimator, thumbFadeoutAnimator, mouseOverThumb, thumbAlpha, MAX_THUMB_ALPHA); |
|
|
|
resetAnimators(thumbFadeinAnimator, thumbFadeoutAnimator, mouseOverThumb, thumbAlpha, MAX_THUMB_ALPHA); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void resetTrackAnimator() { |
|
|
|
|
|
|
|
resetAnimators(trackFadeinAnimator, trackFadeoutAnimator, mouseOverTrack, trackAlpha, MAX_TRACK_ALPHA); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void resetAnimators(final Animator fadeInAnimator, final Animator fadeOutAnimator, |
|
|
|
private void resetAnimators(final Animator fadeInAnimator, final Animator fadeOutAnimator, |
|
|
|
final boolean overAnimatedComponent, final float currentAlpha, final float maxAlpha) { |
|
|
|
final boolean overAnimatedComponent, final float currentAlpha, final float maxAlpha) { |
|
|
|
fadeInAnimator.reset(); |
|
|
|
fadeInAnimator.reset(); |
|
|
@ -630,10 +636,6 @@ public class DarkScrollBarUI extends BasicScrollBarUI { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void resetTrackAnimator() { |
|
|
|
|
|
|
|
resetAnimators(trackFadeinAnimator, trackFadeoutAnimator, mouseOverTrack, trackAlpha, MAX_TRACK_ALPHA); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean isOverThumb(final Point p) { |
|
|
|
private boolean isOverThumb(final Point p) { |
|
|
|
final Rectangle bounds = getThumbBounds(); |
|
|
|
final Rectangle bounds = getThumbBounds(); |
|
|
|
return bounds != null && bounds.contains(p); |
|
|
|
return bounds != null && bounds.contains(p); |
|
|
|