Fix window manager bug
Window are was not being cleared properly when something was made invisible
This commit is contained in:
parent
99c13615c8
commit
f3f9b7dc01
1 changed files with 8 additions and 10 deletions
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue