Kaydet (Commit) 974d65ae authored tarafından Michael Stahl's avatar Michael Stahl

vcl: [loplugin:badstatics] aDocumentFocusListener

Move it into class GtkSalData; have to use 2 variables because the class
is only defined in atkutil.cxx but the ~GtkSalData is in gtkdata.cxx.

Change-Id: I3b12f02a1a5454f39206cbd0fe224d3f08a44c73
Reviewed-on: https://gerrit.libreoffice.org/42673Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMichael Stahl <mstahl@redhat.com>
üst 1de71f95
......@@ -35,7 +35,10 @@
#include <list>
namespace com { namespace sun { namespace star { namespace accessibility { class XAccessibleEventListener; } } } }
class GtkSalDisplay;
class DocumentFocusListener;
inline GdkWindow * widget_get_window(GtkWidget *widget)
{
......@@ -99,10 +102,15 @@ class GtkSalData : public GenericUnixSalData
osl::Condition m_aDispatchCondition;
css::uno::Any m_aException;
css::uno::Reference<css::accessibility::XAccessibleEventListener> m_xDocumentFocusListener;
DocumentFocusListener * m_pDocumentFocusListener;
public:
GtkSalData( SalInstance *pInstance );
virtual ~GtkSalData() override;
DocumentFocusListener & GetDocumentFocusListener();
void Init();
virtual void Dispose() override;
......
......@@ -38,6 +38,7 @@
#include <vcl/menu.hxx>
#include <vcl/toolbox.hxx>
#include <unx/gtk/gtkdata.hxx>
#include "atkwrapper.hxx"
#include "atkutil.hxx"
......@@ -512,10 +513,22 @@ WindowList g_aWindowList;
}
DocumentFocusListener & GtkSalData::GetDocumentFocusListener()
{
if (!m_pDocumentFocusListener)
{
m_pDocumentFocusListener = new DocumentFocusListener;
m_xDocumentFocusListener.set(m_pDocumentFocusListener);
}
return *m_pDocumentFocusListener;
}
static void handle_get_focus(::VclWindowEvent const * pEvent)
{
static rtl::Reference< DocumentFocusListener > aDocumentFocusListener =
new DocumentFocusListener;
GtkSalData *const pSalData(GetGtkSalData());
assert(pSalData);
DocumentFocusListener & rDocumentFocusListener(pSalData->GetDocumentFocusListener());
vcl::Window *pWindow = pEvent->GetWindow();
......@@ -566,7 +579,7 @@ static void handle_get_focus(::VclWindowEvent const * pEvent)
g_aWindowList.list.insert(pWindow);
try
{
aDocumentFocusListener->attachRecursive(xAccessible, xContext, xStateSet);
rDocumentFocusListener.attachRecursive(xAccessible, xContext, xStateSet);
}
catch (const uno::Exception&)
{
......
......@@ -417,6 +417,7 @@ GtkSalData::GtkSalData( SalInstance *pInstance )
: GenericUnixSalData( SAL_DATA_GTK, pInstance )
, m_aDispatchMutex()
, m_aDispatchCondition()
, m_pDocumentFocusListener(nullptr)
{
m_pUserEvent = nullptr;
}
......
......@@ -388,6 +388,7 @@ GtkSalData::GtkSalData( SalInstance *pInstance )
: GenericUnixSalData( SAL_DATA_GTK3, pInstance )
, m_aDispatchMutex()
, m_aDispatchCondition()
, m_pDocumentFocusListener(nullptr)
{
m_pUserEvent = nullptr;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment