use a ScopeGuard to restore the original map mode
in these cases the original map mode was *not* always restored, but the intent seems to be like the others that the mapmode should be the same on exit as on enter. Change-Id: Id7b668a9977c4c84df5234288baca8bd6f4232e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162307 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
This commit is contained in:
@@ -6192,10 +6192,16 @@ void ScGridWindow::DeleteCopySourceOverlay()
|
||||
|
||||
void ScGridWindow::UpdateCopySourceOverlay()
|
||||
{
|
||||
MapMode aDrawMode = GetDrawMapMode();
|
||||
MapMode aOldMode = GetMapMode();
|
||||
if ( aOldMode != aDrawMode )
|
||||
SetMapMode( aDrawMode );
|
||||
const MapMode aDrawMode = GetDrawMapMode();
|
||||
const MapMode aOldMode = GetMapMode();
|
||||
comphelper::ScopeGuard aMapModeGuard(
|
||||
[&aOldMode, &aDrawMode, this] {
|
||||
if (aOldMode != aDrawMode)
|
||||
SetMapMode(aOldMode);
|
||||
}
|
||||
);
|
||||
if (aOldMode != aDrawMode)
|
||||
SetMapMode(aDrawMode);
|
||||
|
||||
DeleteCopySourceOverlay();
|
||||
|
||||
@@ -6246,9 +6252,6 @@ void ScGridWindow::UpdateCopySourceOverlay()
|
||||
xOverlayManager->add(*pDashedBorder);
|
||||
mpOOSelectionBorder->append(std::move(pDashedBorder));
|
||||
}
|
||||
|
||||
if ( aOldMode != aDrawMode )
|
||||
SetMapMode( aOldMode );
|
||||
}
|
||||
|
||||
static std::vector<tools::Rectangle> convertPixelToLogical(
|
||||
@@ -6439,10 +6442,16 @@ void ScGridWindow::UpdateCursorOverlay()
|
||||
{
|
||||
ScDocument& rDoc = mrViewData.GetDocument();
|
||||
|
||||
MapMode aDrawMode = GetDrawMapMode();
|
||||
MapMode aOldMode = GetMapMode();
|
||||
if ( aOldMode != aDrawMode )
|
||||
SetMapMode( aDrawMode );
|
||||
const MapMode aDrawMode = GetDrawMapMode();
|
||||
const MapMode aOldMode = GetMapMode();
|
||||
comphelper::ScopeGuard aMapModeGuard(
|
||||
[&aOldMode, &aDrawMode, this] {
|
||||
if (aOldMode != aDrawMode)
|
||||
SetMapMode(aOldMode);
|
||||
}
|
||||
);
|
||||
if (aOldMode != aDrawMode)
|
||||
SetMapMode(aDrawMode);
|
||||
|
||||
// Existing OverlayObjects may be transformed in later versions.
|
||||
// For now, just re-create them.
|
||||
@@ -6601,9 +6610,6 @@ void ScGridWindow::UpdateCursorOverlay()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( aOldMode != aDrawMode )
|
||||
SetMapMode( aOldMode );
|
||||
}
|
||||
|
||||
void ScGridWindow::GetCellSelection(std::vector<tools::Rectangle>& rLogicRects)
|
||||
@@ -6706,9 +6712,6 @@ void ScGridWindow::UpdateSelectionOverlay()
|
||||
ScInputHandler::SendReferenceMarks(pViewShell, aReferenceMarks);
|
||||
}
|
||||
}
|
||||
|
||||
if ( aOldMode != aDrawMode )
|
||||
SetMapMode( aOldMode );
|
||||
}
|
||||
|
||||
void ScGridWindow::UpdateHighlightOverlay()
|
||||
@@ -6774,10 +6777,16 @@ void ScGridWindow::DeleteAutoFillOverlay()
|
||||
|
||||
void ScGridWindow::UpdateAutoFillOverlay()
|
||||
{
|
||||
MapMode aDrawMode = GetDrawMapMode();
|
||||
MapMode aOldMode = GetMapMode();
|
||||
if ( aOldMode != aDrawMode )
|
||||
SetMapMode( aDrawMode );
|
||||
const MapMode aDrawMode = GetDrawMapMode();
|
||||
const MapMode aOldMode = GetMapMode();
|
||||
comphelper::ScopeGuard aMapModeGuard(
|
||||
[&aOldMode, &aDrawMode, this] {
|
||||
if (aOldMode != aDrawMode)
|
||||
SetMapMode(aOldMode);
|
||||
}
|
||||
);
|
||||
if (aOldMode != aDrawMode)
|
||||
SetMapMode(aDrawMode);
|
||||
|
||||
DeleteAutoFillOverlay();
|
||||
|
||||
@@ -6856,9 +6865,6 @@ void ScGridWindow::UpdateAutoFillOverlay()
|
||||
mpOOAutoFill.reset(new sdr::overlay::OverlayObjectList);
|
||||
mpOOAutoFill->append(std::move(pOverlay));
|
||||
}
|
||||
|
||||
if ( aOldMode != aDrawMode )
|
||||
SetMapMode( aOldMode );
|
||||
}
|
||||
|
||||
void ScGridWindow::DeleteDragRectOverlay()
|
||||
|
||||
Reference in New Issue
Block a user