sc/inc/document.hxx | 1 + sc/source/core/data/document10.cxx | 10 ++++++++++ sc/source/ui/view/gridwin.cxx | 4 ++-- sc/source/ui/view/gridwin4.cxx | 3 ++- sc/source/ui/view/tabvwsh4.cxx | 2 +- 5 files changed, 16 insertions(+), 4 deletions(-)
New commits: commit fb4ebf17467bb0f63e36db3913b7e25f48771b8d Author: Tomaž Vajngerl <[email protected]> AuthorDate: Thu Feb 19 13:41:08 2026 +0900 Commit: Miklos Vajna <[email protected]> CommitDate: Fri Feb 20 13:40:31 2026 +0100 sc: Fix edit box not show any content in a sheet view GetRefTabNo() holds the UI tab number (default sheet view tab), so when we compare it with this we need to use GetTabNumber() method. Change-Id: I3f6b755d5cadd3b24252e54973e150338262f73e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199679 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 1390d25ff476..c68d550fddfd 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -2436,6 +2436,7 @@ public: /** Is a holder of the sheet view data */ SC_DLLPUBLIC bool IsSheetViewHolder(SCTAB nTab) const; + SC_DLLPUBLIC SCTAB GetDefaultViewTableNumber(SCTAB nTab) const; private: ScDocument(const ScDocument& r) = delete; diff --git a/sc/source/core/data/document10.cxx b/sc/source/core/data/document10.cxx index c97caa193460..f144b0108144 100644 --- a/sc/source/core/data/document10.cxx +++ b/sc/source/core/data/document10.cxx @@ -1124,6 +1124,16 @@ bool ScDocument::IsSheetViewHolder(SCTAB nTab) const return false; } +SCTAB ScDocument::GetDefaultViewTableNumber(SCTAB nTab) const +{ + if (ScTable const* pTable = FetchTable(nTab)) + { + if (ScTable const* pDefaultTable = pTable->GetDefaultViewTable()) + return pDefaultTable->GetTab(); + } + return nTab; +} + std::pair<sc::SheetViewID, SCTAB> ScDocument::CreateNewSheetView(SCTAB nTab) { if (ScTable* pTable = FetchTable(nTab)) diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 860053c6dd64..2f1c35a5ce13 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -1977,7 +1977,7 @@ void ScGridWindow::HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventSta pSelEng->SetVisibleArea( tools::Rectangle(Point(), GetOutputSizePixel()) ); } - if (bEditMode && (mrViewData.GetRefTabNo() == mrViewData.CurrentTabForData())) + if (bEditMode && (mrViewData.GetRefTabNo() == mrViewData.GetTabNumber())) { Point aPos = rMEvt.GetPosPixel(); SCCOL nPosX; @@ -2954,7 +2954,7 @@ void ScGridWindow::MouseMove( const MouseEvent& rMEvt ) bool bEditMode = mrViewData.HasEditView(eWhich); //! Test if refMode dragging !!! - if ( bEditMode && (mrViewData.GetRefTabNo() == mrViewData.CurrentTabForData()) ) + if ( bEditMode && (mrViewData.GetRefTabNo() == mrViewData.GetTabNumber()) ) { Point aPos = rMEvt.GetPosPixel(); SCCOL nPosX; diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx index 2b2aed7c0120..4c8cc0202d08 100644 --- a/sc/source/ui/view/gridwin4.cxx +++ b/sc/source/ui/view/gridwin4.cxx @@ -715,6 +715,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI comphelper::LibreOfficeKit::Compat::scNoGridBackground); SCTAB nTab = aOutputData.mnTab; + nTab = rDoc.GetDefaultViewTableNumber(nTab); // convert to default view tab SCCOL nX1 = aOutputData.mnX1; SCROW nY1 = aOutputData.mnY1; SCCOL nX2 = aOutputData.mnX2; @@ -839,7 +840,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI aDrawingRectLogic = PixelToLogic(aDrawingRectPixel, aDrawMode); } - bool bInPlaceEditing = bEditMode && (mrViewData.GetRefTabNo() == mrViewData.CurrentTabForData()); + bool bInPlaceEditing = bEditMode && (mrViewData.GetRefTabNo() == mrViewData.GetTabNumber()); vcl::Cursor* pInPlaceCrsr = nullptr; bool bInPlaceVisCursor = false; if (bInPlaceEditing) diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx index 699d8aa90366..eaf1198b7c0f 100644 --- a/sc/source/ui/view/tabvwsh4.cxx +++ b/sc/source/ui/view/tabvwsh4.cxx @@ -1328,7 +1328,7 @@ bool ScTabViewShell::TabKeyInput(const KeyEvent& rKEvt) HideNoteMarker(); // note marker // don't do extra HideCursor/ShowCursor calls if EnterHandler will switch to a different sheet - bool bOnRefSheet = ( GetViewData().GetRefTabNo() == GetViewData().CurrentTabForData() ); + bool bOnRefSheet = ( GetViewData().GetRefTabNo() == GetViewData().GetTabNumber() ); bool bHideCursor = ( ( nCode == KEY_RETURN && bInPlace ) || nCode == KEY_TAB ) && bOnRefSheet; if (bHideCursor)
