From 4eefc93a17c9141d57de93e02c347957176ef655 Mon Sep 17 00:00:00 2001 From: Oliver Duis Date: Sun, 6 Nov 2011 16:46:09 +0100 Subject: [PATCH] Rotate compensation on flip image see issue 1093 --- rtgui/toolpanelcoord.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index c8029a973..7cecc0b4f 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -216,10 +216,21 @@ void ToolPanelCoordinator::panelChanged (rtengine::ProcEvent event, const Glib:: if (!ipc) return; + int changeFlags=refreshmap[(int)event]; + ProcParams* params = ipc->beginUpdateParams (); for (int i=0; iwrite (params); + // Compensate rotation on flip + if (event==rtengine::EvCTHFlip || event==rtengine::EvCTVFlip) { + if (fabs(params->rotate.degree)>0.001) { + params->rotate.degree *= -1; + changeFlags |= refreshmap[(int)rtengine::EvROTDegree]; + rotate->read (params); + } + } + // some transformations make the crop change for convenience if (event==rtengine::EvCTHFlip) { crop->hFlipCrop (); @@ -240,7 +251,7 @@ void ToolPanelCoordinator::panelChanged (rtengine::ProcEvent event, const Glib:: resize->write (params); } - ipc->endUpdateParams (event); // starts the IPC processing + ipc->endUpdateParams (changeFlags); // starts the IPC processing hasChanged = true;