include/vcl/customweld.hxx      |    1 +
 sfx2/source/control/charwin.cxx |    3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

New commits:
commit ce3e760f9155ac8d80f60054be036e862df7029a
Author:     Andreas Heinisch <andreas.heini...@yahoo.de>
AuthorDate: Thu Mar 17 21:14:10 2022 +0100
Commit:     Andreas Heinisch <andreas.heini...@yahoo.de>
CommitDate: Fri Mar 18 19:57:01 2022 +0100

    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.heini...@yahoo.de>
    Reviewed-by: Andreas Heinisch <andreas.heini...@yahoo.de>

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));

Reply via email to