gtk1 intf: fixed debugging timer

git-svn-id: trunk@16210 -
This commit is contained in:
mattias 2008-08-24 20:11:38 +00:00
parent 7c263b6e77
commit f7bf90fef4
4 changed files with 18 additions and 5 deletions

View File

@ -3064,6 +3064,7 @@ begin
// HintTimer
FHintTimer := TTimer.Create(Self);
with FHintTimer do begin
Name:=Self.Name+'_HintTimer';
Interval := 1000;
Enabled := False;
OnTimer := @HintTimer;
@ -3072,6 +3073,7 @@ begin
// HintWindow
FHintWindow := THintWindow.Create(Self);
with FHintWindow do begin
Name:=Self.Name+'_HintWindow';
Visible := False;
Caption := '';
HideInterval := 4000;
@ -5133,6 +5135,7 @@ end;
procedure TSourceNotebook.HideHint;
begin
//DebugLn(['TSourceNotebook.HideHint ']);
if FHintTimer<>nil then
FHintTimer.Enabled:=false;
if SourceCompletionTimer<>nil then
@ -6233,6 +6236,7 @@ Procedure TSourceNotebook.EditorMouseMove(Sender: TObject; Shift: TShiftstate;
X,Y: Integer);
begin
// restart hint timer
//DebugLn(['TSourceNotebook.EditorMouseMove ']);
FHintTimer.Enabled := False;
FHintTimer.Enabled := (EditorOpts.AutoToolTipSymbTools or
EditorOpts.AutoToolTipExprEval)
@ -6243,8 +6247,8 @@ procedure TSourceNotebook.EditorMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
// restart hint timer
//DebugLn(['TSourceNotebook.EditorMouseWheel ']);
HideHint;
FHintTimer.Enabled := False;
FHintTimer.Enabled := (EditorOpts.AutoToolTipSymbTools or
EditorOpts.AutoToolTipExprEval) and Visible;
//handled:=true; //The scrooling is not done: it's not handled! See TWinControl.DoMouseWheel
@ -6261,6 +6265,7 @@ var
MousePos: TPoint;
AControl: TControl;
begin
//DebugLn(['TSourceNotebook.HintTimer ']);
FHintTimer.Enabled := False;
MousePos := Mouse.CursorPos;
AControl:=FindLCLControl(MousePos);

View File

@ -26,7 +26,7 @@ unit CustomTimer;
interface
uses
Classes, SysUtils, LCLStrConsts, LCLType, InterfaceBase;
Classes, SysUtils, LCLProc, LCLStrConsts, LCLType, InterfaceBase;
type
@ -106,6 +106,7 @@ end;
procedure TCustomTimer.KillTimer;
begin
if FTimerHandle <> cIdNoTimer then begin
//DebugLn(['TCustomTimer.KillTimer ',dbgsName(Self)]);
WidgetSet.DestroyTimer(FTimerHandle);
FTimerHandle := cIdNoTimer;
if Assigned(OnStopTimer) then OnStopTimer(Self);
@ -129,8 +130,9 @@ procedure TCustomTimer.UpdateTimer;
begin
KillTimer;
if (FEnabled) and (FInterval > 0)
and (([csDesigning,csLoading]*ComponentState=[]))
and (([csDesigning,csLoading,csDestroying]*ComponentState=[]))
and Assigned (FOnTimer) then begin
//DebugLn(['TCustomTimer.UpdateTimer ',dbgsName(Self),' WidgetSet.CreateTimer']);
FTimerHandle := WidgetSet.CreateTimer(FInterval, @Timer);
if FTimerHandle=0 then begin
FTimerHandle:=cIdNoTimer;
@ -148,6 +150,9 @@ end;
------------------------------------------------------------------------------}
procedure TCustomTimer.Timer;
begin
{$IFDEF VerboseTimer}
DebugLn(['TCustomTimer.Timer ',dbgsName(Self),' ',FEnabled,' ',FInterval]);
{$ENDIF}
if (FEnabled) and (FInterval > 0) then
DoOnTimer;
end;

View File

@ -1091,6 +1091,7 @@ begin
// (Posting the message via queue
// has the risk of getting out of sync with the gtk)
NotifyApplicationUserInput(Msg.Msg);
//DebugLn(['DeliverMouseMoveMessage ',dbgsName(AWinControl)]);
DeliverMessage(AWinControl, Msg);
end;
@ -2152,6 +2153,7 @@ begin
if TimerInfo^.TimerFunc <> nil
then begin
// Call users timer function
//DebugLn(['gtkTimerCB ']);
TimerInfo^.TimerFunc;
Result:=GdkTrue; // timer will go on
end

View File

@ -1416,9 +1416,10 @@ begin
Result := 0
else begin
New(TimerInfo);
FillByte(TimerInfo^,SizeOf(TGtkITimerinfo),0);
TimerInfo^.TimerFunc := TimerFunc;
{$IFDEF VerboseTimer}
DebugLn('TGtkWidgetSet.SetTimer %p CurTimerCount=%d OldTimerCount=%d', [TimerInfo, FTimerData.Count, FOldTimerData.Count]);
DebugLn(['TGtkWidgetSet.CreateTimer Interval=',dbgs(Interval)]);
{$ENDIF}
Result:= gtk_timeout_add(Interval, @gtkTimerCB, TimerInfo);
if Result = 0 then
@ -1452,7 +1453,7 @@ begin
if (TimerInfo^.TimerHandle=guint(TimerHandle)) then
begin
{$IFDEF VerboseTimer}
DebugLn('TGtkWidgetSet.KillTimer TimerInfo=',DbgS(TimerInfo),' TimerHandle=',TimerHandle,' CurTimerCount=',FTimerData.Count,' OldTimerCount=',FOldTimerData.Count);
DebugLn(['TGtkWidgetSet.DestroyTimer TimerInfo=',DbgS(TimerInfo),' TimerHandle=',TimerInfo^.TimerHandle]);
{$ENDIF}
gtk_timeout_remove(TimerInfo^.TimerHandle);
FTimerData.Delete(n);