sw/qa/uitest/ui/frmdlg/frmdlg.py   |   12 ++++++++++++
 sw/source/ui/frmdlg/frmpage.cxx    |    1 -
 sw/source/uibase/shells/textsh.cxx |    6 ++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

New commits:
commit 8d973c5b9405bfa6964d3dfebd0017fd60ec3eca
Author:     Miklos Vajna <vmik...@collabora.com>
AuthorDate: Fri Nov 10 10:17:16 2023 +0100
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Fri Nov 10 13:49:10 2023 +0100

    sw floattable, insert UI: default to at-char for non-split flys
    
    Inserting new images defaulted to the at-char anchor type, but inserting
    a new frame defaulted to at-para, which is inconsistent. This is now more
    visible, since LOK exposes the insert frame dialog.
    
    An additional problem is that the LOK case hides anything other than
    at-char and as-char in the frame properties dialog since commit
    4154d281fbecaadf6cd118c00cc6cff929e339a4 (sw lok: hide UI to set
    Word-incompatible anchor types, 2019-07-05), which was intended for
    images, but also affects text frames as well. But floating tables want
    to-para anchored frames to be able to split.
    
    Fix the problem by defaulting to at-char anchoring, unless we deal with
    floating tables.
    
    And show the to-para anchor widget in the LOK case again, given that all
    of to-para, to-char and as-char have their use-cases, even when editing
    Word documents.
    
    Change-Id: I89b0973183a750d86f56e0cccd7b0fbcb3dc070d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159261
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    Tested-by: Jenkins

diff --git a/sw/qa/uitest/ui/frmdlg/frmdlg.py b/sw/qa/uitest/ui/frmdlg/frmdlg.py
index 4a438895572b..bbb9d9a270dd 100644
--- a/sw/qa/uitest/ui/frmdlg/frmdlg.py
+++ b/sw/qa/uitest/ui/frmdlg/frmdlg.py
@@ -98,4 +98,16 @@ class Test(UITestCase):
             # inserted first, only then it could be marked as "split allowed".
             self.assertEqual(fly_split_visible, True)
 
+    def test_insert_simple_frame(self):
+        # Given a Writer document:
+        with self.ui_test.create_doc_in_start_center("writer") as xComponent:
+            # When inserting a simple text frame (not a floating table):
+            with 
self.ui_test.execute_dialog_through_command(".uno:InsertFrame") as xDialog:
+                to_char = xDialog.getChild("tochar")
+                to_char_enabled = get_state_as_dict(to_char)["Checked"] == 
"true"
+            # Then make sure the anchor type is to-char, matching the default 
anchor for images:
+            # This failed, text frames defaulted to to-para, images defaulted 
to to-char, which was
+            # inconsistent.
+            self.assertTrue(to_char_enabled)
+
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sw/source/ui/frmdlg/frmpage.cxx b/sw/source/ui/frmdlg/frmpage.cxx
index 911df55f66d7..bdf1c90291ff 100644
--- a/sw/source/ui/frmdlg/frmpage.cxx
+++ b/sw/source/ui/frmdlg/frmpage.cxx
@@ -721,7 +721,6 @@ SwFramePage::SwFramePage(weld::Container* pPage, 
weld::DialogController* pContro
     if (comphelper::LibreOfficeKit::isActive())
     {
         m_xAnchorAtPageRB->hide();
-        m_xAnchorAtParaRB->hide();
         m_xAnchorAtFrameRB->hide();
     }
 }
diff --git a/sw/source/uibase/shells/textsh.cxx 
b/sw/source/uibase/shells/textsh.cxx
index c9e0e8a4d6f9..d0c9aabc979f 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -918,6 +918,12 @@ SfxItemSet 
SwTextShell::CreateInsertFrameItemSet(SwFlyFrameAttrMgr& rMgr)
     aBoxInfo.SetDefDist(rBox.GetDistance(SvxBoxItemLine::LEFT));
     aSet.Put(aBoxInfo);
 
+    if (!SwFlyFrameAttrMgr::SingleTableSelected(GetShell()))
+    {
+        SwFormatAnchor aAnchor(RndStdIds::FLY_AT_CHAR);
+        aSet.Put(aAnchor);
+    }
+
     return aSet;
 }
 

Reply via email to