summaryrefslogtreecommitdiff
path: root/sd/source/ui/annotations/annotationwindow.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-05-24 15:22:39 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-05-24 15:24:55 +0100
commit26333736f103342344b9b0fa20a3a04d426fac4f (patch)
tree9936dccf0408950932c26d91be13d301d7da6515 /sd/source/ui/annotations/annotationwindow.cxx
parentada1f674902467940e9b4d13fc8100690d7e07d8 (diff)
Resolves: tdf#99712 Crash in impress annotation context menu
which is an issue since... commit dd46727b99d4bb5135451aa7e5e1bdb197373843 Author: Caolán McNamara <caolanm@redhat.com> Date: Tue Apr 5 15:27:38 2016 +0100 Resolves; tdf#87120 no keyboard navigation inside floating windows lets try and treat these the same as we do normal toplevels like dialogs if they popup with GrabFocus. This way focus can be set on widgets inside the floating windows, and so keyboard traversal of widgets etc all works. which allows keyboard focus inside floating windows to allow a11y keyboard navigation inside them without jumping through difficult hoops. Change-Id: I6024c048e80d09a70cb3a628378975248a55d6b6
Diffstat (limited to 'sd/source/ui/annotations/annotationwindow.cxx')
-rw-r--r--sd/source/ui/annotations/annotationwindow.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/sd/source/ui/annotations/annotationwindow.cxx b/sd/source/ui/annotations/annotationwindow.cxx
index 19a4729fbe7c..0e59a38b8f8a 100644
--- a/sd/source/ui/annotations/annotationwindow.cxx
+++ b/sd/source/ui/annotations/annotationwindow.cxx
@@ -281,7 +281,6 @@ AnnotationWindow::AnnotationWindow( AnnotationManagerImpl& rManager, DrawDocShel
, mbReadonly(pDocShell->IsReadOnly())
, mbProtected(false)
, mbMouseOverButton(false)
-, mbPopupMenuActive(false)
, mpTextWindow(nullptr)
, mpMeta(nullptr)
{
@@ -610,6 +609,11 @@ void AnnotationWindow::SetColor()
void AnnotationWindow::Deactivate()
{
+ //tdf#99388 and tdf#99712, don't deactivate if we lose focus because of our
+ //own popup
+ if (mrManager.getPopupMenuActive())
+ return;
+
Reference< XAnnotation > xAnnotation( mxAnnotation );
// write changed text back to annotation