summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTünde Tóth <toth.tunde@nisz.hu>2021-04-13 14:16:26 +0200
committerLászló Németh <nemeth@numbertext.org>2021-04-17 13:38:24 +0200
commitb7d8ee083230964de2e1580c4639ee4cd307207f (patch)
treed59ece22bb168d6cc7419861552562a6a3ca5013
parent1d5b9a3aecec35bb9ec0102557b33409048eecb0 (diff)
tdf#93664 sc: fix filtering clicking on cells merged horizontally
Click on the filter button of cells merged horizontally showed the "Empty" entry instead of the filter list. Pressing Alt-Down (.uno:DataSelect) worked correctly here, so only mouse handling was broken. This was a regression from commit aaab3a79dfd762a64fa4c1d19dd29ae46c0b9dd0 "Resolves: #i120017, filter button is not shown in merged cell" (which fixed filtering clicking on cells merged vertically). Partial revert of that commit sets the correct first column in the merged range again instead of the last one. Change-Id: I83724f18580134868867bc829cad0739f0932733 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114050 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
-rw-r--r--sc/source/ui/view/gridwin.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 75ae937c22a5..f6edfe5909de 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -1717,14 +1717,17 @@ void ScGridWindow::HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventSta
SCCOL nRealPosX;
SCROW nRealPosY;
mrViewData.GetPosFromPixel( aPos.X(), aPos.Y(), eWhich, nRealPosX, nRealPosY, false );//the real row/col
- const ScMergeFlagAttr* pRealPosAttr = rDoc.GetAttr( nRealPosX, nRealPosY, nTab, ATTR_MERGE_FLAG );
- const ScMergeFlagAttr* pAttr = rDoc.GetAttr( nPosX, nPosY, nTab, ATTR_MERGE_FLAG );
+
+ // show in the merged cells the filter of the first cell (nPosX instead of nRealPosX)
+ const ScMergeFlagAttr* pRealPosAttr = rDoc.GetAttr(nPosX, nRealPosY, nTab, ATTR_MERGE_FLAG);
if( pRealPosAttr->HasAutoFilter() )
{
SC_MOD()->InputEnterHandler();
- if (DoAutoFilterButton( nRealPosX, nRealPosY, rMEvt))
+ if (DoAutoFilterButton(nPosX, nRealPosY, rMEvt))
return;
}
+
+ const ScMergeFlagAttr* pAttr = rDoc.GetAttr(nPosX, nPosY, nTab, ATTR_MERGE_FLAG);
if (pAttr->HasAutoFilter())
{
if (DoAutoFilterButton(nPosX, nPosY, rMEvt))