#8 Make Autoscroll rectangle thickness a preference

Hari Dara

I always felt that the autoscroll is too sensitive when in fullscreen mode. Going through the source, I found that it was hardcoded to 10, so I attempted to make it a preference. Personally, I am finding it much easier to work with fullscreen mode, when the thickness is set to 1 and scrollbars are hidden.

The attached patch is just a POC, as I have zero experience programming on Mac OS X. All the code that I added was simply copy paste of existing code.

Please let me know if you need the source in an alternative format.


  • dustinac

    Thanks for breaking out Xcode and getting your hands dirty fixing the problem. The patch seems technically correct, but I just looked at the text so I can't judge the nib portions of the patch. However, there are two concerns. First, it would be better to have the control be a slider rather than a text field. People will just want to make the target area smaller or larger, and not necessarily want to mess with pixel numbers.

    Second, does this even need to be a preference or should the default just be changed? In my opinion, adding a UI interface or new preference option carries the highest burden of any type of feature. I want Chicken to work as well as possible "out of the box" so if the thickness is too high, then the default needs to be lowered. But then if the smaller thickness is better, why have a preference? You were just trying to be unobtrusive by making it a preference, but I'd rather have the right value and no choice. I'm going to play around with the thickness for a while and see whether it makes sense to me to have the thickness decreased for everyone. So, I'm moving this to the feature request tracker.

  • Hari Dara
    Hari Dara

    First of all, thank you very much for looking into the patch. You mean to say it should be "hardcoded" not "defaulted" right? There is no reason to call it a default if it can't be changed, so just trying to clarify.

    If you decide to hardcode it to 1, I will be perfectly fine, but that might not suit others. At the same time, if you hardcode a different value, it would definitely not suit me, which means, a setting might be better than hardcoding, but perhaps with a better default. Per my working style, anything except 1 would be too sensitive. I really don't see ANY advantage of starting to scroll the screen a few pixels in advance. If I am really looking to trigger autoscroll, I will explicitly move the mouse to the edge of the screen. In other words, having to move the mouse all the way to the edge is no way more harder than having it triggered it sooner. In fact, I would never be too precise to position the mouse, if all I wanted to do is trigger the autoscroll. On the other hand, if I am trying to click on a UI element on the border, an unwanted triggering of autoscroll is bound to distract me and get in the way, and even make it harder.

    In case you decide that a setting is still a good idea, I completely agree that a slider is a much better choice. I think I stopped short of trying that, perhaps I wasn't sure how to bind it.

  • dustinac

    What I meant was that for me the most important question to get right is how Chicken behaves the first time it is launched without any special configuration. This is what I meant by the default. Once this is decided, then comes the secondary question of whether it should be possible to change this default. I say default because I don't want to presuppose the answer to the second question when I'm addressing the first.

  • Hari Dara
    Hari Dara

    OK, makes sense. I will let you try with "1" as the value and see for yourself if it serves as a good default. If we don't need this to be a setting, none of my changes would be required anyway, as only a constant needs to be changed. I will wait for your response.