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)

Reply via email to