diff --git a/lcl/interfaces/gtk/gtkwinapi.inc b/lcl/interfaces/gtk/gtkwinapi.inc index 451ed935c5..d30daf62f9 100644 --- a/lcl/interfaces/gtk/gtkwinapi.inc +++ b/lcl/interfaces/gtk/gtkwinapi.inc @@ -9711,9 +9711,15 @@ begin Result := PtrUInt(Widget); end; // disconnect old handler - if LastWFPResult<>0 then + if LastWFPResult<>0 then begin + {$IFDEF gtk1} + gtk_signal_disconnect_by_func(GPointer(LastWFPResult), + TGTKSignalFunc(@DestroyWindowFromPointCB), nil); + {$ELSE} g_signal_handlers_disconnect_by_func(GPointer(LastWFPResult), TGTKSignalFunc(@DestroyWindowFromPointCB), nil); + {$ENDIF} + end; LastWFPMousePos := APoint; LastWFPResult := Result; // connect handler