From 7d657e0c02f17c43b605be846c3c479a09a0d038 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Tue, 1 Dec 2009 23:51:34 +0000 Subject: [PATCH] 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 --- pages.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/pages.c b/pages.c index 0734b101..c8988c1c 100644 --- a/pages.c +++ b/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_backups->Pages->Nb_layers-1) - Main_current_layer = Main_backups->Pages->Nb_layers-1; - + Check_layers_limits(); Redraw_layered_image(); } @@ -893,9 +900,7 @@ void Redo(void) // n'est pas utilisé à la suite d'un Redo. Donc ça ne devrait pas // poser de problèmes. - if (Main_current_layer > Main_backups->Pages->Nb_layers-1) - Main_current_layer = Main_backups->Pages->Nb_layers-1; - + Check_layers_limits(); Redraw_layered_image(); } @@ -905,9 +910,6 @@ void Free_current_page(void) // On détruit la page courante de la liste principale 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 Download_infos_page_main(Main_backups->Pages); // 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 // 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 - // 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)