From 2928a16e415d070936dc220f803eb086afa70d59 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Wed, 3 Jan 2018 05:13:51 +0100 Subject: [PATCH] Also save visible layers for spare page see http://pulkomandy.tk/projects/GrafX2/ticket/25#comment:3 --- src/buttons.c | 1 + src/global.h | 4 ++++ src/layers.c | 5 ++--- src/main.c | 2 ++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/buttons.c b/src/buttons.c index 12f0e47b..50cdde09 100644 --- a/src/buttons.c +++ b/src/buttons.c @@ -1595,6 +1595,7 @@ void Button_Page(void) SWAP_BYTES (Main_current_layer,Spare_current_layer) SWAP_DWORDS(Main_layers_visible,Spare_layers_visible) + SWAP_DWORDS(Main_layers_visible_backup,Spare_layers_visible_backup) SWAP_DWORDS(Main_safety_number,Spare_safety_number) SWAP_DWORDS(Main_edits_since_safety_backup,Spare_edits_since_safety_backup) diff --git a/src/global.h b/src/global.h index 71ed5bb5..069cf783 100644 --- a/src/global.h +++ b/src/global.h @@ -327,6 +327,8 @@ GFX2_GLOBAL short Main_magnifier_offset_Y; GFX2_GLOBAL int Main_current_layer; /// Bitfield that records which layers are visible. 2^0 for 0, 2^1 for 1, 2^2 for 2, etc. GFX2_GLOBAL dword Main_layers_visible; +/// Backup for Main_layers_visible +GFX2_GLOBAL dword Main_layers_visible_backup; /// Index to use next time, when creating incremental backups, to make unique filename. GFX2_GLOBAL long Main_safety_number; /// Number of edit actions since the last safety backup @@ -382,6 +384,8 @@ GFX2_GLOBAL short Spare_magnifier_offset_Y; GFX2_GLOBAL int Spare_current_layer; /// Bitfield that records which layers are visible. 2^0 for 0, 2^1 for 1, 2^2 for 2, etc. GFX2_GLOBAL dword Spare_layers_visible; +/// Backup for Spare_layers_visible +GFX2_GLOBAL dword Spare_layers_visible_backup; /// Index to use next time, when creating incremental backups, to make unique filename. GFX2_GLOBAL long Spare_safety_number; /// Number of edit actions since the last safety backup diff --git a/src/layers.c b/src/layers.c index 9a0dbd14..cefa95c6 100644 --- a/src/layers.c +++ b/src/layers.c @@ -35,7 +35,6 @@ void Layer_activate(int layer, short side) { dword old_layers; - static dword layers_backup_for_toggle = 0xFFFFFFFF; if (layer >= Main_backups->Pages->Nb_layers) return; @@ -54,12 +53,12 @@ void Layer_activate(int layer, short side) { // return to previous state (layers that were on before showing // only this one) - Main_layers_visible = layers_backup_for_toggle; + Main_layers_visible = Main_layers_visible_backup; } else { // Set only this one visible - layers_backup_for_toggle = Main_layers_visible; + Main_layers_visible_backup = Main_layers_visible; Main_layers_visible = 1<