[Libreoffice-commits] core.git: include/vcl vcl/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Thu Jun 24 02:46:49 UTC 2021


 include/vcl/event.hxx                       |    8 ++++++++
 include/vcl/seleng.hxx                      |   11 +++++++++++
 vcl/source/control/quickselectionengine.cxx |    1 -
 vcl/source/edit/textdata.cxx                |    1 -
 vcl/source/uitest/uno/uiobject_uno.hxx      |    1 -
 vcl/source/window/event.cxx                 |    2 ++
 vcl/source/window/keyevent.cxx              |    1 -
 7 files changed, 21 insertions(+), 4 deletions(-)

New commits:
commit 01ffaa6e02ebb0fc3aba75aafc56988127ade3ab
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Thu Jun 24 00:22:42 2021 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Thu Jun 24 04:46:07 2021 +0200

    Delete copy ctors/assignments for DLLEXPORT class
    
    ... instead of including <vcl/window.hxx> where it is not directly
    used. For details, see commit ee405fb2ef36337851801f1bd34411c606d55988.
    
    This reverts commits 6aa6b6c814b0353768fa7276d1f11d69a0ebedba and
    beeb19b361213d22247e5cb776dc522cbf190ca8.
    
    Change-Id: Ia91f3c303e1df0a698d06cdef1d8e64e99d781ef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117751
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/include/vcl/event.hxx b/include/vcl/event.hxx
index 236062d69670..32ff5bcfa098 100644
--- a/include/vcl/event.hxx
+++ b/include/vcl/event.hxx
@@ -296,6 +296,14 @@ public:
                             NotifyEvent( MouseNotifyEvent nEventType,
                                          vcl::Window* pWindow,
                                          const void* pEvent = nullptr );
+                            ~NotifyEvent();
+                            // Avoid implicitly defined copy constructors/assignments for the
+                            // DLLPUBLIC class (they may require forward-declared classes used
+                            // internally to be defined in places using NotifyEvent)
+                            NotifyEvent(const NotifyEvent&) = delete;
+                            NotifyEvent(NotifyEvent&&) = delete;
+                            NotifyEvent& operator=(const NotifyEvent&) = delete;
+                            NotifyEvent& operator=(NotifyEvent&&) = delete;
 
     MouseNotifyEvent        GetType() const { return mnEventType; }
     vcl::Window*            GetWindow() const { return mpWindow; }
diff --git a/include/vcl/seleng.hxx b/include/vcl/seleng.hxx
index 4db64c49b280..580ae74177bf 100644
--- a/include/vcl/seleng.hxx
+++ b/include/vcl/seleng.hxx
@@ -28,6 +28,10 @@
 
 class CommandEvent;
 
+namespace vcl {
+    class Window;
+}
+
 // Timerticks
 #define SELENG_DRAGDROP_TIMEOUT     400
 #define SELENG_AUTOREPEAT_INTERVAL  50
@@ -92,6 +96,13 @@ public:
                         SelectionEngine( vcl::Window* pWindow,
                                          FunctionSet* pFunctions = nullptr );
                         ~SelectionEngine();
+                        // Avoid implicitly defined copy constructors/assignments for the
+                        // DLLPUBLIC class (they may require forward-declared classes used
+                        // internally to be defined in places using SelectionEngine)
+                        SelectionEngine(const SelectionEngine&) = delete;
+                        SelectionEngine(SelectionEngine&&) = delete;
+                        SelectionEngine& operator=(const SelectionEngine&) = delete;
+                        SelectionEngine& operator=(SelectionEngine&&) = delete;
 
     // true: Event was processed by Selection Engine
     bool                SelMouseButtonDown( const MouseEvent& rMEvt );
diff --git a/vcl/source/control/quickselectionengine.cxx b/vcl/source/control/quickselectionengine.cxx
index bea72d9d0c8b..e3b060896d5e 100644
--- a/vcl/source/control/quickselectionengine.cxx
+++ b/vcl/source/control/quickselectionengine.cxx
@@ -23,7 +23,6 @@
 #include <vcl/i18nhelp.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/settings.hxx>
-#include <vcl/window.hxx>
 #include <sal/log.hxx>
 
 #include <optional>
diff --git a/vcl/source/edit/textdata.cxx b/vcl/source/edit/textdata.cxx
index d9d4452ae0d9..b0a919b1698e 100644
--- a/vcl/source/edit/textdata.cxx
+++ b/vcl/source/edit/textdata.cxx
@@ -24,7 +24,6 @@
 #include <cstddef>
 
 #include <vcl/textdata.hxx>
-#include <vcl/window.hxx>
 #include "textdat2.hxx"
 
 
diff --git a/vcl/source/uitest/uno/uiobject_uno.hxx b/vcl/source/uitest/uno/uiobject_uno.hxx
index f52cdeffe95d..f2e6d3e2b786 100644
--- a/vcl/source/uitest/uno/uiobject_uno.hxx
+++ b/vcl/source/uitest/uno/uiobject_uno.hxx
@@ -20,7 +20,6 @@
 
 #include <tools/link.hxx>
 #include <vcl/uitest/uiobject.hxx>
-#include <vcl/window.hxx>
 
 class Timer;
 
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx
index 9fa5b3d4c71e..1c4106ba109b 100644
--- a/vcl/source/window/event.cxx
+++ b/vcl/source/window/event.cxx
@@ -662,4 +662,6 @@ NotifyEvent::NotifyEvent( MouseNotifyEvent nEventType, vcl::Window* pWindow,
     mnEventType  = nEventType;
 }
 
+NotifyEvent::~NotifyEvent() = default;
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/window/keyevent.cxx b/vcl/source/window/keyevent.cxx
index c5c092d519b2..eca00d411463 100644
--- a/vcl/source/window/keyevent.cxx
+++ b/vcl/source/window/keyevent.cxx
@@ -18,7 +18,6 @@
  */
 
 #include <vcl/event.hxx>
-#include <vcl/window.hxx>
 
 KeyEvent KeyEvent::LogicalTextDirectionality (TextDirectionality eMode) const
 {


More information about the Libreoffice-commits mailing list