Fixes crash if menu is hidden and mouse cursor touches screen bottom (issue 71)
Fixes an off-by-one error in screen refresh which caused the menu bar to not reappear when you press F10. It was since r392 (except MacOSX). git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@408 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
d237b058ad
commit
b5168ffdf7
@ -40,6 +40,8 @@
|
|||||||
#ifndef METHODE_UPDATE
|
#ifndef METHODE_UPDATE
|
||||||
#ifdef __macosx__
|
#ifdef __macosx__
|
||||||
#define METHODE_UPDATE METHODE_UPDATE_PLEINE_PAGE
|
#define METHODE_UPDATE METHODE_UPDATE_PLEINE_PAGE
|
||||||
|
#elif defined(__WINDOWS__)
|
||||||
|
#define METHODE_UPDATE METHODE_UPDATE_MULTI_RECTANGLE
|
||||||
#else
|
#else
|
||||||
#define METHODE_UPDATE METHODE_UPDATE_PAR_CUMUL
|
#define METHODE_UPDATE METHODE_UPDATE_PAR_CUMUL
|
||||||
#endif
|
#endif
|
||||||
@ -110,7 +112,11 @@ void Flush_update(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SDL_UpdateRect(Ecran_SDL, Max(Min_X,0)*Pixel_width, Max(Min_Y,0)*Pixel_height, Min(Largeur_ecran, Max_X-Min_X)*Pixel_width, Min(Hauteur_ecran, Max_Y-Min_Y)*Pixel_height);
|
if (Min_X<0)
|
||||||
|
Min_X=0;
|
||||||
|
if (Min_Y<0)
|
||||||
|
Min_Y=0;
|
||||||
|
SDL_UpdateRect(Ecran_SDL, Min_X*Pixel_width, Min_Y*Pixel_height, Min(Largeur_ecran-Min_X, Max_X-Min_X)*Pixel_width, Min(Hauteur_ecran-Min_Y, Max_Y-Min_Y)*Pixel_height);
|
||||||
|
|
||||||
Min_X=Min_Y=10000;
|
Min_X=Min_Y=10000;
|
||||||
Max_X=Max_Y=0;
|
Max_X=Max_Y=0;
|
||||||
|
|||||||
@ -1427,19 +1427,17 @@ void Afficher_curseur(void)
|
|||||||
Debut_X=Mouse_X-Curseur_Decalage_X[Temp];
|
Debut_X=Mouse_X-Curseur_Decalage_X[Temp];
|
||||||
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Temp];
|
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Temp];
|
||||||
|
|
||||||
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15 && Pos_X < Largeur_ecran;Pos_X++,Compteur_X++)
|
||||||
{
|
{
|
||||||
if( Pos_X < 0 ) continue;
|
if( Pos_X < 0 ) continue;
|
||||||
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15 && Pos_Y < Hauteur_ecran;Pos_Y++,Compteur_Y++)
|
||||||
{
|
{
|
||||||
if( Pos_Y < 0 ) continue;
|
if( Pos_Y < 0 || Pos_Y >= Hauteur_ecran) continue;
|
||||||
Couleur=SPRITE_CURSEUR[Temp][Compteur_Y][Compteur_X];
|
Couleur=SPRITE_CURSEUR[Temp][Compteur_Y][Compteur_X];
|
||||||
FOND_CURSEUR[Compteur_Y][Compteur_X]=Lit_pixel(Pos_X,Pos_Y);
|
FOND_CURSEUR[Compteur_Y][Compteur_X]=Lit_pixel(Pos_X,Pos_Y);
|
||||||
if (Couleur!=CM_Trans)
|
if (Couleur!=CM_Trans)
|
||||||
Pixel(Pos_X,Pos_Y,Couleur);
|
Pixel(Pos_X,Pos_Y,Couleur);
|
||||||
if (Pos_Y > Hauteur_ecran) break;
|
|
||||||
}
|
}
|
||||||
if (Pos_X >= Largeur_ecran) break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateRect(Max(Debut_X,0),Max(Debut_Y,0),Compteur_X,Compteur_Y);
|
UpdateRect(Max(Debut_X,0),Max(Debut_Y,0),Compteur_X,Compteur_Y);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user