X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FApplications%2Faxwin2_src%2FWM%2Frender.c;h=50eca9ea1fe9df9a695be9a440c7f4fdab8753af;hb=7941d6b368acb0abc17e6a77ffaf7b4c306b67ab;hp=ea24130258c6b11b90e0704a7db624d9bc21ca89;hpb=117854336280cdf3d07143820e4d82d92c570239;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin2_src/WM/render.c b/Usermode/Applications/axwin2_src/WM/render.c index ea241302..50eca9ea 100644 --- a/Usermode/Applications/axwin2_src/WM/render.c +++ b/Usermode/Applications/axwin2_src/WM/render.c @@ -22,11 +22,6 @@ void WM_RenderWidget(tElement *Element); void WM_Update(void); // === CODE === -/** - * \name Pre-Rendering - * \brief Updates the element positions and sizes - * \{ - */ /** * \brief Updates the dimensions of an element * \todo What is the \a Pass parameter for @@ -257,9 +252,6 @@ void WM_UpdateMinDims(tElement *Element) // Recurse upwards WM_UpdateMinDims(Element->Parent); } -/** - * \} - */ // --- Render --- void WM_RenderWidget(tElement *Element) @@ -277,16 +269,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(); }