diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-03-05 16:13:19 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-03-05 21:57:42 +0100 |
commit | 9ffd28c32a301141a26e41ddd0cf485a562c83bb (patch) | |
tree | 7853d7350feb89c70019226411c58874090e0f37 | |
parent | 74b5218b68469c29f93436b308e85a20140ce9dd (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.hxx | 2 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 9 | ||||
-rw-r--r-- | reportdesign/source/ui/dlg/AddField.cxx | 4 | ||||
-rw-r--r-- | reportdesign/source/ui/dlg/Navigator.cxx | 5 | ||||
-rw-r--r-- | reportdesign/source/ui/inc/AddField.hxx | 2 | ||||
-rw-r--r-- | reportdesign/source/ui/inc/Navigator.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/dialog/basedlgs.cxx | 4 | ||||
-rw-r--r-- | vcl/inc/salvtables.hxx | 4 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 17 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 31 |
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(); } |