From d71d7d701d6485c7ff4bc965220123fd05f87632 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Sat, 22 Nov 2008 00:56:21 +0000 Subject: [PATCH] Fixed more missing screen refreshes: - Issue 54: Palette screen, BG color area after picking a BG color by right-click. - All screens that allow the user to press Tilde to hides the window and pick a color on the image. - Stencil screen, the selected colors when you're back after picking a color. - Issue 55: Load/Save, areas with file stats (size, preview) just after changing selection. - Issue 44: Status bar when emptying it (ex: hovering the status bar or the zoom separator) git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@357 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- boutons.c | 11 +++++++++-- moteur.c | 28 +++++++++++++++++----------- palette.c | 1 + 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/boutons.c b/boutons.c index 8607ba23..22137c33 100644 --- a/boutons.c +++ b/boutons.c @@ -615,6 +615,9 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * Mode, byte Cancel, c Couleur_taggee=Couleur; Table[Couleur_taggee]=(Click==A_GAUCHE); Stencil_Tagger_couleur(Couleur_taggee,(Click==A_GAUCHE)?CM_Noir:CM_Clair); + UpdateRect(Fenetre_Pos_X+(Menu_Facteur_X*(Fenetre_Liste_boutons_palette->Pos_X+4+(Couleur_taggee >> 4)*10)), + Fenetre_Pos_Y+(Menu_Facteur_Y*(Fenetre_Liste_boutons_palette->Pos_Y+3+(Couleur_taggee & 15)* 5)), + Menu_Facteur_X<<1,Menu_Facteur_Y*5); Afficher_curseur(); } break; @@ -2958,10 +2961,14 @@ byte Bouton_Load_ou_Save(byte Load, byte Image) Menu_Facteur_X*72,Menu_Facteur_Y<<3,CM_Clair); // Affichage du commentaire if ( (!Load) && (Format_Commentaire[Principal_Format-1]) ) + { Print_dans_fenetre(46,175+FILENAMESPACE,Principal_Commentaire,CM_Noir,CM_Clair); + } Afficher_curseur(); - - UpdateRect(Fenetre_Pos_X+27*Menu_Facteur_X,Fenetre_Pos_Y+(55+FILENAMESPACE)*Menu_Facteur_Y,Menu_Facteur_X<<9,Menu_Facteur_Y<<4); + // Un update pour couvrir les 4 zones: 3 libellés plus la zone de preview + UpdateRect(Fenetre_Pos_X+180*Menu_Facteur_X,Fenetre_Pos_Y+55*Menu_Facteur_Y,Menu_Facteur_X*122,Menu_Facteur_Y*(116+FILENAMESPACE)); + // Zone de commentaire + UpdateRect(Fenetre_Pos_X+46*Menu_Facteur_X,Fenetre_Pos_Y+(175+FILENAMESPACE)*Menu_Facteur_Y,Menu_Facteur_X*32*8,Menu_Facteur_Y*8); } Nouvelle_preview=0; diff --git a/moteur.c b/moteur.c index a7133a65..08cc98da 100644 --- a/moteur.c +++ b/moteur.c @@ -475,9 +475,10 @@ void Gestion_principale(void) byte Temp; - // Au démarrage, on sait que le curseur n'est pas dans le menu + // Au démarrage, on considère que le curseur est dans le menu + // pour forcer un affichage des coordonnées - Curseur_dans_menu_precedent=0; + Curseur_dans_menu_precedent=1; do { @@ -866,6 +867,7 @@ void Gestion_principale(void) // On nettoie les coordonnées Effacer_curseur(); Block(18*Menu_Facteur_X,Menu_Ordonnee_Texte,192*Menu_Facteur_X,Menu_Facteur_Y<<3,CM_Clair); + UpdateRect(18*Menu_Facteur_X,Menu_Ordonnee_Texte,192*Menu_Facteur_X,Menu_Facteur_Y<<3); Afficher_curseur(); } } @@ -1090,22 +1092,25 @@ void Fermer_fenetre(void) Cacher_pinceau=Cacher_pinceau_avant_fenetre; - Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre - // d'outils si le curseur est sur une icône. + // il faut rafficher le libellé dans la barre + // d'outils si le curseur est sur une icône. + Curseur_dans_menu_precedent=1; Calculer_coordonnees_pinceau(); Menu_Ordonnee=Menu_Ordonnee_avant_fenetre; Menu_visible=Menu_visible_avant_fenetre; Forme_curseur=Forme_curseur_avant_fenetre; + + Afficher_ecran(); + Afficher_menu(); + } + else + { + // Restore de ce que la fenêtre cachait + Restaure_fond(Fond_fenetre[Fenetre-1], Fenetre_Pos_X, Fenetre_Pos_Y, Fenetre_Largeur, Fenetre_Hauteur); + UpdateRect(Fenetre_Pos_X,Fenetre_Pos_Y,Fenetre_Largeur*Menu_Facteur_X,Fenetre_Hauteur*Menu_Facteur_Y); } - - // Restore de ce que la fenêtre cachait - Restaure_fond(Fond_fenetre[Fenetre-1], Fenetre_Pos_X, Fenetre_Pos_Y, Fenetre_Largeur, Fenetre_Hauteur); - UpdateRect(Fenetre_Pos_X,Fenetre_Pos_Y,Fenetre_Largeur*Menu_Facteur_X,Fenetre_Hauteur*Menu_Facteur_Y); - - //Afficher_ecran(); - //Afficher_menu(); Touche=0; Mouse_K=0; @@ -1607,6 +1612,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click) for (Indice=0; Indice