From 5a0bf2ed29849a384310c54b9ab2900e392fdae6 Mon Sep 17 00:00:00 2001 From: juha Date: Thu, 28 Jan 2021 08:19:10 +0000 Subject: [PATCH] LCL-GTK2: Fix SpeedButton freeze after closing popup menu without choosing menu item. Issue #38401, patch from Andrzej Kilijanski. git-svn-id: trunk@64430 - --- lcl/interfaces/gtk2/gtk2wsforms.pp | 10 ---------- lcl/interfaces/gtk2/gtk2wsmenus.pp | 9 +++++++++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/lcl/interfaces/gtk2/gtk2wsforms.pp b/lcl/interfaces/gtk2/gtk2wsforms.pp index 72743c990c..ccf6c28e24 100644 --- a/lcl/interfaces/gtk2/gtk2wsforms.pp +++ b/lcl/interfaces/gtk2/gtk2wsforms.pp @@ -742,16 +742,6 @@ begin GtkWindow := {%H-}PGtkWindow(AForm.Handle); - if AForm.HandleObjectShouldBeVisible then - begin - LastMouse.Button := 0; - LastMouse.ClickCount := 0; - LastMouse.Down := False; - LastMouse.MousePos := Point(0, 0); - LastMouse.Time := 0; - LastMouse.WinControl := nil; - end; - if (fsModal in AForm.FormState) and AForm.HandleObjectShouldBeVisible then begin gtk_window_set_default_size(GtkWindow, Max(1,AForm.Width), Max(1,AForm.Height)); diff --git a/lcl/interfaces/gtk2/gtk2wsmenus.pp b/lcl/interfaces/gtk2/gtk2wsmenus.pp index f8595db79f..f9a7724366 100644 --- a/lcl/interfaces/gtk2/gtk2wsmenus.pp +++ b/lcl/interfaces/gtk2/gtk2wsmenus.pp @@ -612,7 +612,16 @@ var begin Result := False; if PopupMenu is TPopupMenu then + begin PopupMenu.Close; + // Fix freezing some controls (eg SpeedButton) when close PopupMenu + LastMouse.Button := 0; + LastMouse.ClickCount := 0; + LastMouse.Down := False; + LastMouse.MousePos := Point(0, 0); + LastMouse.Time := 0; + LastMouse.WinControl := nil; + end; end; procedure gtkWSPopupMenuDeactivate(widget: PGtkWidget; data: gPointer); cdecl;