diff options
author | Tünde Tóth <toth.tunde@nisz.hu> | 2021-04-13 14:16:26 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2021-04-17 13:38:24 +0200 |
commit | b7d8ee083230964de2e1580c4639ee4cd307207f (patch) | |
tree | d59ece22bb168d6cc7419861552562a6a3ca5013 | |
parent | 1d5b9a3aecec35bb9ec0102557b33409048eecb0 (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.cxx | 9 |
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)) |