forked from len0rd/rockbox
Skin engine Onda Vx747
Fixing issues that existed before framebuf rewrite Fix swap issue Change-Id: I43e03b7aaf4591c1b6f88e3ba0730e279934c0df
This commit is contained in:
parent
f9ba96cade
commit
0c99a3f9fb
2 changed files with 17 additions and 5 deletions
|
@ -29,6 +29,7 @@
|
|||
#include "settings.h"
|
||||
#include "wps.h"
|
||||
#include "file.h"
|
||||
#include "misc.h"
|
||||
#if CONFIG_TUNER
|
||||
#include "radio.h"
|
||||
#endif
|
||||
|
@ -314,7 +315,8 @@ bool skin_do_full_update(enum skinnable_screens skin,
|
|||
{
|
||||
struct viewport *vp = *(screens[screen].current_viewport);
|
||||
|
||||
bool vp_is_dirty = ((vp->flags & VP_FLAG_VP_SET_CLEAN) == VP_FLAG_VP_DIRTY);
|
||||
bool vp_is_dirty = ((vp->flags & VP_FLAG_VP_SET_CLEAN) == VP_FLAG_VP_DIRTY) &&
|
||||
get_current_activity() == ACTIVITY_WPS;
|
||||
|
||||
bool ret = (skins[skin][screen].needs_full_update || vp_is_dirty);
|
||||
skins[skin][screen].needs_full_update = false;
|
||||
|
|
|
@ -435,18 +435,18 @@ static void do_tags_in_hidden_conditional(struct skin_element* branch,
|
|||
{
|
||||
skin_backdrop_set_buffer(data->backdrop_id, skin_viewport);
|
||||
skin_backdrop_show(-1);
|
||||
gwps->display->set_viewport(&skin_viewport->vp);
|
||||
gwps->display->set_viewport_ex(&skin_viewport->vp, VP_FLAG_VP_SET_CLEAN);
|
||||
gwps->display->clear_viewport();
|
||||
gwps->display->set_viewport_ex(&info->skin_vp->vp, 0);
|
||||
gwps->display->set_viewport_ex(&info->skin_vp->vp, VP_FLAG_VP_SET_CLEAN);
|
||||
skin_backdrop_set_buffer(-1, skin_viewport);
|
||||
skin_backdrop_show(data->backdrop_id);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
gwps->display->set_viewport(&skin_viewport->vp);
|
||||
gwps->display->set_viewport_ex(&skin_viewport->vp, VP_FLAG_VP_SET_CLEAN);
|
||||
gwps->display->clear_viewport();
|
||||
gwps->display->set_viewport_ex(&info->skin_vp->vp, 0);
|
||||
gwps->display->set_viewport_ex(&info->skin_vp->vp, VP_FLAG_VP_SET_CLEAN);
|
||||
}
|
||||
skin_viewport->hidden_flags |= VP_DRAW_HIDDEN;
|
||||
}
|
||||
|
@ -512,6 +512,7 @@ static void fix_line_alignment(struct skin_draw_info *info, struct skin_element
|
|||
static bool skin_render_line(struct skin_element* line, struct skin_draw_info *info)
|
||||
{
|
||||
bool needs_update = false;
|
||||
|
||||
int last_value, value;
|
||||
|
||||
if (line->children_count == 0)
|
||||
|
@ -571,6 +572,7 @@ static bool skin_render_line(struct skin_element* line, struct skin_draw_info *i
|
|||
info->refresh_type = old_refresh_mode;
|
||||
break;
|
||||
case TAG:
|
||||
|
||||
if (child->tag->flags & NOBREAK)
|
||||
info->no_line_break = true;
|
||||
if (child->tag->type == SKIN_TOKEN_SUBLINE_SCROLL)
|
||||
|
@ -590,6 +592,10 @@ static bool skin_render_line(struct skin_element* line, struct skin_draw_info *i
|
|||
sizeof(tempbuf), NULL);
|
||||
if (valuestr)
|
||||
{
|
||||
#if defined(ONDA_VX747) || defined(ONDA_VX747P)
|
||||
/* Doesn't redraw (in sim at least) */
|
||||
needs_update = true;
|
||||
#endif
|
||||
#if CONFIG_RTC
|
||||
if (child->tag->flags&SKIN_RTC_REFRESH)
|
||||
needs_update = needs_update || info->refresh_type&SKIN_REFRESH_DYNAMIC;
|
||||
|
@ -602,6 +608,10 @@ static bool skin_render_line(struct skin_element* line, struct skin_draw_info *i
|
|||
}
|
||||
break;
|
||||
case TEXT:
|
||||
#if defined(ONDA_VX747) || defined(ONDA_VX747P)
|
||||
/* Doesn't redraw (in sim at least) */
|
||||
needs_update = true;
|
||||
#endif
|
||||
strlcat(info->cur_align_start, SKINOFFSETTOPTR(skin_buffer, child->data),
|
||||
info->buf_size - (info->cur_align_start-info->buf));
|
||||
needs_update = needs_update ||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue