diff --git a/src/main.c b/src/main.c
index b6093eea66b06164e8d1bcf1850387d28fdb0852..10e6a03c35efbfe3bb31ea9ffacc599879fbf04c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -414,8 +414,7 @@ static int key_callback( GtkEventControllerKey* event_controller,
 
 				case GDK_SHIFT_MASK: {
 
-					context->xfit = false;
-					context->xdist /= 2;
+					context->xdist *= 2;
 
 					gtk_widget_queue_draw( context->plot );
 					return true;
@@ -450,7 +449,8 @@ static int key_callback( GtkEventControllerKey* event_controller,
 
 				case GDK_SHIFT_MASK: {
 
-					context->xdist *= 2;
+					context->xfit = false;
+					context->xdist /= 2;
 
 					gtk_widget_queue_draw( context->plot );
 					return true;