sc/source/ui/view/gridwin.cxx | 26 +++++++++++++++++++------- vcl/source/window/cursor.cxx | 5 +++-- vcl/source/window/floatwin.cxx | 2 ++ 3 files changed, 24 insertions(+), 9 deletions(-)
New commits: commit 07db4e55e931e57ba1cc09ad1e3721e5cec3fbd0 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Wed Dec 18 07:30:14 2019 -0500 Commit: Dennis Francis <dennisfrancis...@gmail.com> CommitDate: Wed May 27 01:03:41 2020 +0530 vcl: don't use null window in FloatingWindow HitTest Change-Id: I551f31cf30c7a58642becebe0256684055d0703a Reviewed-on: https://gerrit.libreoffice.org/85383 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> (cherry picked from commit 65685bac09a4320602f4dda5151d247c5a83a75c) diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx index 223ed459e80c..5078616a8aa3 100644 --- a/vcl/source/window/floatwin.cxx +++ b/vcl/source/window/floatwin.cxx @@ -523,6 +523,8 @@ FloatingWindow* FloatingWindow::ImplFloatHitTest( vcl::Window* pReference, const // use the border window to have the exact position vcl::Window *pBorderWin = pWin->GetWindow( GetWindowType::Border ); + if (!pBorderWin) + break; // the top-left corner in output coordinates ie (0,0) tools::Rectangle devRect( pBorderWin->ImplOutputToUnmirroredAbsoluteScreenPixel( tools::Rectangle( Point(), pBorderWin->GetSizePixel()) ) ) ; commit d0f2f28c5a7f117f4589bcefaea959e838b6a7db Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Sun Feb 2 14:37:38 2020 -0500 Commit: Dennis Francis <dennisfrancis...@gmail.com> CommitDate: Wed May 27 00:19:56 2020 +0530 vcl: avoid accessing null member on unloading views Change-Id: If4e416c7257c861b9e13352b3329d9719b159e61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87830 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Aron Budea <aron.bu...@collabora.com> (cherry picked from commit 9ec3d637c1c99c729da67eafc375efce1cc7f026) diff --git a/vcl/source/window/cursor.cxx b/vcl/source/window/cursor.cxx index c67bc186026a..ff0e5886a695 100644 --- a/vcl/source/window/cursor.cxx +++ b/vcl/source/window/cursor.cxx @@ -193,8 +193,9 @@ void vcl::Cursor::ImplDoShow( bool bDrawDirect, bool bRestore ) // show the cursor, if there is an active window and the cursor // has been selected in this window pWindow = Application::GetFocusWindow(); - if ( !pWindow || (pWindow->mpWindowImpl->mpCursor != this) || pWindow->mpWindowImpl->mbInPaint - || !pWindow->mpWindowImpl->mpFrameData->mbHasFocus ) + if (!pWindow || !pWindow->mpWindowImpl || (pWindow->mpWindowImpl->mpCursor != this) + || pWindow->mpWindowImpl->mbInPaint + || !pWindow->mpWindowImpl->mpFrameData->mbHasFocus) pWindow = nullptr; } commit 255c208ffcad02b5719e4226c20d453e2d217cc6 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Wed Dec 18 22:32:07 2019 +0100 Commit: Dennis Francis <dennisfrancis...@gmail.com> CommitDate: Wed May 27 00:02:27 2020 +0530 lok: send "EMPTY" if the rect is empty for cell selection or fill It can happen that the selection or auto-fill rectangles are empty and if that's the case then we need to send "EMPTY" string and not the content of an empty rectangle (0, 0, -32768, -32768). This can happen for CELL_SELECTION_AREA or CELL_AUTO_FILL_AREA in calc. Change-Id: I9a60e3907a2ab8b0e0fd1a2ff81137fba6c8e9a3 Reviewed-on: https://gerrit.libreoffice.org/85437 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> (cherry picked from commit df6871286d7b769bc47554955213a2d727c47875) diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index b637c373d0d5..8360419b0bff 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -5959,7 +5959,10 @@ void ScGridWindow::UpdateKitSelection(const std::vector<tools::Rectangle>& rRect } ScTabViewShell* pViewShell = pViewData->GetViewShell(); - pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_SELECTION_AREA, aBoundingBox.toString().getStr()); + OString sBoundingBoxString = "EMPTY"; + if (!aBoundingBox.IsEmpty()) + sBoundingBoxString = aBoundingBox.toString(); + pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_SELECTION_AREA, sBoundingBoxString.getStr()); pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_TEXT_SELECTION, rectanglesToString(aLogicRects).getStr()); for (SfxViewShell* it = SfxViewShell::GetFirst(); it; @@ -6012,7 +6015,11 @@ void ScGridWindow::updateOtherKitSelections() const OString aRectsString = rectanglesToString(aOtherLogicRects); if (it == pViewShell) { - pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_SELECTION_AREA, aBoundingBox.toString().getStr()); + OString sBoundingBoxString = "EMPTY"; + if (!aBoundingBox.IsEmpty()) + sBoundingBoxString = aBoundingBox.toString(); + + pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_SELECTION_AREA, sBoundingBoxString.getStr()); pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_TEXT_SELECTION, aRectsString.getStr()); } else @@ -6032,13 +6039,18 @@ void updateLibreOfficeKitAutoFill(const ScViewData* pViewData, tools::Rectangle double nPPTX = pViewData->GetPPTX(); double nPPTY = pViewData->GetPPTY(); - // selection start handle - tools::Rectangle aLogicRectangle( - rRectangle.Left() / nPPTX, rRectangle.Top() / nPPTY, - rRectangle.Right() / nPPTX, rRectangle.Bottom() / nPPTY); + OString sRectangleString = "EMPTY"; + if (!rRectangle.IsEmpty()) + { + // selection start handle + tools::Rectangle aLogicRectangle( + rRectangle.Left() / nPPTX, rRectangle.Top() / nPPTY, + rRectangle.Right() / nPPTX, rRectangle.Bottom() / nPPTY); + sRectangleString = aLogicRectangle.toString(); + } ScTabViewShell* pViewShell = pViewData->GetViewShell(); - pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_AUTO_FILL_AREA, aLogicRectangle.toString().getStr()); + pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_AUTO_FILL_AREA, sRectangleString.getStr()); } } //end anonymous namespace _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits