As part of the GUI rewrite effort, the scrollbar logic needs to be reconsidered. This page documents the aspects of the development and testing of scrollbar logic. There are currently 4 different algorithms to compare: Pd, Pd-extended, Pd-GUI-Rewrite, and Ico's (in order of age).
Tests
prevents patch scrolling when no scrollbars
-
Pd: yes
-
Pd-extended: no, has odd movement when no scrollbars and using mouse wheel
-
Pd-GUI-Rewrite: yes
-
Ico: no, has odd movement when no scrollbars and using mouse wheel
select objects and move with Shift-Arrowkey
-
Pd: does not show scrollbars when needed
-
Pd-extended: shows/hides scrollbars correctly
-
Pd-GUI-Rewrite: does not show scrollbars when needed
-
Ico: does not show scrollbars when needed, unless you scroll with the keyboard for over a second or so, then the scrollbars show up.
select all and mouse drag components
-
Pd: updates once mouse is released
-
Pd-extended: updates scrollbars immediately and live
-
Pd-GUI-Rewrite: updates once mouse is released
-
Ico: prevents patch contents from leaving the frame of the window, except comments
resize window
-
Pd: updates scrollbars on mouse release
-
Pd-extended: updates scrollbars live but has glitches
-
Pd-GUI-Rewrite: updates scrollbars live
-
Ico:
place object onto blank canvas, then select and drag off-canvas to the left
-
Pd: creates scrollbar on release, but its in the wrong position
-
Pd-extended: updates scrollbar live
-
Pd-GUI-Rewrite: on mouse release, recenters view so there are no scrollbars (when x value is negative)
-
Ico: updates scrollbar live, except for comments
place object onto blank canvas, then select and drag off-canvas to the right
-
Pd: creates scrollbar on release, but its in the wrong position
-
Pd-extended: updates scrollbar live
-
Pd-GUI-Rewrite: updates scrollbar on mouse release
-
Ico:
place object onto blank canvas, then select and drag off-canvas to the top
-
Pd: creates scrollbar on release, but its in the wrong position
-
Pd-extended: updates scrollbar live
-
Pd-GUI-Rewrite: on mouse release, recenters view so there are no scrollbars (when y value is negative)
-
Ico:
place object onto blank canvas, then select and drag off-canvas to the bottom
-
Pd: creates scrollbar on release, but its in the wrong position
-
Pd-extended: updates scrollbar live
-
Pd-GUI-Rewrite: updates scrollbar on mouse release
-
Ico: