[vte] widget: Move GdkEvent from EventBase to KeyEvent



commit 87f70c44341879226443df403ab50b65f89c84ce
Author: Christian Persch <chpe src gnome org>
Date:   Mon Nov 2 22:23:25 2020 +0100

    widget: Move GdkEvent from EventBase to KeyEvent
    
    Only the key events handling needs to access the native event anymore.
    
    [gtk4 preparation]

 src/widget.cc |  6 ++----
 src/widget.hh | 28 +++++++++++-----------------
 2 files changed, 13 insertions(+), 21 deletions(-)
---
diff --git a/src/widget.cc b/src/widget.cc
index 21cfff54..b5b741c9 100644
--- a/src/widget.cc
+++ b/src/widget.cc
@@ -481,8 +481,7 @@ Widget::mouse_event_from_gdk(GdkEvent* event) const /* throws */
         auto button = unsigned{0};
         (void)gdk_event_get_button(event, &button);
 
-        return {event,
-                type,
+        return {type,
                 press_count,
                 read_modifiers_from_gdk(event),
                 MouseEvent::Button(button),
@@ -517,8 +516,7 @@ Widget::scroll_event_from_gdk(GdkEvent* event) const /* throws */
                 }
         }
 
-        return {event,
-                read_modifiers_from_gdk(event),
+        return {read_modifiers_from_gdk(event),
                 ScrollEvent::Button(button),
                 x, y,
                 dx, dy};
diff --git a/src/widget.hh b/src/widget.hh
index e0f5cd15..5cdc382a 100644
--- a/src/widget.hh
+++ b/src/widget.hh
@@ -63,15 +63,11 @@ protected:
 
         EventBase() noexcept = default;
 
-        constexpr EventBase(GdkEvent* gdk_event,
-                            Type type) noexcept
-                : m_platform_event{gdk_event},
-                  m_type{type}
+        constexpr EventBase(Type type) noexcept
+                : m_type{type}
         {
         }
 
-        constexpr auto platform_event() const noexcept { return m_platform_event; }
-
 public:
         ~EventBase() noexcept = default;
 
@@ -83,7 +79,6 @@ public:
         constexpr auto type()        const noexcept { return m_type;        }
 
 private:
-        GdkEvent* m_platform_event;
         Type m_type;
 }; // class EventBase
 
@@ -102,8 +97,8 @@ protected:
                            unsigned keycode,
                            uint8_t group,
                            bool is_modifier) noexcept
-                : EventBase{gdk_event,
-                            type},
+                : EventBase{type},
+                  m_platform_event{gdk_event},
                   m_modifiers{modifiers},
                   m_keyval{keyval},
                   m_keycode{keycode},
@@ -112,6 +107,8 @@ protected:
         {
         }
 
+        constexpr auto platform_event() const noexcept { return m_platform_event; }
+
 public:
         ~KeyEvent() noexcept = default;
 
@@ -130,6 +127,7 @@ public:
         constexpr auto is_key_release() const noexcept { return type() == Type::eKEY_RELEASE; }
 
 private:
+        GdkEvent* m_platform_event;
         unsigned m_modifiers;
         unsigned m_keyval;
         unsigned m_keycode;
@@ -155,15 +153,13 @@ protected:
 
         MouseEvent() noexcept = default;
 
-        constexpr MouseEvent(GdkEvent* gdk_event,
-                             Type type,
+        constexpr MouseEvent(Type type,
                              unsigned press_count,
                              unsigned modifiers,
                              Button button,
                              double x,
                              double y) noexcept
-                : EventBase{gdk_event,
-                            type},
+                : EventBase{type},
                   m_press_count{press_count},
                   m_modifiers{modifiers},
                   m_button{button},
@@ -209,15 +205,13 @@ protected:
 
         ScrollEvent() noexcept = default;
 
-        constexpr ScrollEvent(GdkEvent* gdk_event,
-                              unsigned modifiers,
+        constexpr ScrollEvent(unsigned modifiers,
                               Button button,
                               double x,
                               double y,
                               double dx,
                               double dy) noexcept
-                : MouseEvent{gdk_event,
-                             EventBase::Type::eMOUSE_SCROLL,
+                : MouseEvent{EventBase::Type::eMOUSE_SCROLL,
                              1, // press count
                              modifiers,
                              button,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]