Fix issue 264: Undo/Redo/kill can leave no active or visible layer
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1233 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
7645d0844a
commit
7d657e0c02
26
pages.c
26
pages.c
@ -837,6 +837,15 @@ void Backup_layers(dword layer_mask)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Check_layers_limits()
|
||||||
|
{
|
||||||
|
if (Main_current_layer > Main_backups->Pages->Nb_layers-1)
|
||||||
|
{
|
||||||
|
Main_current_layer = Main_backups->Pages->Nb_layers-1;
|
||||||
|
Main_layers_visible |= 1<<Main_current_layer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Undo(void)
|
void Undo(void)
|
||||||
{
|
{
|
||||||
if (Last_backed_up_layers)
|
if (Last_backed_up_layers)
|
||||||
@ -862,9 +871,7 @@ void Undo(void)
|
|||||||
// n'est pas utilisé à la suite d'un Undo. Donc ça ne devrait pas
|
// n'est pas utilisé à la suite d'un Undo. Donc ça ne devrait pas
|
||||||
// poser de problèmes.
|
// poser de problèmes.
|
||||||
|
|
||||||
if (Main_current_layer > Main_backups->Pages->Nb_layers-1)
|
Check_layers_limits();
|
||||||
Main_current_layer = Main_backups->Pages->Nb_layers-1;
|
|
||||||
|
|
||||||
Redraw_layered_image();
|
Redraw_layered_image();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -893,9 +900,7 @@ void Redo(void)
|
|||||||
// n'est pas utilisé à la suite d'un Redo. Donc ça ne devrait pas
|
// n'est pas utilisé à la suite d'un Redo. Donc ça ne devrait pas
|
||||||
// poser de problèmes.
|
// poser de problèmes.
|
||||||
|
|
||||||
if (Main_current_layer > Main_backups->Pages->Nb_layers-1)
|
Check_layers_limits();
|
||||||
Main_current_layer = Main_backups->Pages->Nb_layers-1;
|
|
||||||
|
|
||||||
Redraw_layered_image();
|
Redraw_layered_image();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -905,9 +910,6 @@ void Free_current_page(void)
|
|||||||
// On détruit la page courante de la liste principale
|
// On détruit la page courante de la liste principale
|
||||||
Free_page_of_a_list(Main_backups);
|
Free_page_of_a_list(Main_backups);
|
||||||
|
|
||||||
Update_buffers(Main_backups->Pages->Width, Main_backups->Pages->Height);
|
|
||||||
Redraw_layered_image();
|
|
||||||
|
|
||||||
// On extrait ensuite les infos sur la nouvelle page courante
|
// On extrait ensuite les infos sur la nouvelle page courante
|
||||||
Download_infos_page_main(Main_backups->Pages);
|
Download_infos_page_main(Main_backups->Pages);
|
||||||
// Et celles du backup
|
// Et celles du backup
|
||||||
@ -915,7 +917,11 @@ void Free_current_page(void)
|
|||||||
// Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
|
// Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
|
||||||
// palette que la page courante. Mais en temps normal, le backup
|
// palette que la page courante. Mais en temps normal, le backup
|
||||||
// n'est pas utilisé à la suite d'une destruction de page. Donc ça ne
|
// n'est pas utilisé à la suite d'une destruction de page. Donc ça ne
|
||||||
// devrait pas poser de problèmes.
|
// devrait pas poser de problèmes.
|
||||||
|
|
||||||
|
Update_buffers(Main_backups->Pages->Width, Main_backups->Pages->Height);
|
||||||
|
Check_layers_limits();
|
||||||
|
Redraw_layered_image();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Exchange_main_and_spare(void)
|
void Exchange_main_and_spare(void)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user