Freezed graphics when moving a windowed game

BlitzMax Forums/BlitzMax Programming/Freezed graphics when moving a windowed game

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Why don't you just disable the timer while processing the timer event, and enable it again when the event has been procesed?
I also thought about this, it would solve the problem, but I was too scared that it could cause too much system overhead to create and delete the timer permanently. The code I wrote above is just such a timer which fires only once, till you recreate it. But as you said this I tried to do so and it works! Thanks, it looks like the problem is solved now, at least my tests showed me this, but let's hear what Michael says.
Strict
Framework brl.blitz

Import brl.d3d7max2d
Import brl.glmax2d
Import brl.timer

Const HERTZ# = 60
Global Ending
Global Timer:TTimer = CreateTimer ( HERTZ )
Global Rotation
AddHook EmitEventHook , Hook
AppTitle = "Rotating Rectangle"
Graphics 400 , 300
While Not Ending
  WaitSystem
Wend

Function Hook:Object ( id , data:Object , context:Object )
  Local Event:TEvent = TEvent ( data )
  Select Event.source
    Case Null
      If Event.id = EVENT_APPTERMINATE
        Ending = True
      EndIf
      If Event.id = EVENT_KEYDOWN And Event.data = KEY_ESCAPE
        Ending = True
      EndIf
    Case Timer
      If Event.id = EVENT_TIMERTICK
        StopTimer Timer
        Cls
        SetRotation Rotation
        Rotation :+ 1
        DrawRect 200 , 150 , 100 , 100
        Flip 0
        Timer = CreateTimer ( HERTZ )
      EndIf
  EndSelect
  Return data
EndFunction