Fix window manager bug

Window are was not being cleared properly when something was made invisible
ugfx_release_2.6
inmarket 2013-07-06 01:42:10 +10:00
parent 99c13615c8
commit f3f9b7dc01
1 changed files with 8 additions and 10 deletions

View File

@ -88,18 +88,16 @@ static void WM_Delete(GHandle gh) {
} }
static void WM_Visible(GHandle gh) { static void WM_Visible(GHandle gh) {
#if GDISP_NEED_CLIP
gdispSetClip(gh->x, gh->y, gh->width, gh->height);
#endif
if ((gh->flags & GWIN_FLG_VISIBLE)) { if ((gh->flags & GWIN_FLG_VISIBLE)) {
if (gh->vmt->Redraw) { if (gh->vmt->Redraw)
#if GDISP_NEED_CLIP
gdispSetClip(gh->x, gh->y, gh->width, gh->height);
#endif
gh->vmt->Redraw(gh); gh->vmt->Redraw(gh);
} else else
gwinClear(gh); gdispFillArea(gh->x, gh->y, gh->width, gh->height, gh->bgcolor);
// A real window manager would also redraw the borders // A real window manager would also redraw the borders here
} } else
else
gdispFillArea(gh->x, gh->y, gh->width, gh->height, gwinGetDefaultBgColor()); gdispFillArea(gh->x, gh->y, gh->width, gh->height, gwinGetDefaultBgColor());
} }