summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/cctrl/checklistmenu.cxx3
-rw-r--r--sc/source/ui/view/gridwin.cxx6
2 files changed, 9 insertions, 0 deletions
diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx
index e735ad62f7e6..8383738967a5 100644
--- a/sc/source/ui/cctrl/checklistmenu.cxx
+++ b/sc/source/ui/cctrl/checklistmenu.cxx
@@ -1164,6 +1164,9 @@ void ScCheckListMenuWindow::selectCurrentMemberOnly(bool bSet)
if (!pEntry)
return;
maChecks->CheckEntry(pEntry, bSet );
+
+ // Make sure all checkboxes are invalidated.
+ Invalidate();
}
IMPL_LINK( ScCheckListMenuWindow, ButtonHdl, Button*, pBtn, void )
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index ea51223772ec..e043cfc4d857 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -645,6 +645,12 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow)
mpAutoFilterPopup.disposeAndClear();
mpAutoFilterPopup.reset(VclPtr<ScCheckListMenuWindow>::Create(this, pDoc));
+
+ // Avoid flicker when hovering over the menu items.
+ if (!IsNativeControlSupported(ControlType::Pushbutton, ControlPart::Focus))
+ // If NWF renders the focus rects itself, that breaks double-buffering.
+ mpAutoFilterPopup->RequestDoubleBuffering(true);
+
if (comphelper::LibreOfficeKit::isActive())
mpAutoFilterPopup->SetLOKNotifier(SfxViewShell::Current());
mpAutoFilterPopup->setOKAction(new AutoFilterAction(this, AutoFilterMode::Normal));