From 0b801a28c82f05e9fa5b888a1cabb5b373248804 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Sat, 10 Jan 2009 15:41:56 +0000 Subject: [PATCH] Fixes a severe memory leak, up to 200Kb every time you closed a window. oops! Fixes a missing refresh when you initiate window dragging. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@469 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- gfx2.cfg | Bin 10062 -> 10062 bytes moteur.c | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gfx2.cfg b/gfx2.cfg index 3eb19431789e3f803ed1204add79a0fe4376bbf0..43d4c5c56725663c93db5aad2e946917e183433f 100644 GIT binary patch delta 276 zcmWm5$4&xK0EOXy7z3kWr-=(T;vhB@v0)#TA}Ed^c0ob0H>?yXuVBKHkh}F6*!wnK z&PmSdJ1w(i{uC9xS^Bj!{Hn9A^x>o*9Tx+*8DxlIMi|Az7~^!6#o7C{m)#Hx;VXs3Wp!k17m@RTD<9)h?$) b6Cu6JV#~-o?qB`vDsdnjR!~oS+2@lOzHyq p3_!2~h#5f)Fs~KHV*&|j12NO&K;@mA_0@zKc^El4fJ(uN82}rR5u*SA diff --git a/moteur.c b/moteur.c index 41547719..78fa33f3 100644 --- a/moteur.c +++ b/moteur.c @@ -1099,8 +1099,17 @@ void Fermer_fenetre(void) Fenetre_Liste_boutons_special=Temp4; } - if (Fenetre == 1) + if (Fenetre != 1) { + // 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); + Fenetre--; + } + else + { + free(Fond_fenetre[Fenetre-1]); + Fenetre--; Cacher_pinceau=Cacher_pinceau_avant_fenetre; @@ -1109,20 +1118,10 @@ void Fermer_fenetre(void) Menu_Ordonnee=Menu_Ordonnee_avant_fenetre; Menu_visible=Menu_visible_avant_fenetre; Forme_curseur=Forme_curseur_avant_fenetre; - - // On le fait ici car Afficher_menu s'en sert pour savoir s'il doit remetre X: Y: dans la toolbar. - 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); - Fenetre--; - } Touche=0; Mouse_K=0; @@ -1666,6 +1665,7 @@ void Deplacer_fenetre(short Dx, short Dy) Ligne_verticale_XOR(Nouveau_X,Nouveau_Y+1,Hauteur-2); Ligne_verticale_XOR(Nouveau_X+Largeur-1,Nouveau_Y+1,Hauteur-2); Ligne_horizontale_XOR(Nouveau_X,Nouveau_Y+Hauteur-1,Largeur); + UpdateRect(Nouveau_X,Nouveau_Y,Largeur,Hauteur); Forme_curseur=FORME_CURSEUR_MULTIDIRECTIONNEL; Afficher_curseur();