[v4] WaitWindowEvent() + Ecran fenêtré = application gelée

Archive.
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

[v4] WaitWindowEvent() + Ecran fenêtré = application gelée

Message par Gratteur »

Lorsque l'on utilise un écran en mode fenetré combiné à un WaitWindowEvent(), au bout d'un certain temps d'inactivité (10 à 15 minutes max) la fenetre se gele. Pour éviter ceci, il faut ajouter un delay dans le WaitWindowEvent()

Code : Tout sélectionner

event = WaitWindowEvent(delay)
ensuite si le event = 0 redessiner ce qu'il y a à l'écran.
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

remplace le waitwindowevent par windowevent

exemple :

Code : Tout sélectionner

Repeat
   Repeat
      Event = WindowEvent()
      
      Select Event 
        Case #PB_Event_Gadget
                  
        Case #PB_Event_CloseWindow
          End 
      EndSelect
    Until Event = 0

    FlipBuffers() 

    ;; ce que tu veux redessiner
    if startdrawing(screenoutput())
        ;;     seulement si tu utilise des box, line, drawtext...
        ....
   endif
   ;; s'il s'agit d'un sprite pas besoin de startdrawing
   displaysprite(...)
	   
    ExamineKeyboard()
    ExamineMouse()
    Delay(1)
		
Until KeyboardPushed(#PB_Key_Return)
Gratteur
Messages : 147
Inscription : ven. 22/avr./2005 23:02

Message par Gratteur »

Le but est justement de concerver le waitwindowevent() pour ne pas avoir a s'occuper du "raffraichissement" des gadgets et pour laisser aux autres programmes un maximum de temps processeur.

Il faudrait au minimum signaler ce problème de freeze dans la doc.
Répondre