summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Heinisch <andreas.heinisch@yahoo.de>2022-03-17 21:14:10 +0100
committerAndras Timar <andras.timar@collabora.com>2022-03-25 15:55:11 +0100
commit6c90a4f35b6655b382e4e5a4400fce318870b9fa (patch)
treee383b34e090f7081ee2c1779589eeb0b76efd9f5
parent5feb766541d8817cdab4af5da4c9c40b48771840 (diff)
tdf#111924 - Special characters: don't lose focus on context menu
Don't lose focus on the favorite or recently used items in the special characters dialog when right-clicking them to show the context menu. Change-Id: Iaedc4bbc6fb627591b9c0cd9a2c44940312eeb1d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131721 Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de> Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de> (cherry picked from commit ce3e760f9155ac8d80f60054be036e862df7029a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131858 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--include/vcl/customweld.hxx1
-rw-r--r--sfx2/source/control/charwin.cxx3
2 files changed, 3 insertions, 1 deletions
diff --git a/include/vcl/customweld.hxx b/include/vcl/customweld.hxx
index a96d8c5522fe..e37555b36777 100644
--- a/include/vcl/customweld.hxx
+++ b/include/vcl/customweld.hxx
@@ -65,6 +65,7 @@ public:
virtual void Hide() { m_pDrawingArea->hide(); }
void GrabFocus() { m_pDrawingArea->grab_focus(); }
bool HasFocus() const { return m_pDrawingArea->has_focus(); }
+ bool HasChildFocus() const { return m_pDrawingArea->has_child_focus(); }
bool IsVisible() const { return m_pDrawingArea->get_visible(); }
bool IsReallyVisible() const { return m_pDrawingArea->is_visible(); }
bool IsEnabled() const { return m_pDrawingArea->get_sensitive(); }
diff --git a/sfx2/source/control/charwin.cxx b/sfx2/source/control/charwin.cxx
index eb5b5662a817..6b7c8cd8b514 100644
--- a/sfx2/source/control/charwin.cxx
+++ b/sfx2/source/control/charwin.cxx
@@ -189,7 +189,8 @@ void SvxCharView::Paint(vcl::RenderContext& rRenderContext, const tools::Rectang
aPoint.setX(-aBoundRect.Left() + (aSize.Width() - aBoundRect.GetWidth()) / 2);
}
- if (HasFocus())
+ // tdf#111924 - don't lose focus on context menu
+ if (HasFocus() || HasChildFocus())
{
rRenderContext.SetFillColor(aHighlightColor);
rRenderContext.DrawRect(tools::Rectangle(Point(0, 0), aSize));