X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin2_src%2FWM%2Frender.c;h=0ee9e80d3e8d7579df006bd8d73bb18fa53cde6f;hb=e02f66c7125bf18f77c6c53587238cbd49da2c89;hp=21237e0c4934a6dec09d6f0e086c1e9ceacece9a;hpb=84ca1355b263e253ff67e59e2abbbad67a42391c;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin2_src/WM/render.c b/Usermode/Applications/axwin2_src/WM/render.c index 21237e0c..0ee9e80d 100644 --- a/Usermode/Applications/axwin2_src/WM/render.c +++ b/Usermode/Applications/axwin2_src/WM/render.c @@ -13,6 +13,11 @@ // === IMPORTS === extern void Decorator_RenderWidget(tElement *Element); extern tElement gWM_RootElement; +extern tApplication *gWM_Applications; +extern int giWM_MaxAreaX; +extern int giWM_MaxAreaY; +extern int giWM_MaxAreaW; +extern int giWM_MaxAreaH; // === PROTOTYPES === void WM_UpdateMinDims(tElement *Element); @@ -269,16 +274,39 @@ void WM_RenderWidget(tElement *Element) } } +void WM_UpdateWindow(tElement *Ele) +{ + WM_UpdateDimensions( Ele, 0 ); + WM_UpdatePosition( Ele ); + WM_RenderWidget( Ele ); +} + void WM_Update(void) { - gWM_RootElement.CachedX = 0; gWM_RootElement.CachedY = 0; + tApplication *app; + tElement *ele; + + for( app = gWM_Applications; app; app = app->Next ) + { + for( ele = app->MetaElement.FirstChild; ele; ele = ele->NextSibling ) { + if( ele->Flags & ELEFLAG_WINDOW_MAXIMISED ) { + ele->CachedX = giWM_MaxAreaX; + ele->CachedY = giWM_MaxAreaY; + ele->CachedW = giWM_MaxAreaW; + ele->CachedH = giWM_MaxAreaH; + } + ele->Flags |= ELEFLAG_NOEXPAND|ELEFLAG_ABSOLUTEPOS|ELEFLAG_FIXEDSIZE; + WM_UpdateWindow(ele); + } + } + + gWM_RootElement.CachedX = 0; + gWM_RootElement.CachedY = 0; gWM_RootElement.CachedW = giScreenWidth; gWM_RootElement.CachedH = giScreenHeight; gWM_RootElement.Flags |= ELEFLAG_NOEXPAND|ELEFLAG_ABSOLUTEPOS|ELEFLAG_FIXEDSIZE; - WM_UpdateDimensions( &gWM_RootElement, 0 ); - WM_UpdatePosition( &gWM_RootElement ); - WM_RenderWidget( &gWM_RootElement ); + WM_UpdateWindow( &gWM_RootElement ); Video_Update(); }