summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Castro <hcastro@collabora.com>2023-05-03 16:59:37 -0400
committerAndras Timar <andras.timar@collabora.com>2023-05-05 19:11:46 +0200
commit1b5df09a57479ecbf7b1e952f083191c56c61ab2 (patch)
tree13537f0c853c228eba1b3a7e9a05226c31c941d8
parent1947a80a7503e476089c6ab02fef0eec68ff12e3 (diff)
sc: fix freeze row/column panes
The UNO command state has changed to Point (row, tab) and Point (col, tab), Otherwise, if the row or column has the same value for all sheets, the state cache will not report any changes to the client side. Signed-off-by: Henry Castro <hcastro@collabora.com> Change-Id: I2080f5e664825d81c4fa4dbb2c5d782f188dae64 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151344 Tested-by: Andras Timar <andras.timar@collabora.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r--sc/sdi/scalc.sdi4
-rw-r--r--sc/source/ui/view/tabvwsha.cxx7
-rw-r--r--sfx2/source/control/unoctitm.cxx8
3 files changed, 11 insertions, 8 deletions
diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi
index d7087be5c056..9219de5964ff 100644
--- a/sc/sdi/scalc.sdi
+++ b/sc/sdi/scalc.sdi
@@ -1947,7 +1947,7 @@ SfxVoidItem FreezePanes SID_WINDOW_FIX
GroupId = SfxGroupId::View;
]
-SfxInt32Item FreezePanesColumn SID_WINDOW_FIX_COL
+SfxPointItem FreezePanesColumn SID_WINDOW_FIX_COL
[
AutoUpdate = FALSE,
@@ -1964,7 +1964,7 @@ SfxInt32Item FreezePanesColumn SID_WINDOW_FIX_COL
GroupId = SfxGroupId::View;
]
-SfxInt32Item FreezePanesRow SID_WINDOW_FIX_ROW
+SfxPointItem FreezePanesRow SID_WINDOW_FIX_ROW
[
AutoUpdate = FALSE,
diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx
index 39910e32cc39..5ce345e97fea 100644
--- a/sc/source/ui/view/tabvwsha.cxx
+++ b/sc/source/ui/view/tabvwsha.cxx
@@ -31,6 +31,7 @@
#include <svl/numformat.hxx>
#include <svl/zformat.hxx>
#include <svl/int64item.hxx>
+#include <svl/ptitem.hxx>
#include <svl/srchitem.hxx>
#include <svl/srchdefs.hxx>
#include <svl/stritem.hxx>
@@ -457,9 +458,11 @@ void ScTabViewShell::GetState( SfxItemSet& rSet )
case SID_WINDOW_FIX_COL:
case SID_WINDOW_FIX_ROW:
{
+ Point aPos;
bool bIsCol = (nWhich == SID_WINDOW_FIX_COL);
- sal_Int32 nFreezeIndex = rViewData.GetLOKSheetFreezeIndex(bIsCol);
- rSet.Put(SfxInt32Item(nWhich, nFreezeIndex));
+ aPos.setX(rViewData.GetLOKSheetFreezeIndex(bIsCol));
+ aPos.setY(rViewData.GetTabNo());
+ rSet.Put(SfxPointItem(nWhich, aPos));
}
break;
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index 30538c614772..ab63e7697c91 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -1135,9 +1135,7 @@ static void InterceptLOKStateChangeEvent(sal_uInt16 nSID, SfxViewFrame* pViewFra
aEvent.FeatureURL.Path == "StatusSelectionMode" ||
aEvent.FeatureURL.Path == "Signature" ||
aEvent.FeatureURL.Path == "SelectionMode" ||
- aEvent.FeatureURL.Path == "StatusBarFunc" ||
- aEvent.FeatureURL.Path == "FreezePanesColumn" ||
- aEvent.FeatureURL.Path == "FreezePanesRow")
+ aEvent.FeatureURL.Path == "StatusBarFunc")
{
sal_Int32 aInt32;
@@ -1214,7 +1212,9 @@ static void InterceptLOKStateChangeEvent(sal_uInt16 nSID, SfxViewFrame* pViewFra
aBuffer.append("disabled");
}
}
- else if (aEvent.FeatureURL.Path == "Position")
+ else if (aEvent.FeatureURL.Path == "Position" ||
+ aEvent.FeatureURL.Path == "FreezePanesColumn" ||
+ aEvent.FeatureURL.Path == "FreezePanesRow")
{
css::awt::Point aPoint;