From e96be96ce12c444a236de9e1bb395a443bb579b5 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Tue, 2 Feb 2010 19:40:51 +0000 Subject: [PATCH] Magnifier: Both views positions are preserved on switching to Spare and back. Changing zoom with dropdown menu doesn't accidentally zoom on mouse git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1298 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- buttons.c | 11 +++++++++-- special.c | 4 ++-- windows.c | 7 ++++--- windows.h | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/buttons.c b/buttons.c index fc8a8921..4d1b59d2 100644 --- a/buttons.c +++ b/buttons.c @@ -1309,7 +1309,14 @@ void Button_Page(void) // A la fin, on affiche l'écran for (factor_index=0; ZOOM_FACTOR[factor_index]!=Main_magnifier_factor; factor_index++); - Change_magnifier_factor(factor_index); + //Change_magnifier_factor(factor_index,0); + Compute_magnifier_data(); + if (Main_magnifier_mode) + Pixel_preview=Pixel_preview_magnifier; + else + Pixel_preview=Pixel_preview_normal; + Compute_limits(); + Compute_paintbrush_coordinates(); Set_palette(Main_palette); Compute_optimal_menu_colors(Main_palette); @@ -3325,7 +3332,7 @@ void Button_Magnify_menu(void) if (item) { - Change_magnifier_factor(item->Number); + Change_magnifier_factor(item->Number,0); } if ( (!item) && (!Main_magnifier_mode) && (Current_operation!=OPERATION_MAGNIFY) ) // Cancel diff --git a/special.c b/special.c index b04a29d1..da8e8359 100644 --- a/special.c +++ b/special.c @@ -390,7 +390,7 @@ void Zoom(short delta) if ( (index>=0) && (index> 1); target_y = Main_magnifier_offset_Y + (Main_magnifier_height >> 1); + point_at_mouse=0; } else if (Mouse_X>=Main_X_zoom) { @@ -1803,6 +1803,7 @@ void Change_magnifier_factor(byte factor_index) target_x=Mouse_X+Main_offset_X; target_y=Mouse_Y+Main_offset_Y; magnified_view_leads=0; + point_at_mouse=0; } Main_magnifier_factor=ZOOM_FACTOR[factor_index]; diff --git a/windows.h b/windows.h index 1ba5555a..860dc73a 100644 --- a/windows.h +++ b/windows.h @@ -102,7 +102,7 @@ byte Best_color_nonexcluded(byte red,byte green,byte blue); void Horizontal_XOR_line_zoom(short x_pos, short y_pos, short width); void Vertical_XOR_line_zoom(short x_pos, short y_pos, short height); -void Change_magnifier_factor(byte factor_index); +void Change_magnifier_factor(byte factor_index, byte point_at_mouse); /// Width of one layer button, in pixels before scaling extern word Layer_button_width;