diff --git a/boutons.c b/boutons.c index deeba44b..3bdf627a 100644 --- a/boutons.c +++ b/boutons.c @@ -638,6 +638,7 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * Mode, byte Cancel, c Stencil_Tagger_couleur(Couleur_taggee,(Click==A_GAUCHE)?CM_Noir:CM_Clair); Stencil_Actualiser_couleur(Couleur_taggee); Afficher_curseur(); + Attendre_fin_de_click(); } Touche=0; break; @@ -2078,8 +2079,8 @@ void Bouton_Degrades(void) Tagger_intervalle_palette(Degrade_Tableau[Degrade_Courant].Debut,Degrade_Tableau[Degrade_Courant].Fin); // Tracé de la preview: Degrade_Dessiner_preview(8,112,108,14,Degrade_Courant); - Afficher_curseur(); + Attendre_fin_de_click(); } Touche=0; break; @@ -5031,6 +5032,7 @@ void Bouton_Spray_Menu(void) Spray_Rafficher_infos(Couleur_selectionnee,1); Afficher_curseur(); Stencil_Actualiser_couleur(Couleur_selectionnee); + Attendre_fin_de_click(); } Touche=0; break; diff --git a/moteur.c b/moteur.c index 68bb8612..a1f797bb 100644 --- a/moteur.c +++ b/moteur.c @@ -440,6 +440,7 @@ void Deplacer_Split(void) short Ancien_X_Zoom=Principal_X_Zoom; short Decalage=Principal_X_Zoom-Mouse_X; byte Ancienne_forme_curseur=Forme_curseur; + short Ancien_Mouse_X=-1; // Afficher la barre en XOR Effacer_curseur(); @@ -452,32 +453,35 @@ void Deplacer_Split(void) while (Mouse_K) { - Principal_Proportion_split=(float)(Mouse_X+Decalage)/Largeur_ecran; - Calculer_split(); - - if (Principal_X_Zoom!=Ancien_X_Zoom) + if (Mouse_X!=Ancien_Mouse_X) { - Effacer_curseur(); - - // Effacer la barre en XOR - Ligne_verticale_XOR(Ancien_Split,0,Menu_Ordonnee); - Ligne_verticale_XOR(Ancien_X_Zoom-1,0,Menu_Ordonnee); - - UpdateRect(Ancien_Split,0,abs(Ancien_Split-Ancien_X_Zoom)+1,Menu_Ordonnee); - - Ancien_Split=Principal_Split; - Ancien_X_Zoom=Principal_X_Zoom; - - // Rafficher la barre en XOR - Ligne_verticale_XOR(Principal_Split,0,Menu_Ordonnee); - Ligne_verticale_XOR(Principal_X_Zoom-1,0,Menu_Ordonnee); - - UpdateRect(Principal_Split,0,abs(Principal_Split-Principal_X_Zoom)+1,Menu_Ordonnee); - - Afficher_curseur(); + Ancien_Mouse_X=Mouse_X; + Principal_Proportion_split=(float)(Mouse_X+Decalage)/Largeur_ecran; + Calculer_split(); + + if (Principal_X_Zoom!=Ancien_X_Zoom) + { + Effacer_curseur(); + + // Effacer la barre en XOR + Ligne_verticale_XOR(Ancien_Split,0,Menu_Ordonnee); + Ligne_verticale_XOR(Ancien_X_Zoom-1,0,Menu_Ordonnee); + + UpdateRect(Ancien_Split,0,abs(Ancien_Split-Ancien_X_Zoom)+1,Menu_Ordonnee); + + Ancien_Split=Principal_Split; + Ancien_X_Zoom=Principal_X_Zoom; + + // Rafficher la barre en XOR + Ligne_verticale_XOR(Principal_Split,0,Menu_Ordonnee); + Ligne_verticale_XOR(Principal_X_Zoom-1,0,Menu_Ordonnee); + + UpdateRect(Principal_Split,0,abs(Principal_Split-Principal_X_Zoom)+1,Menu_Ordonnee); + + Afficher_curseur(); + } } - - while(!Get_input())Wait_VBL(); + if(!Get_input())Wait_VBL(); } // Effacer la barre en XOR @@ -1727,7 +1731,6 @@ short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg) { if (Fenetre_click_dans_zone(Debut_X,Debut_Y,Fin_X,Fin_Y)) { - Attendre_fin_de_click(); Effacer_curseur(); Couleur_choisie=(((Mouse_X-Fenetre_Pos_X)/Menu_Facteur_X)-(Enreg->Pos_X+2)) / 10 * 16 + (((Mouse_Y-Fenetre_Pos_Y)/Menu_Facteur_Y)-(Enreg->Pos_Y+3)) / 5; @@ -1741,7 +1744,6 @@ short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg) (Mouse_X>=Fenetre_Pos_X+(Fenetre_Largeur*Menu_Facteur_X)) || (Mouse_Y>=Fenetre_Pos_Y+(Fenetre_Hauteur*Menu_Facteur_Y)) ) { - Attendre_fin_de_click(); Effacer_curseur(); Couleur_choisie=Lit_pixel(Mouse_X,Mouse_Y); Forme_curseur=FORME_CURSEUR_FLECHE; @@ -1754,7 +1756,6 @@ short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg) if ((Mouse_K==A_DROITE) || (Touche==TOUCHE_ESC)) { - Attendre_fin_de_click(); Effacer_curseur(); Forme_curseur=FORME_CURSEUR_FLECHE; Cacher_curseur=Ancien_Cacher_curseur; @@ -1810,7 +1811,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click) do { - while(!Get_input())Wait_VBL(); + if(!Get_input())Wait_VBL(); if ((Mouse_X!=Ancien_X) || (Mouse_Y!=Ancien_Y)) { @@ -1852,7 +1853,6 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click) Effacer_curseur(); *Click=Mouse_K; *Couleur=Lit_pixel(Mouse_X,Mouse_Y); - Attendre_fin_de_click(); } else { @@ -1873,7 +1873,6 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click) else { Erreur(0); - Attendre_fin_de_click(); } } diff --git a/palette.c b/palette.c index e5920033..7da5f7f8 100644 --- a/palette.c +++ b/palette.c @@ -1314,7 +1314,7 @@ void Bouton_Palette(void) // En cas de X-Swap, tout l'ecran a pu changer de couleur. if (Bouton_clicke==8) UpdateRect(0, 0, Largeur_ecran, Menu_Ordonnee_avant_fenetre); - + Attendre_fin_de_click(); } break; @@ -1357,6 +1357,7 @@ void Bouton_Palette(void) Afficher_curseur(); Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block); + Attendre_fin_de_click(); } break; @@ -1376,6 +1377,7 @@ void Bouton_Palette(void) Degrader_palette(Couleur_temporaire,Fore_color,Palette_de_travail); else Degrader_palette(Fore_color,Couleur_temporaire,Palette_de_travail); + Attendre_fin_de_click(); } } @@ -2001,6 +2003,7 @@ void Bouton_Palette(void) memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette)); } Afficher_curseur(); + Attendre_fin_de_click(); } Touche=0; break; diff --git a/shade.c b/shade.c index ed616e7e..979af9a4 100644 --- a/shade.c +++ b/shade.c @@ -970,6 +970,7 @@ int Menu_Shade(void) Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur); Afficher_curseur(); + Attendre_fin_de_click(); } Touche=0; break;