mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-18 04:49:43 +02:00
gtk: more safer code in WindowFromPoint (fixes #0014497)
git-svn-id: trunk@21569 -
This commit is contained in:
parent
bbda022560
commit
907df92e81
@ -1058,13 +1058,12 @@ begin
|
||||
FreeWidgetInfo(Widget);
|
||||
end;
|
||||
|
||||
function DestroyWindowFromPointCB(Widget: PGtkWidget; data: gPointer
|
||||
): GBoolean; cdecl;
|
||||
function DestroyWindowFromPointCB(Widget: PGtkWidget; data: gPointer): GBoolean; cdecl;
|
||||
begin
|
||||
Result:=CallBackDefaultReturn;
|
||||
if PGtkWidget(LastWFPResult)<>Widget then exit;
|
||||
LastWFPResult:=0;
|
||||
LastWFPMousePos:=Point(High(Integer),High(Integer));
|
||||
Result := CallBackDefaultReturn;
|
||||
if PGtkWidget(LastWFPResult) <> Widget then Exit;
|
||||
LastWFPResult := 0;
|
||||
LastWFPMousePos := Point(High(Integer), High(Integer));
|
||||
end;
|
||||
|
||||
function gtkdeleteCB( widget : PGtkWidget; event : PGdkEvent;
|
||||
|
@ -9730,7 +9730,8 @@ begin
|
||||
Result := PtrUInt(Widget);
|
||||
end;
|
||||
// disconnect old handler
|
||||
if LastWFPResult<>0 then begin
|
||||
if GTK_IS_OBJECT(Pointer(LastWFPResult)) then
|
||||
begin
|
||||
{$IFDEF gtk1}
|
||||
gtk_signal_disconnect_by_func(GPointer(LastWFPResult),
|
||||
TGTKSignalFunc(@DestroyWindowFromPointCB), nil);
|
||||
@ -9742,7 +9743,7 @@ begin
|
||||
LastWFPMousePos := APoint;
|
||||
LastWFPResult := Result;
|
||||
// connect handler
|
||||
if LastWFPResult<>0 then
|
||||
if LastWFPResult <> 0 then
|
||||
g_signal_connect(GPointer(LastWFPResult), 'destroy',
|
||||
TGTKSignalFunc(@DestroyWindowFromPointCB), nil);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user