From 53c2936697fc31a11d5026f829b4e8a270961811 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Mon, 12 Jan 2009 10:32:36 +0000 Subject: [PATCH] Attendre_fin_de_click could return if the event queu was empty while the button was still pressed. Now fixed. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@475 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- divers.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/divers.c b/divers.c index 5f59d9fc..e184bc5b 100644 --- a/divers.c +++ b/divers.c @@ -94,20 +94,22 @@ void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu) void Attendre_fin_de_click(void) { - SDL_Event event; + SDL_Event event; - //On attend que l'utilisateur relache la souris. Tous les autres évènements - //sont ignorés - while(SDL_PollEvent(&event)) - { - Gere_Evenement_SDL(&event); - if (event.type == SDL_MOUSEBUTTONUP) - break; - } + if(Mouse_K==0) return; // Le bouton était déjà relaché - //On indique à la gestion des E/S que le bouton est laché et on rend la main - Mouse_K=0; - INPUT_Nouveau_Mouse_K=0; + //On attend que l'utilisateur relache la souris. Tous les autres évènements + //sont ignorés + while(SDL_WaitEvent(&event)) + { + Gere_Evenement_SDL(&event); + if (event.type == SDL_MOUSEBUTTONUP) + break; + } + + //On indique à la gestion des E/S que le bouton est laché et on rend la main + Mouse_K=0; + INPUT_Nouveau_Mouse_K=0; } void Effacer_image_courante_Stencil(byte Couleur, byte * Pochoir)