diff options
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/fpg_base.pas | 4 | ||||
-rw-r--r-- | src/corelib/fpg_main.pas | 13 |
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; |