gtk3: TApplication.ActivateHint refreshes hint on every mouse move

Original Reporter info from Mantis: Alextp
  • Reporter name: CudaText man

Description:

Related to https://bugs.freepascal.org/view.php?id=37599
to not mess all topics there.

demo:
https://github.com/Alexey-T/ATFlatControls/tree/master/app/demo_tabs
Tabs 2nd and 3rd have custom hint.
When I move mouse over tabs (tab 2 and 3) I expect that hint refreshes ONLY on move to new tab.
gtk3: hint refreshed+flickers on EVERY mouse move.

Set breakpoint in TApplication.ActivateHint.
It's called in mouse move.
on gtk3, it goes to

  HintControlChanged := not CheckHintControlChange or (FHintControl &LtPos;> Info.Control);
  if Info.ControlHasHint then
  begin
    if HintControlChanged then
    begin
      StopHintTimer;
      HideHint;
      FHintControl := Info.Control;
      FHintRect := FHintControl.BoundsRect;
    end;                               

so gtk3 has HintControlChanged=true! its a bug!
on mouse move inside one tab, control is the same.

Mantis conversion info:

  • Mantis ID: 37712
  • OS: Ubuntu 20 x64
  • Version: 2.1 (SVN)
  • Monitored by: » AntonK (Anton Kavalenka)