gtk2: auto disconnecting some handlers, bug #12929

git-svn-id: trunk@18174 -
This commit is contained in:
mattias 2009-01-06 17:04:22 +00:00
parent 89fc070b2a
commit 3e47231699

View File

@ -3529,6 +3529,9 @@ procedure TGtkWidgetSet.RemoveCallbacks(Widget: PGtkWidget);
var
MainWidget, ClientWidget, ImplWidget: PGtkWidget;
WinWidgetInfo: PWinWidgetInfo;
{$ELSE}
var
Info: PWinWidgetInfo;
{$ENDIF}
begin
{$IFDEF Gtk1}
@ -3548,6 +3551,12 @@ begin
if (ImplWidget<>nil)
and (ImplWidget<>ClientWidget) and (ImplWidget<>MainWidget) then
g_signal_handlers_destroy(PGtkObject(ImplWidget));
{$ELSE}
if Widget=nil then exit;
Info:=GetWidgetInfo(Widget,false);
if Info<>nil then begin
g_signal_handlers_disconnect_matched(Widget,G_SIGNAL_MATCH_DATA,0,0,nil,nil,Info);
end;
{$ENDIF}
end;