Qt: fix possible caret crash

git-svn-id: trunk@12246 -
This commit is contained in:
paul 2007-09-29 17:34:45 +00:00
parent 946941c1a6
commit 1fdddb7bd2
2 changed files with 5 additions and 3 deletions

View File

@ -341,7 +341,6 @@ end;
procedure TEmulatedCaret.SetPos(const Value: TQtPoint);
begin
if (FWidget = nil) or (FWidget.Widget = nil) then
begin
FPos.X := 0;
@ -438,13 +437,13 @@ procedure TEmulatedCaret.UpdateCaret;
var
R: TRect;
begin
if (FWidget <> nil) and (FWidget.Widget <> nil) then
if (FWidget <> nil) then
begin
R.Left := FPos.x;
R.Top := FPos.y;
R.Right := R.Left + FWidth + 2;
R.Bottom := R.Top + FHeight + 2;
if FWidget.Context = 0 then
if (FWidget.Context = 0) and (FWidget.Widget <> nil) then
begin
if not EqualRect(FOldRect, R) then
FWidget.Update(@FOldRect);

View File

@ -1123,6 +1123,9 @@ begin
QCursor_destroy(FDefaultCursor);
if HasCaret then
DestroyCaret;
if (Widget <> nil) and FOwnWidget then
QWidget_destroy(QWidgetH(Widget));
Widget := nil;