vcl/unx/gtk3/gtkinst.cxx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
New commits: commit dcf778c85c84edea74e71c11faed9a5c22557a80 Author: Julien Nabet <serval2...@yahoo.fr> AuthorDate: Sat Jan 13 15:38:28 2024 +0100 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Sat Jan 13 19:48:16 2024 +0100 Add missing gdk_event_free (vcl/gtkinst) Change-Id: I8bef4c3303f8f2fd89c1cf7cec35536c38d9d4d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162014 Reviewed-by: Julien Nabet <serval2...@yahoo.fr> Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index e80098630919..7f79efee094b 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -11098,10 +11098,16 @@ private: gtk_main_do_event(pKeyEvent); GdkEvent *pTriggerEvent = gtk_get_current_event(); + bool bEventOwnership = true; if (!pTriggerEvent) + { pTriggerEvent = pKeyEvent; + bEventOwnership = false; + } gtk_menu_popup_at_widget(m_pMenu, pWidget, GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, pTriggerEvent); + if (bEventOwnership) + gdk_event_free(pTriggerEvent); gdk_event_free(pKeyEvent); } @@ -11119,6 +11125,7 @@ private: { gdk_event_get_button(pEvent, &nButton); nTime = gdk_event_get_time(pEvent); + gdk_event_free(pEvent); } else { @@ -11460,8 +11467,12 @@ public: gtk_main_do_event(pKeyEvent); GdkEvent *pTriggerEvent = gtk_get_current_event(); + bool bEventOwnership = true; if (!pTriggerEvent) + { pTriggerEvent = pKeyEvent; + bEventOwnership = false; + } bool bSwapForRTL = SwapForRTL(pWidget); @@ -11479,6 +11490,8 @@ public: else gtk_menu_popup_at_rect(m_pMenu, widget_get_surface(pWidget), &aRect, GDK_GRAVITY_NORTH_EAST, GDK_GRAVITY_NORTH_WEST, pTriggerEvent); } + if (bEventOwnership) + gdk_event_free(pTriggerEvent); gdk_event_free(pKeyEvent); } @@ -11501,6 +11514,7 @@ public: if (!gdk_event_get_button(pEvent, &nButton)) nButton = 0; nTime = gdk_event_get_time(pEvent); + gdk_event_free(pEvent); } else { @@ -14137,6 +14151,8 @@ private: #if !GTK_CHECK_VERSION(4, 0, 0) GdkEvent *pEvent = gtk_get_current_event(); m_bChangedByMouse = pEvent && categorizeEvent(pEvent) == VclInputFlags::MOUSE; + if (pEvent) + gdk_event_free(pEvent); #else //TODO maybe iterate over gtk_widget_observe_controllers looking for a motion controller #endif