summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-03-05 16:13:19 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-03-05 21:57:42 +0100
commit9ffd28c32a301141a26e41ddd0cf485a562c83bb (patch)
tree7853d7350feb89c70019226411c58874090e0f37
parent74b5218b68469c29f93436b308e85a20140ce9dd (diff)
use container_focus_changed instead of toplevel_focus_changed
seeing as its the same thing, but available one level of inheritance down Change-Id: Ieedbf2bc8cea09cdafff1514eac5c35b85c2fdd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112023 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--include/sfx2/basedlgs.hxx2
-rw-r--r--include/vcl/weld.hxx9
-rw-r--r--reportdesign/source/ui/dlg/AddField.cxx4
-rw-r--r--reportdesign/source/ui/dlg/Navigator.cxx5
-rw-r--r--reportdesign/source/ui/inc/AddField.hxx2
-rw-r--r--reportdesign/source/ui/inc/Navigator.hxx2
-rw-r--r--sfx2/source/dialog/basedlgs.cxx4
-rw-r--r--vcl/inc/salvtables.hxx4
-rw-r--r--vcl/source/app/salvtables.cxx17
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx31
10 files changed, 11 insertions, 69 deletions
diff --git a/include/sfx2/basedlgs.hxx b/include/sfx2/basedlgs.hxx
index 92da31ed12af..2d32406e4de9 100644
--- a/include/sfx2/basedlgs.hxx
+++ b/include/sfx2/basedlgs.hxx
@@ -37,7 +37,7 @@ class SFX2_DLLPUBLIC SfxDialogController : public weld::GenericDialogController
private:
DECL_DLLPRIVATE_STATIC_LINK(SfxDialogController, InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*);
- DECL_DLLPRIVATE_LINK(FocusChangeHdl, weld::Widget&, void);
+ DECL_DLLPRIVATE_LINK(FocusChangeHdl, weld::Container&, void);
public:
SfxDialogController(weld::Widget* pParent, const OUString& rUIFile, const OString& rDialogId);
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index a42dd09aad5d..a5590b73f6ae 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -483,9 +483,6 @@ class VCL_DLLPUBLIC Window : virtual public Container
{
protected:
Link<Widget&, bool> m_aHelpRequestHdl;
- Link<Widget&, void> m_aTopLevelFocusChangedHdl;
-
- void signal_toplevel_focus_changed() { m_aTopLevelFocusChangedHdl.Call(*this); }
public:
virtual void set_title(const OUString& rTitle) = 0;
@@ -509,6 +506,8 @@ public:
// off again.
virtual void set_centered_on_parent(bool bTrackGeometryRequests) = 0;
// returns whether the widget that has focus is within this Window
+ // (its very possible to move this to weld::Container if that becomes
+ // desirable)
virtual bool has_toplevel_focus() const = 0;
virtual void present() = 0;
virtual void set_window_state(const OString& rStr) = 0;
@@ -517,10 +516,6 @@ public:
virtual css::uno::Reference<css::awt::XWindow> GetXWindow() = 0;
void connect_help(const Link<Widget&, bool>& rLink) { m_aHelpRequestHdl = rLink; }
- virtual void connect_toplevel_focus_changed(const Link<Widget&, void>& rLink)
- {
- m_aTopLevelFocusChangedHdl = rLink;
- }
virtual SystemEnvData get_system_data() const = 0;
diff --git a/reportdesign/source/ui/dlg/AddField.cxx b/reportdesign/source/ui/dlg/AddField.cxx
index e7e8e1b38c18..80c868eb5fd9 100644
--- a/reportdesign/source/ui/dlg/AddField.cxx
+++ b/reportdesign/source/ui/dlg/AddField.cxx
@@ -77,7 +77,7 @@ OAddFieldWindow::OAddFieldWindow(weld::Window* pParent, const uno::Reference< be
m_xListBox->enable_drag_source(xHelper, DND_ACTION_COPYMOVE | DND_ACTION_LINK);
m_xListBox->connect_drag_begin(LINK(this, OAddFieldWindow, DragBeginHdl));
- m_xDialog->connect_toplevel_focus_changed(LINK(this, OAddFieldWindow, FocusChangeHdl));
+ m_xDialog->connect_container_focus_changed(LINK(this, OAddFieldWindow, FocusChangeHdl));
m_xDialog->set_help_id(HID_RPT_FIELD_SEL_WIN);
@@ -117,7 +117,7 @@ OAddFieldWindow::~OAddFieldWindow()
m_pContainerListener->dispose();
}
-IMPL_LINK_NOARG(OAddFieldWindow, FocusChangeHdl, weld::Widget&, void)
+IMPL_LINK_NOARG(OAddFieldWindow, FocusChangeHdl, weld::Container&, void)
{
if (m_xDialog->has_toplevel_focus())
m_xListBox->grab_focus();
diff --git a/reportdesign/source/ui/dlg/Navigator.cxx b/reportdesign/source/ui/dlg/Navigator.cxx
index ccda43cd6e6b..74b06b080cf3 100644
--- a/reportdesign/source/ui/dlg/Navigator.cxx
+++ b/reportdesign/source/ui/dlg/Navigator.cxx
@@ -818,14 +818,14 @@ ONavigator::ONavigator(weld::Window* pParent, OReportController& rController)
m_pImpl.reset(new ONavigatorImpl(rController, *m_xBuilder));
m_pImpl->m_xNavigatorTree->grab_focus();
- m_xDialog->connect_toplevel_focus_changed(LINK(this, ONavigator, FocusChangeHdl));
+ m_xDialog->connect_container_focus_changed(LINK(this, ONavigator, FocusChangeHdl));
}
ONavigator::~ONavigator()
{
}
-IMPL_LINK_NOARG(ONavigator, FocusChangeHdl, weld::Widget&, void)
+IMPL_LINK_NOARG(ONavigator, FocusChangeHdl, weld::Container&, void)
{
if (m_xDialog->has_toplevel_focus())
m_pImpl->m_xNavigatorTree->grab_focus();
@@ -833,5 +833,4 @@ IMPL_LINK_NOARG(ONavigator, FocusChangeHdl, weld::Widget&, void)
} // rptui
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/reportdesign/source/ui/inc/AddField.hxx b/reportdesign/source/ui/inc/AddField.hxx
index db255fd4fd54..5a388d49ab29 100644
--- a/reportdesign/source/ui/inc/AddField.hxx
+++ b/reportdesign/source/ui/inc/AddField.hxx
@@ -69,7 +69,7 @@ class OAddFieldWindow : public weld::GenericDialogController
DECL_LINK( OnSelectHdl, weld::TreeView&, void );
DECL_LINK( DragBeginHdl, bool&, bool );
DECL_LINK( OnSortAction, const OString&, void );
- DECL_LINK( FocusChangeHdl, weld::Widget&, void );
+ DECL_LINK( FocusChangeHdl, weld::Container&, void );
void addToList(const css::uno::Sequence<OUString>& rEntries);
void addToList(const css::uno::Reference<css::container::XNameAccess>& i_xColumns);
diff --git a/reportdesign/source/ui/inc/Navigator.hxx b/reportdesign/source/ui/inc/Navigator.hxx
index 5c28d240138c..eed3e529c00d 100644
--- a/reportdesign/source/ui/inc/Navigator.hxx
+++ b/reportdesign/source/ui/inc/Navigator.hxx
@@ -31,7 +31,7 @@ namespace rptui
ONavigator(const ONavigator&) = delete;
void operator =(const ONavigator&) = delete;
- DECL_LINK(FocusChangeHdl, weld::Widget&, void);
+ DECL_LINK(FocusChangeHdl, weld::Container&, void);
public:
ONavigator(weld::Window* pParent, OReportController& rController);
diff --git a/sfx2/source/dialog/basedlgs.cxx b/sfx2/source/dialog/basedlgs.cxx
index c777ebed9c76..fcebc6ea041c 100644
--- a/sfx2/source/dialog/basedlgs.cxx
+++ b/sfx2/source/dialog/basedlgs.cxx
@@ -108,7 +108,7 @@ void SfxModelessDialogController::Init(SfxBindings *pBindinx, SfxChildWindow *pC
If a ModelessDialog is enabled its ViewFrame will be activated.
This is necessary by PluginInFrames.
*/
-IMPL_LINK_NOARG(SfxDialogController, FocusChangeHdl, weld::Widget&, void)
+IMPL_LINK_NOARG(SfxDialogController, FocusChangeHdl, weld::Container&, void)
{
if (m_xDialog->has_toplevel_focus())
Activate();
@@ -207,7 +207,7 @@ SfxDialogController::SfxDialogController(weld::Widget* pParent, const OUString&
&& SfxViewShell::Current()->isLOKMobilePhone())
{
m_xDialog->SetInstallLOKNotifierHdl(LINK(this, SfxDialogController, InstallLOKNotifierHdl));
- m_xDialog->connect_toplevel_focus_changed(LINK(this, SfxDialogController, FocusChangeHdl));
+ m_xDialog->connect_container_focus_changed(LINK(this, SfxDialogController, FocusChangeHdl));
}
IMPL_STATIC_LINK_NOARG(SfxDialogController, InstallLOKNotifierHdl, void*, vcl::ILibreOfficeKitNotifier*)
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index badc2ff188fd..02213a60f18e 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -470,10 +470,6 @@ public:
virtual SystemEnvData get_system_data() const override;
- virtual void connect_toplevel_focus_changed(const Link<weld::Widget&, void>& rLink) override;
-
- virtual void HandleEventListener(VclWindowEvent& rEvent) override;
-
virtual weld::ScreenShotCollection collect_screenshot_data() override;
virtual VclPtr<VirtualDevice> screenshot() override;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 81ceba3ccd11..18789ee73a77 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -1435,23 +1435,6 @@ OString SalInstanceWindow::get_window_state(WindowStateMask nMask) const
SystemEnvData SalInstanceWindow::get_system_data() const { return *m_xWindow->GetSystemData(); }
-void SalInstanceWindow::connect_toplevel_focus_changed(const Link<weld::Widget&, void>& rLink)
-{
- ensure_event_listener();
- weld::Window::connect_toplevel_focus_changed(rLink);
-}
-
-void SalInstanceWindow::HandleEventListener(VclWindowEvent& rEvent)
-{
- if (rEvent.GetId() == VclEventId::WindowActivate
- || rEvent.GetId() == VclEventId::WindowDeactivate)
- {
- signal_toplevel_focus_changed();
- return;
- }
- SalInstanceContainer::HandleEventListener(rEvent);
-}
-
VclPtr<VirtualDevice> SalInstanceWindow::screenshot()
{
SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get());
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 7a58dd7d2ead..0a37e8175d86 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -4040,7 +4040,6 @@ class GtkInstanceWindow : public GtkInstanceContainer, public virtual weld::Wind
private:
GtkWindow* m_pWindow;
rtl::Reference<SalGtkXWindow> m_xWindow; //uno api
- gulong m_nToplevelFocusChangedSignalId;
static gboolean help_pressed(GtkAccelGroup*, GObject*, guint, GdkModifierType, gpointer widget)
{
@@ -4049,12 +4048,6 @@ private:
return true;
}
- static void signalToplevelFocusChanged(GtkWindow*, GParamSpec*, gpointer widget)
- {
- GtkInstanceWindow* pThis = static_cast<GtkInstanceWindow*>(widget);
- pThis->signal_toplevel_focus_changed();
- }
-
bool isPositioningAllowed() const
{
bool bPositioningAllowed = true;
@@ -4072,7 +4065,6 @@ public:
GtkInstanceWindow(GtkWindow* pWindow, GtkInstanceBuilder* pBuilder, bool bTakeOwnership)
: GtkInstanceContainer(GTK_CONTAINER(pWindow), pBuilder, bTakeOwnership)
, m_pWindow(pWindow)
- , m_nToplevelFocusChangedSignalId(0)
{
const bool bIsFrameWeld = pBuilder == nullptr;
if (!bIsFrameWeld)
@@ -4232,27 +4224,6 @@ public:
return aData.ToStr();
}
- virtual void connect_toplevel_focus_changed(const Link<weld::Widget&, void>& rLink) override
- {
- assert(!m_nToplevelFocusChangedSignalId);
- m_nToplevelFocusChangedSignalId = g_signal_connect(m_pWindow, "notify::has-toplevel-focus", G_CALLBACK(signalToplevelFocusChanged), this);
- weld::Window::connect_toplevel_focus_changed(rLink);
- }
-
- virtual void disable_notify_events() override
- {
- if (m_nToplevelFocusChangedSignalId)
- g_signal_handler_block(m_pWidget, m_nToplevelFocusChangedSignalId);
- GtkInstanceContainer::disable_notify_events();
- }
-
- virtual void enable_notify_events() override
- {
- GtkInstanceContainer::enable_notify_events();
- if (m_nToplevelFocusChangedSignalId)
- g_signal_handler_unblock(m_pWidget, m_nToplevelFocusChangedSignalId);
- }
-
virtual VclPtr<VirtualDevice> screenshot() override
{
// detect if we have to manually setup its size
@@ -4306,8 +4277,6 @@ public:
virtual ~GtkInstanceWindow() override
{
- if (m_nToplevelFocusChangedSignalId)
- g_signal_handler_disconnect(m_pWindow, m_nToplevelFocusChangedSignalId);
if (m_xWindow.is())
m_xWindow->clear();
}