[Libreoffice-commits] core.git: include/vcl vcl/source
Caolán McNamara
caolanm at redhat.com
Fri Jul 12 03:41:17 PDT 2013
include/vcl/layout.hxx | 1 +
vcl/source/window/layout.cxx | 19 +++++++++++++++++++
2 files changed, 20 insertions(+)
New commits:
commit 479bba2cdcda8dbd86861ea62c8c25bfef633148
Author: Caolán McNamara <caolanm at redhat.com>
Date: Fri Jul 12 11:40:27 2013 +0100
Related: fdo#66817 ensure VclExpander label is mnemonic for disclosure button
Change-Id: I11c9a35e3d50a827127e4542a40f6f29580d4e8b
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index ede844e..f72b93a 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -516,6 +516,7 @@ public:
virtual Window *get_child();
virtual const Window *get_child() const;
virtual bool set_property(const OString &rKey, const OString &rValue);
+ virtual void StateChanged(StateChangedType nType);
protected:
virtual Size calculateRequisition() const;
virtual void setAllocation(const Size &rAllocation);
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index 2f1d404..1794671 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -1468,6 +1468,25 @@ bool VclExpander::set_property(const OString &rKey, const OString &rValue)
return true;
}
+void VclExpander::StateChanged(StateChangedType nType)
+{
+ VclBin::StateChanged( nType );
+
+ if (nType == STATE_CHANGE_INITSHOW)
+ {
+ //The label widget is the last (of two) children
+ Window *pChild = get_child();
+ WindowImpl* pWindowImpl = ImplGetWindowImpl();
+ Window *pLabel = pChild != pWindowImpl->mpLastChild ? pWindowImpl->mpLastChild : NULL;
+ if (pLabel && pLabel->GetType() == WINDOW_FIXEDTEXT)
+ {
+ FixedText *pLabelWidget = static_cast<FixedText*>(pLabel);
+ if (!pLabelWidget->get_mnemonic_widget())
+ pLabelWidget->set_mnemonic_widget(&m_aDisclosureButton);
+ }
+ }
+}
+
IMPL_LINK( VclExpander, ClickHdl, DisclosureButton*, pBtn )
{
Window *pChild = get_child();
More information about the Libreoffice-commits
mailing list