summaryrefslogtreecommitdiff
path: root/src/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/fpg_base.pas4
-rw-r--r--src/corelib/fpg_main.pas13
2 files changed, 12 insertions, 5 deletions
diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas
index 979ac61a..15270468 100644
--- a/src/corelib/fpg_base.pas
+++ b/src/corelib/fpg_base.pas
@@ -81,6 +81,7 @@ const
FPGM_MOVE = 16;
FPGM_POPUPCLOSE = 17;
FPGM_HINTTIMER = 18;
+ FPGM_CUSTOM = 50000;
FPGM_KILLME = High(Integer);
// The special keys, based on the well-known keyboard scan codes
@@ -1145,8 +1146,7 @@ begin
DoMoveWindow(x, y);
end;
-function TfpgWindowBase.WindowToScreen(ASource: TfpgWindowBase;
- const AScreenPos: TPoint): TPoint;
+function TfpgWindowBase.WindowToScreen(ASource: TfpgWindowBase; const AScreenPos: TPoint): TPoint;
begin
Result := DoWindowToScreen(ASource, AScreenPos);
end;
diff --git a/src/corelib/fpg_main.pas b/src/corelib/fpg_main.pas
index 883c56c7..0bbb35f7 100644
--- a/src/corelib/fpg_main.pas
+++ b/src/corelib/fpg_main.pas
@@ -231,7 +231,7 @@ type
procedure InternalMsgHintTimer(var msg: TfpgMessageRec); message FPGM_HINTTIMER;
procedure CreateHintWindow;
procedure HintTimerFired(Sender: TObject);
- procedure SetShowHint(const AValue: boolean);
+ procedure SetShowHint(const AValue: boolean);
protected
FDisplayParams: string;
FScreenWidth: integer;
@@ -1075,8 +1075,15 @@ begin
w := nil;
// writeln('HintTimerFired...');
w := TfpgWidget(FHintWidget);
- if Assigned(w) then
- ActivateHint(w.WindowToScreen(w, FHintPos), w.Hint);
+ try
+ if Assigned(w) then
+ ActivateHint(w.WindowToScreen(w, FHintPos), w.Hint);
+ except
+ // silence it!
+ { TODO : FHintWidget probably went out of scope just as timer fired. Try
+ and detect such cases better! }
+ end;
+
FHintTimer.Enabled := False;
end;