the GUI_EVENT_NEED_UI_UPDATE event was not canceled till
after the call to scroll_stop this resulted in the scrolled line
being re-added after the function was done causing a crash
thanks spork, amachronic
Change-Id: I2e484a2b877f6da63171eb997f62a21e95ca9bfc
This fixes a bug reported on IRC:
1. Set 'bookmark on stop' to 'ask'
2. Play a track from the file browser
3. Stop playback, yes/no screen briefly flashes then disappears.
The screen still handles input correctly but the prompt will not
be displayed on the LCD. Long story short, get_action() can cause
the skin engine to do a full redraw which cleared the screen and
erased the prompt.
There is a special event, GUI_EVENT_NEED_UI_UPDATE, which the list
code uses to avoid precisely this problem.
Hooking up a handler for this event and redrawing the yes/no prompt
fixes the bug.
Change-Id: If3c26655540c13b488b3a11bd46e1d60d4111469
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
Allows the ACTION_YESNO_ACCEPT action to be set
to a button release by ignoring certain system events.
Moving USB init in main.c to the last thing to prevent
getting stuck in the USB prompt, if enabled.
Also changing ACTION_YESNO_ACCEPT to button release on erosq
Change-Id: I5e7498521a13cb4e840223dd0b9c8633e99093bc
I'm currently running up against the limitations of the lcd_draw functions
I want these functions to be able to be used on any size buffer not
just buffers with a stride matching the underlying device
[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr
while remote lcds may compile (and work in the sim) its not been tested on targets
[FIXED] backdrops need work to be screen agnostic
[FIXED] screen statusbar is not being combined into the main viewport correctly yet
[FIXED] screen elements are displayed incorrectly after switch to void*
[FIXED] core didn't restore proper viewport on splash etc.
[NEEDS TESTING] remote lcd garbled data
[FIXED] osd lib garbled screen on bmp_part
[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport
[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer
[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear
scrolling viewports no longer trigger wps refresh
also fixed a bug where guisyncyesno was displaying and then disappearing
[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_)
LCD_STRIDE(w, h) same as STRIDE_MAIN
LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H
LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H
LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH)
test_viewports.c has an example of usage
[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags
Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
Note: I left behind lcd_bitmap in features.txt, because removing it
would require considerable work in the manual and the translations.
Change-Id: Ia8ca7761f610d9332a0d22a7d189775fb15ec88a
HAVE_LCD_BITMAP is now redundant.
lcd_bitmap is always-on in features.txt so manual and lang strings
don't have to change
Change-Id: I08eeb20de48099ffc2dc23782711af368c2ec794
Keeping the touchscreen pressed during a screen transition can lead
to accidental actions. action_wait_for_release() currently doesn't work
properly for touchscreen, so it's better to not transition before release.
Change-Id: I37bd67945b05fff1b4a5452313f6415a247e3af9
with no button pressed.
If e.g. two yesno screens directly follow each other the button release of the
first one was incorrectly accepted in the second one. The fix exposed another
problem in action.c if action_wait_for_release() is called when no button is
actually pressed. The next press was silently eaten.
This time re-introducing FS#12723 is avoided by leaving the offending hunk
out in yesno.c.
Change-Id: Icfe57375067f51f5c8177f3585cd47ceec9dcf0d
If two yesno screens directly follow each other the button release of the
first one was incorrectly accepted in the second one. The fix exposed another
problem in action.c if action_wait_for_release() is called when no button is
actually pressed. The next press was silently eaten.
Change-Id: Iaa5f246f7ea1fd775606620a989cdaec74a9305e
Seems there are more of this scrolling problems around. In this case it's a rather old bug actually.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22633 a1c6a512-1295-4272-9138-f99709370657
This also fixes FS#9761.
Also set the lcd font back to the ui font from the debug screens which use sysfont
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19681 a1c6a512-1295-4272-9138-f99709370657
viewport_Set_defaults() will setup the given viewport with the correct "full screen" dimensions (so start at 0,0 if statusbars are disabled or 0,8 if they are enabled.)
All screens should keep the statusbar enabled, but if you really want to ignore the user setting you can disbaled it with viewportmanager_set_statusbar(false).
This commit also includes some menu/list viewport cleanups from kugel in FS#9603
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19622 a1c6a512-1295-4272-9138-f99709370657
commit a band-aid fix for FS#9140 which is fine untill someone decides to not use the whole screen for it...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17916 a1c6a512-1295-4272-9138-f99709370657
remove the calls to stop_scroll(), clear_viewport() does that
nothing should be using screens[].nb_lines anymore... change the list code to be a good example. (playlist_viewer is the last thing using it which needs fixing)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17456 a1c6a512-1295-4272-9138-f99709370657
also change the order the yes/no screen clears the viewport.. stop_scroll should be called before clear or you might get artifacts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17455 a1c6a512-1295-4272-9138-f99709370657
Make it so gui_syncyesno_run() does not modify the text_messages passed
as argument, simplify the code and even reduce size a bit.
The key is to support voicing at the level of the text_message itself.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15505 a1c6a512-1295-4272-9138-f99709370657
1) Introduces apps/features.txt that controls which strings are included
for each target based on defines.
2) .lng and .voice files are now target specific and the format versions
of both these file types have been bumped, which means that new voice
files are needed.
3) Use the 'features' mechanism to exclude strings for targets that
didn't use them.
4) Delete unused and deprecated and duplicated strings, sort strings in
english.lang
Some string IDs were changed so translations will be slightly worse than
before.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14198 a1c6a512-1295-4272-9138-f99709370657
Fixes problems with targets where the ACTION_STD_CANCEL event is a combo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13956 a1c6a512-1295-4272-9138-f99709370657
* stop yes/no screen eating the first press sometimes
* add enter id3 button from wps in irivier
* update keymap-h10 from Barry Wardell
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10614 a1c6a512-1295-4272-9138-f99709370657