Some lists have tall items that span more than one line of text,
eg. the bookmark menu or ID3 tag menu. The touchscreen code didn't
handle these menus correctly and touching on the lower part of a
list item could select "between" two items, leading to incorrect
rendering and behavior due to callers relying on the selected item
being properly aligned to the selection size. Fix this by ensuring
the touch code only generates properly aligned selections.
Change-Id: I73945bb0947590517a005754bd447639e22812e2
Changing the touchscreen mode in the settings menu required a reboot
to fully apply because this code was trying to reapply old settings.
This is a hack. IMHO to fix it properly the behavior of touchscreen
mode needs to be changed so code that needs a specific mode doesn't
need to twiddle global state, but that's a bigger undertaking.
Change-Id: I55a46dbed721273ad78cb9df81fe60940665962b
Seems to fix the unintuitive / inaccurate behavior of this screen.
Rejigger the generic touchscreen keymap because the 3x3 buttons are
no longer used. Also map physical keys for yes/no on the Q1.
Change-Id: I2ed633896b87030fa654d47d9d02929b849495da
re: coverity
write_write_order: In long(*s++) + *s++,
s is written in *s++ and written in long(*s++)
but the order in which the side effects take place is undefined because
there is no intervening sequence point.
Change-Id: I2911c240f3e85fcfbf77297e8579e02e217c5af5
Surprise surprise: the compiler generates shorter, branch-free code
if we don't try to be clever with signed/unsigned casting tricks.
Change-Id: I93d2020b6127e7d43feee394b06a52aaeddf3b79
One of these was an unintentional fallthrough -- if you said no to
'quit without saving' it would save and quit.
Change-Id: I33828b58962a05adab65ac5f71dd0e2b1e07001b
I'm not sure this would happen but I suspect its possible to get malformed
data back from lineinfo as this is how the error system tracks code flow
and this is a hacked add-on to allow RLE (run length encoding) of
said code flow data
Change-Id: I4b914c632935f8b1a9fa960212c58e810b2db738
if you added a plugin through the core settings and then used the shortcut
immediately the entry would never get flushed to disk
Change-Id: I62e876bbf0a8fa96acba1cc2582e2563401547f1
failure to close file handles
reading memory prior to buffer on error
loop variable integer overflow on error
Change-Id: I2893c34cd041d085fd7f56a88cb4cb14131cea11
Since battery_bench is a TSR (terminate & stay resident) plugin it
cannot allocate the plugin buffer -- various parts of the Rockbox
core make use of it as temporary storage space. The buffer was used
for stack space so this generated false 'Stkov' panics when one of
those in-core users overwrote the buffer.
The default stack size of 1kb is a bit small, so use 4x the default
size to be on the safe side.
This also fixes a minor issue where trying to view OS stack usage
while battery_bench was running would cause audio dropouts, due to
scanning the possibly huge stack with IRQs disabled.
Change-Id: I2e6b76f9946db9090c1af61f7aa0a0dac0698c20
talk.c potential division by zero warrants a check
desowin pointed out multiple fd leaks
announce_status.c dumb typo
Change-Id: Iae99bd64696afdd9585952245a7a04cdc9f88ef1
Since this is a TSR plugin, it is not safe to use the plugin buffer.
Convert to using static buffers instead.
Change-Id: Ic5b297468a99d77d56f5b75e52dafabeb80d2f78