Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37710798
en ru br
ALT Linux repositórios
S:2.2.6-alt2
5.0: 0.9.24-alt3.4
4.1: 0.9.24-alt3
4.0: 0.9.24-alt0.M40.2.3.1
+backports:0.9.24-alt2.3

Group :: Desenvolvimento/Outros
RPM: lazarus

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: lazarus-customform-sigsegv-fix.patch
Download


diff --git a/lazarus/lcl/include/customform.inc b/lazarus/lcl/include/customform.inc
index 95041c6..69e3233 100644
--- a/lazarus/lcl/include/customform.inc
+++ b/lazarus/lcl/include/customform.inc
@@ -1713,11 +1713,7 @@ begin
       if (Screen.Forms[I].Menu = Value) and (Screen.Forms[I] <> Self) then
         raise EInvalidOperation.CreateFmt(sDuplicateMenus, [Value.Name]);
 
-  if (FMenu <> nil) and not (csDestroying in FMenu.ComponentState) then
-  begin
-    FMenu.DestroyHandle;
-    FMenu.Parent := nil;
-  end;
+  if FMenu <> nil then FMenu.Parent := nil;
 
   if (csDestroying in ComponentState) or
      ((Value <> nil) and (csDestroying in Value.ComponentState)) then
@@ -2573,7 +2569,8 @@ var
 begin
   Result := TBitmap.Create;
   try
-    Result.SetSize(ClientWidth, ClientHeight);
+    Result.Width := ClientWidth;
+    Result.Height := ClientHeight;
     LCLIntf.GetWindowRect(Handle, ARect);
     with GetClientOrigin do
       PaintTo(Result.Canvas, ARect.Left - X, ARect.Top - Y);
@@ -2880,8 +2877,11 @@ begin
   Application.ModalStarted;
   try
     Include(FFormState, fsModal);
-    if (PopupMode = pmNone) and HandleAllocated then
-      RecreateWnd(Self); // need to refresh handle for pmNone because ParentWindow changes if (fsModal in FFormState) - see GetRealPopupParent
+    if PopupMode = pmNone then
+    begin
+      RecreateWnd(Self);
+      HandleNeeded;
+    end;
     ActiveWindow := GetActiveWindow;
     SavedFocusState := SaveFocusState;
     SavedCursor := Screen.Cursor;
@@ -2950,8 +2950,6 @@ begin
       if LCLIntf.IsWindow(ActiveWindow) then
         SetActiveWindow(ActiveWindow);
       Exclude(FFormState, fsModal);
-      if ((PopupMode = pmNone) and HandleAllocated) and not (csDestroying in ComponentState) then
-        RecreateWnd(Self); // need to refresh handle for pmNone because ParentWindow changes if (fsModal in FFormState) - see GetRealPopupParent
     end;
   finally
     Application.ModalFinished;
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009