Rotate compensation on flip image

see issue 1093
This commit is contained in:
Oliver Duis
2011-11-06 16:46:09 +01:00
parent 02f4824450
commit 4eefc93a17

View File

@@ -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; i<toolPanels.size(); i++)
toolPanels[i]->write (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;