You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
From 1aa560ce6516556703e2ece183354f606b602897 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
Date: Wed, 29 Oct 2014 17:12:40 +0000
|
|
Subject: [PATCH] Resolves: rhbz#1146169 a11y frames label dies before frame
|
|
|
|
Change-Id: I2bc45dcb92b8e68bf4ae4df72c0fbd4e3b535604
|
|
---
|
|
include/vcl/layout.hxx | 1 +
|
|
vcl/source/window/layout.cxx | 13 ++++++++++++-
|
|
2 files changed, 13 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
|
|
index d758d63..8bad8e7 100644
|
|
--- a/include/vcl/layout.hxx
|
|
+++ b/include/vcl/layout.hxx
|
|
@@ -458,6 +458,7 @@ private:
|
|
private:
|
|
friend class VclBuilder;
|
|
void designate_label(Window *pWindow);
|
|
+ DECL_LINK(WindowEventListener, VclSimpleEvent*);
|
|
public:
|
|
VclFrame(Window *pParent)
|
|
: VclBin(pParent)
|
|
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
|
|
index 06f387b..6db0f15 100644
|
|
--- a/vcl/source/window/layout.cxx
|
|
+++ b/vcl/source/window/layout.cxx
|
|
@@ -1338,10 +1338,21 @@ void VclFrame::setAllocation(const Size &rAllocation)
|
|
setLayoutAllocation(*pChild, aChildPos, aAllocation);
|
|
}
|
|
|
|
+IMPL_LINK(VclFrame, WindowEventListener, VclSimpleEvent*, pEvent)
|
|
+{
|
|
+ if (pEvent && pEvent->GetId() == VCLEVENT_OBJECT_DYING)
|
|
+ designate_label(NULL);
|
|
+ return 0;
|
|
+}
|
|
+
|
|
void VclFrame::designate_label(Window *pWindow)
|
|
{
|
|
- assert(pWindow->GetParent() == this);
|
|
+ assert(!pWindow || pWindow->GetParent() == this);
|
|
+ if (m_pLabel)
|
|
+ m_pLabel->RemoveEventListener(LINK(this, VclFrame, WindowEventListener));
|
|
m_pLabel = pWindow;
|
|
+ if (m_pLabel)
|
|
+ m_pLabel->AddEventListener(LINK(this, VclFrame, WindowEventListener));
|
|
}
|
|
|
|
const Window *VclFrame::get_label_widget() const
|
|
--
|
|
1.9.3
|
|
|