forked from len0rd/rockbox
Lua -- Fix device hang when scroll function active on clear_screen
I previously noticed that manually clearing the framebuffer while scroll function was active caused lua to crash I could reproduce in sim and on device but I thought using the plugin supplied rb->lcd_clear_screen was immune to this issue Unfortunately some devices exhibit this behavior with the plugin function as well This patch adds rb->lcd_scroll_stop() before lcd_clear_screen at lua start-up and to the supplied include file lcd.lua Change-Id: I9800145e5c834ea27df5db5f1bca50b0d40faa49
This commit is contained in:
parent
dcd71e66bd
commit
400603abdf
2 changed files with 2 additions and 1 deletions
|
@ -80,10 +80,10 @@ local _lcd = {} do
|
||||||
|
|
||||||
-- clears lcd, optional.. ([color, x1, y1, x2, y2, clip])
|
-- clears lcd, optional.. ([color, x1, y1, x2, y2, clip])
|
||||||
local function clear(t, clr, ...)
|
local function clear(t, clr, ...)
|
||||||
|
rb.lcd_scroll_stop() --rb really doesn't like bg change while scroll
|
||||||
if clr == _NIL and ... == _NIL then
|
if clr == _NIL and ... == _NIL then
|
||||||
rb.lcd_clear_display()
|
rb.lcd_clear_display()
|
||||||
else
|
else
|
||||||
rb.lcd_scroll_stop() --rb really doesn't like bg change while scroll
|
|
||||||
_LCD:clear(clr, ...)
|
_LCD:clear(clr, ...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -160,6 +160,7 @@ enum plugin_status plugin_start(const void* parameter)
|
||||||
rocklua_openlibs(L);
|
rocklua_openlibs(L);
|
||||||
status = luaL_loadfile(L, filename);
|
status = luaL_loadfile(L, filename);
|
||||||
if (!status) {
|
if (!status) {
|
||||||
|
rb->lcd_scroll_stop(); /* rb doesn't like bg change while scroll */
|
||||||
rb->lcd_clear_display();
|
rb->lcd_clear_display();
|
||||||
status = docall(L);
|
status = docall(L);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue