The scrollbar would go out of bounds if DROPDOWN_PART_LIST had uneven
padding. Also enable clip_corner feature to stop the selected item from
overflowing.
When the screen switches, the full screen needs to be refreshed for the
hardware scrolling to work. This was enforced with backgroundLabels, but
is simpler to do with a rounder function.
List.h uses `std::array` as container, but is missing the `<array>`
include. Add it to make the header self contained.
The `memory` include is unused and can be removed.
There is a large step in brightness from level zero to level one.
After experimenting with various ST7789 options, I found that
decreasing VDV to 0x10 (-0.4V) fixes this issue.
The gamma change reduced the average error in brightness, but with the
underlying issue fixed, the gamma change has been reverted.
We have a comparison like `if (( a == b ))`, which is a parenthesis too
much, which generates the following warning
```
InfiniTime/src/displayapp/screens/Twos.cpp:133:35: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
if ((grid[newRow][newCol].value == grid[oldRow][oldCol].value)) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
InfiniTime/src/displayapp/screens/Twos.cpp:133:35: note: remove extraneous parentheses around the comparison to silence this warning
if ((grid[newRow][newCol].value == grid[oldRow][oldCol].value)) {
~ ^ ~
```
Clang warns on `OnTouchEvent()` function, which is overridden, but is
missing the `override` keyword
```
In file included from InfiniTime/src/displayapp/screens/Music.cpp:18:
InfiniTime/src/displayapp/screens/Music.h:43:14: warning: 'OnTouchEvent' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
bool OnTouchEvent(TouchEvents event);
^
```
There are 3 options, but the array-size is set to 2. This leads to
memory corruption in the initialization of the SettingChimes screen when
assigning the third option object pointer.
Found in https://github.com/InfiniTimeOrg/InfiniSim/issues/11
The variable `title` is defined as `const char*`, which means, that
`strchr()` returns a `const char*` as well according to
https://www.cplusplus.com/reference/cstring/strchr/
But in the same line the return value is assigned to a non-const
`char*`, which shouldn't be allowed (error with `-pedantic`).
Because the `lv_label` creates an internal copy of the title sting, just
modify that one instead and replace newline in the copied string.