diff --git a/graph.c b/graph.c index 21faa94f..1cb6ab67 100644 --- a/graph.c +++ b/graph.c @@ -336,14 +336,30 @@ void Initialiser_mode_video(int Largeur, int Hauteur, int Fullscreen) Brouillon_Loupe_Mode=0; // | la résolution. } if (Loupe_Mode) + { Pixel_Preview=Pixel_Preview_Loupe; + } else + { Pixel_Preview=Pixel_Preview_Normal; + // Recaler la vue (meme clipping que dans Scroller_ecran()) + if (Principal_Decalage_X+Largeur_ecran>Principal_Largeur_image) + Principal_Decalage_X=Principal_Largeur_image-Largeur_ecran; + else if (Principal_Decalage_X<0) + Principal_Decalage_X=0; + if (Principal_Decalage_Y+Menu_Ordonnee>Principal_Hauteur_image) + Principal_Decalage_Y=Principal_Hauteur_image-Menu_Ordonnee; + else if (Principal_Decalage_Y<0) + Principal_Decalage_Y=0; + } Calculer_donnees_loupe(); + if (Loupe_Mode) + Recadrer_ecran_par_rapport_au_zoom(); Calculer_limites(); Calculer_coordonnees_pinceau(); - + Afficher_ecran(); + Resize_Largeur=0; Resize_Hauteur=0; } diff --git a/windows.c b/windows.c index 7da3fa27..f84f71bc 100644 --- a/windows.c +++ b/windows.c @@ -1233,6 +1233,13 @@ void Calculer_donnees_loupe(void) Loupe_Decalage_X=Principal_Largeur_image-Loupe_Largeur; if (Loupe_Decalage_X<0) Loupe_Decalage_X=0; } + if (Loupe_Mode && Loupe_Decalage_Y) + { + if (Principal_Hauteur_image