Fixed zoom window bar not draggable (issue 114)

Checked for all other uses of "while (!Get_input())", seems ok.
Palette screen: Copy,Swap,X-Swap now take place when you click button, not release.
In all screens where you could press ` and pick a color (palette, shade...): The action now takes place when you click, not release.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@626 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2009-02-11 00:00:17 +00:00
parent aaa393e12f
commit a28deef902
4 changed files with 37 additions and 32 deletions

View File

@ -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;

View File

@ -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();
}
}

View File

@ -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;

View File

@ -970,6 +970,7 @@ int Menu_Shade(void)
Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
Afficher_curseur();
Attendre_fin_de_click();
}
Touche=0;
break;