sc/source/ui/view/gridwin.cxx | 16 +++++++++++++++- sfx2/source/sidebar/SidebarDockingWindow.cxx | 11 +++++++---- 2 files changed, 22 insertions(+), 5 deletions(-)
New commits: commit cd7539be13dee445c643e43547313c57e01f9391 Author: Dennis Francis <[email protected]> AuthorDate: Fri May 1 05:39:53 2020 +0530 Commit: Michael Meeks <[email protected]> CommitDate: Fri May 29 22:01:57 2020 +0100 lokit: fix autofilter window position... when client zoom is not 100%. The fix and the reasoning is same as that in lokit: fix validation dropdown's wrong position 3405f7f1b19738cad57b58259105ec87c1108466 Change-Id: I04837721d82b1e178cf5aa1130bbdaf77d13edae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93240 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Dennis Francis <[email protected]> diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 4e90c3c26127..4751dcb77b63 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -627,6 +627,7 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow) { SCTAB nTab = pViewData->GetTabNo(); ScDocument* pDoc = pViewData->GetDocument(); + bool bLOKActive = comphelper::LibreOfficeKit::isActive(); mpAutoFilterPopup.disposeAndClear(); int nColWidth = ScViewData::ToPixel(pDoc->GetColWidth(nCol, nTab), pViewData->GetPPTX()); @@ -637,7 +638,8 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow) // If NWF renders the focus rects itself, that breaks double-buffering. mpAutoFilterPopup->RequestDoubleBuffering(true); - if (comphelper::LibreOfficeKit::isActive()) + mpAutoFilterPopup.reset(VclPtr<ScCheckListMenuWindow>::Create(this, pDoc)); + if (bLOKActive) mpAutoFilterPopup->SetLOKNotifier(SfxViewShell::Current()); mpAutoFilterPopup->setOKAction(new AutoFilterAction(this, AutoFilterMode::Normal)); mpAutoFilterPopup->setPopupEndAction( @@ -649,6 +651,18 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow) long nSizeX = 0; long nSizeY = 0; pViewData->GetMergeSizePixel(nCol, nRow, nSizeX, nSizeY); + if (bLOKActive) + { + // Reverse the zoom factor from aPos and nSize[X|Y] + // before letting the autofilter window convert the to twips + // with no zoom information. + double fZoomX(pViewData->GetZoomX()); + double fZoomY(pViewData->GetZoomY()); + aPos.setX(aPos.getX() / fZoomX); + aPos.setY(aPos.getY() / fZoomY); + nSizeX = nSizeX / fZoomX; + nSizeY = nSizeY / fZoomY; + } tools::Rectangle aCellRect(OutputToScreenPixel(aPos), Size(nSizeX, nSizeY)); ScDBData* pDBData = pDoc->GetDBAtCursor(nCol, nRow, nTab, ScDBDataPortion::AREA); commit 1ebc370887a88bda4ffa7b213b281cb893b8ad4d Author: Ashod Nakashian <[email protected]> AuthorDate: Sun May 10 16:34:25 2020 -0400 Commit: Michael Meeks <[email protected]> CommitDate: Fri May 29 21:53:35 2020 +0100 sfx2: lok: separate sidebar notifications to mobile and desktop If we have two notifiers for mobile and non-mobile, we should check them separately, so we can support one without the other. Also, correctly check for null before dereferencing. Change-Id: I3f21d2f4d5d430b7c876aaf4e90d5b4e55df04ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93944 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Andras Timar <[email protected]> diff --git a/sfx2/source/sidebar/SidebarDockingWindow.cxx b/sfx2/source/sidebar/SidebarDockingWindow.cxx index 0544c998b8aa..8bb1f164c125 100644 --- a/sfx2/source/sidebar/SidebarDockingWindow.cxx +++ b/sfx2/source/sidebar/SidebarDockingWindow.cxx @@ -58,13 +58,12 @@ public: void Invoke() override { - auto pNotifier = m_rSidebarDockingWin.GetLOKNotifier(); - auto pMobileNotifier = SfxViewShell::Current(); - if (!pNotifier || (!pMobileNotifier && !comphelper::LibreOfficeKit::isActive())) + if (!comphelper::LibreOfficeKit::isActive()) return; try { + auto pMobileNotifier = SfxViewShell::Current(); if (pMobileNotifier && pMobileNotifier->isLOKMobilePhone()) { // Mobile. @@ -81,7 +80,11 @@ public: } // Notify the sidebar is created, and its LOKWindowId, which - // is needed on both Mobile and Desktop. + // is needed on mobile phones, tablets, and desktop. + auto pNotifier = m_rSidebarDockingWin.GetLOKNotifier(); + if (!pNotifier) + return; + const Point pos(m_rSidebarDockingWin.GetOutOffXPixel(), m_rSidebarDockingWin.GetOutOffYPixel()); const OString posMessage = pos.toString(); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
