Flicker when resizing centered scrollarea inner size

Got an idea for enhancing PureBasic? New command(s) you'd like to see?
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Flicker when resizing centered scrollarea inner size

Post by Trond »

When the inner size of a scrollarea is resized, the inner area flickers in the top-left corner before it is centered again. Could this be fixed?

Code: Select all

OpenWindow(0, 0, 0, 512, 384, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))

Global ScrollArea = ScrollAreaGadget(-1, 0, 0, 512, 384, 0, 0, 30, #PB_ScrollArea_Center)
  ButtonGadget(0, 0, 0, 97, 25, "button")
CloseGadgetList()

; Comment in this for extra effect
;BgBrush = CreateSolidBrush_(#Red)
;SetClassLong_(FindWindowEx_(GadgetID(ScrollArea), 0, 0, 0), #GCL_HBRBACKGROUND, BgBrush)

Procedure Thread(Void)
  Protected I
  Repeat
    I + 1
    SetGadgetAttribute(ScrollArea, #PB_ScrollArea_InnerHeight, I)
    SetGadgetAttribute(ScrollArea, #PB_ScrollArea_InnerWidth, I)
    Delay(30)
  Until I = 380
EndProcedure

CreateThread(@Thread(), 0)

Repeat
  Select WaitWindowEvent(10)
    Case #PB_Event_CloseWindow
      Break
  EndSelect
ForEver