The new NodeBox forum is live! Everything from support.nodebox.net moved here: sign in with the same email to pick up your old posts. Something not working? Write to forum-support@nodebox.net.

NodeBox 3From the old forum

Scrolling Speed Under Mac Sierra

19 replies Last reply

  1. I upgraded to Mac Sierra (OS 10.12) last night, and also updated my Java to 1.8.0_91-b14. So far NodeBox seems to be working just fine, except for one subtle problem...

    I use a MacBook Air at home and use the trackpad for all movement. After upgrading to Sierra, I found that zooming in and out of a rendering seemed harder to control. The tiniest two-finger drag would collapse my drawing to a pixel and then suddenly zoom back in to 10 times screen size. It became very hard to position the drawing precisely. Zooming in and out on the network pane didn't seem quite as bad, but was also somewhat touchy.

    I tried adjusting the trackpad scrolling speed (which you can do with the accessibility panel). This affected my two-finger scrolls on web pages but not in NodeBox. I also tried attaching a USB mouse with a scroll wheel. Adjusting scrolling speed affected both web pages and NodeBox when using the mouse, but did not affect two-finger drags on the trackpad.

    I found that with practice I could eventually zoom to my desired magnification in NodeBox, but only if I do so very slowly and carefully.

    Can anyone else verify this problem? I'm not sure whether it's Sierra or possibly also something to do with my particular MacBook.

    But I would think that in any case adjusting scrolling speed in the accessibility panel should affect NodeBox. Is the NodeBox 3 Mac app using system APIs to define trackpad scrolling speeds or just using some hard-coded value that may need adjustment under different operating systems?

    Not a showstopper, but it has made my daily NodeBoxing a bit more frustrating.

    Thanks,

    John

    Copy link
  2. NodeBox team

    According to the Apple support thread and this Stackoverflow post, scrolling is a JDK issue that affects other Java applications as well.

    Here's the issue for IntelliJ:

    https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FIDEA-158500

    Apparently they've made their own version of the JDK (!) which a custom fix for the scrolling. That solution may work for them, but I don't feel like making a custom build of the SDK, and would rather wait a bit until Oracle solves the issue upstream.

    Apparently they've fixed in JDK 9 and are considering backporting it to JDK 8: https://bugs.openjdk.java.net/browse/JDK-8166591

    Copy link
  3. Hi Frederik,

    I tested the rc1 version and it seems to work fine for me. I could see no difference between the current version and this new build. The scrolling issue seems unchanged and I am unaware of any other Sierra-related issues.

    I have learned to live with the scrolling issue; it's annoying but not fatal. And I agree that it probably makes sense for you to wait until Oracle fixes the issue upstream.

    (The Java Platform team at Oracle working on this are mostly Russians based in St. Petersburg. I also work at Oracle (in California), but it's a big company so I have no direct connection with them. I think they are already sufficiently motivated to fix this, but if you have a particular question or suggestion, I could try passing it along.)

    John

    Copy link
  4. NodeBox team

    I've just upgraded to Sierra and I didn't experience any issues with scrolling or double-clicking. I'm using a Retina MBP, both with the trackpad and an external mouse.

    Copy link
  5. I've attached a recording of how sensitive scrolling is. The attached recording shows a default 100x100 square and me trying to scroll in and out with the smallest movements (barely a few millimeters) and the zooming appearing to be overly sensitive.

    The problems with double-clicking seem to be very sporadic. Sometimes it works fine for periods of time and then after a bit, double-clicks sometimes stop registering altogether.

    These behaviors happen to me with both an external magic mouse and the trackpad. I'm using an early 2015 MacBook Air and my mouse is a first generation magic mouse. All of this behaved normally prior to upgrading to Sierra.

    Copy link
  6. NodeBox team

    Hi Nicholas,

    Thanks for investing. Maybe it's related to retina vs non-retina? I'll test on a colleague's MBA and see if there's any difference.

    I assume that the double-clicking is also a precision issue: I'm speculating they upped the precision, meaning you have to stand on the exact same pixel when double-clicking (whereas before there was a bit more slack). That would explain why the issue only happens sporadically.

    Copy link
  7. This may or may not be related to all the clicking issues but I frequently get the error message below when trying to right-click to add a node. NodeBox thinks I'm trying to drag a selection rectangle when right-clicking and shows the error. Can't continue using NodeBox until I quit and restart it.

    I'm using a Magic Mouse (first one, not the second) and I read somewhere that even that has issues with macOS Sierra but I'm not sure if that's true.

    java.lang.NullPointerException
    at nodebox.client.NetworkView$MouseHandler.mouseDragged(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:320)
    at java.awt.Component.processMouseMotionEvent(Component.java:6581)
    at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3342)
    at java.awt.Component.processEvent(Component.java:6302)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    Copy link
  8. More information: scroll speed seems great using a trackpad on a MacBook Air mid-2015 and I haven't experienced any of the double-clicking or right-clicking problems using the trackpad.

    Copy link
  9. NodeBox team

    Okay the mouseDrag errors are definitely silly, will investigate.

    Copy link
  10. Just checking in. Any chance of an update soon? This error almost renders NodeBox unusable for more than a few minutes at a time.

    Copy link
  11. NodeBox team

    Hi Nicholas,

    Thanks for reminding me. I will schedule some time to look at this after the New Year.

    Best wishes!

    Copy link
  12. NodeBox team

    Hi Nicholas,

    I looked at the specific function but I couldn't reproduce it at all. Unfortunately, your stack trace does not have the line number (I think the NodeBox build strips it out) so it's hard to see what might trigger the error.

    I might try to compile a version that has debug information, that would give me the line numbers and allow me to investigate further.

    Copy link
  13. NodeBox team

    Hi,

    I've made a special test version. The actual code is unchanged: I just added some compile flags that should tell me more information when you see a stack trace.

    https://secure.nodebox.net/downloads/NodeBox-3.0.46-test1.zip

    Nicholas, can you try this, get the error to appear, and then tell copy/paste the stack trace? Thanks in advance!

    Copy link
  14. I'll definitely try the special test version and send the info the next time it happens. It shouldn't be long since I'm working on a few projects with NodeBox at the moment.

    Thanks for digging into this.

    Copy link
  15. I've been using the special test version since you provided it and so far, I haven't seen the error pop up again. Even though you said the actual code is unchanged, something seems to be keeping the error at bay. I'll still be on the look out for it and post it when it happens.

    Copy link
  16. NodeBox team

    Hi Nicholas,

    Thanks for trying this out! I'm happy for you that you don't get any errors — but as a programmer I would much rather it'd pop up the error message so I know what's going on :-)

    You're welcome to keep using this version; I'll make an official release soon (which includes the debug flags, so I get better stack traces for future bug reports).

    Copy link
  17. Finally got the error to appear again. Here's the error:

    java.lang.NullPointerException
    at nodebox.client.NetworkView$MouseHandler.mouseDragged(NetworkView.java:994)
    at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:320)
    at java.awt.Component.processMouseMotionEvent(Component.java:6581)
    at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3342)
    at java.awt.Component.processEvent(Component.java:6302)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    Copy link
  18. NodeBox team

    Thanks! I will investigate.

    Copy link

Know something that helps?

Sign in with your email address to reply. No password needed.

Sign in to reply