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;