Repository: godotengine/godot (language: cpp)

Issue:
Documentation tooltip disappears when you move the mouse - 4.4 dev7
### Tested versions

Godot 4.4 Dev 7 (MACOS mono build)

### System information

MacOS Sequoia 15.2 running on an M1 Pro

### Issue description

Several issues:

1) Tooltip disappears when you move your mouse over it. It should persist instead, and only fade out after like 0.5ms or a second when the mouse is no longer over the tooltip.
2) Cannot click on any hyperlinks within the tooltip, for example in the video I cannot click on the Color Cheatsheet web link on the bottom
3) Cannot scroll down
4) It would be nice to be able to click on documentation links within the tooltip, for example hovering over @export_range, we should be able to also click on the PROPERTY_HINT_RANGE link that comes under "See also" in the documentation.

I'm running on an M1 Pro with macOS Sequoia 15.2. Single window mode was off when the issues occurred. With this mode on I still have the same issues.

### Steps to reproduce

Just hover over a keyword and you will notice all the mentioned issues.

https://github.com/user-attachments/assets/689e6cf7-392e-4dae-a2e0-9f9a811bbc90


### Minimal reproduction project (MRP)

NA


Discussion / hints:
I would like to add to it and say that the Vertical scroll bar Documentation Tooltip doesn't seem to work.
Please write what operating system and display manager (X11 and Wayland for Linux) you are using, this may be a platform-specific bug. And whether you are using single window mode (editor setting `interface/editor/single_window_mode`).
> Please write what operating system and display manager (X11 and Wayland for Linux) you are using, this may be a platform-specific bug. And whether you are using single window mode (editor setting `interface/editor/single_window_mode`).

I'm running on an M1 Pro with macOS Sequoia 15.2. Single window mode was off when the issues occurred. With this mode on I still have the same issues.

Oh yeah, what's the difference between the two modes anyway?
I don't have this bugs on windows 10, maybe OS related.

https://github.com/user-attachments/assets/93a1ce4e-d252-4616-ae04-d37b2a3e5a2d

Godot v4.4.dev7 - Windows 10 (build 19045) - Multi-window, 2 monitors - Vulkan (Forward+) - dedicated AMD Radeon RX 580 2048SP (Advanced Micro Devices, Inc.; 31.0.21921.1000) - AMD Ryzen 5 3600 6-Core Processor (12 threads)
> Please write what operating system and display manager (X11 and Wayland for Linux) you are using, this may be a platform-specific bug. And whether you are using single window mode (editor setting `interface/editor/single_window_mode`).

Here you go, my system info. And yes, since I'm on a laptop, `Single Window Mode` is what I have always enabled.

```
System:
  Kernel: 6.8.0-51-generic arch: x86_64 bits: 64 compiler: gcc v: 13.3.0 clocksource: tsc
  Desktop: Cinnamon v: 6.2.9 tk: GTK v: 3.24.41 wm: Muffin v: 6.2.0 vt: 7 dm: LightDM v: 1.30.0
    Distro: Linux Mint 22 Wilma base: Ubuntu 24.04 noble
Machine:
  Type: Laptop System: LENOVO product: 80SL v: Lenovo ideapad 310-14ISK
    serial: <superuser required> Chassis: type: 10 v: Lenovo ideapad 310-14ISK
    serial: <superuser required>
  Mobo: LENOVO model: Toronto 4A2 v: SDK0J40688 WIN serial: <superuser required>
    part-nu: LENOVO_MT_80SL_BU_idea_FM_Lenovo ideapad 310-14ISK uuid: <superuser required>
    UEFI: LENOVO v: 0XCN20WW date: 02/19/2016
Battery:
  ID-1: BAT0 charge: 24.1 Wh (94.5%) condition: 25.5/30.0 Wh (84.9%) power: 4.1 W volts: 8.3
    min: 7.4 model: SMP L15M2PB2 type: Li-poly serial: <filter> status: charging
CPU:
  Info: dual core model: Intel Core i7-6500U bits: 64 type: MT MCP smt: enabled arch: Skylake
    rev: 3 cache: L1: 128 KiB L2: 512 KiB L3: 4 MiB
  Speed (MHz): avg: 2787 min/max: 400/3100 cores: 1: 2787 2: 2787 3: 2787 4: 2787 bogomips: 20799
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Skylake GT2 [HD Graphics 520] vendor: Lenovo driver: i915 v: kernel arch: Gen-9
    ports: active: eDP-1 empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:1916
    class-ID: 0300
  Device-2: NVIDIA GM108M [GeForce 920MX] vendor: Lenovo driver: nvidia v: 550.120 arch: Maxwell
    pcie: speed: 2.5 GT/s lanes: 4 bus-ID: 03:00.0 chip-ID: 10de:134f class-ID: 0302
  Device-3: Chicony EasyCamera driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1
    bus-ID: 1-4:2 chip-ID: 04f2:b57d class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X:
    loaded: modesetting,nvidia unloaded: fbdev,nouveau,vesa dri: iris gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 1366x768 s-dpi: 98 s-size: 355x199mm (13.98x7.83") s-diag: 407mm (16.02")
  Monitor-1: eDP-1 model: BOE Display 0x0698 res: 1366x768 hz: 60 dpi: 112
    size: 309x173mm (12.17x6.81") diag: 354mm (13.9") modes: 1366x768
  API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0 drv: nvidia device: 1
    drv: iris device: 3 drv: swrast surfaceless: drv: nvidia x11: drv: iris
    inactive: gbm,wayland,device-2
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.0.9-0ubuntu0.3 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel HD Graphics 520 (SKL GT2) device-ID: 8086:1916
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel
    bus-ID: 00:1f.3 chip-ID: 8086:9d70 class-ID: 0403
  API: ALSA v: k6.8.0-51-generic status: kernel-api
  Server-1: PipeWire v: 1.0.5 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: Lenovo RTL8111/8168/8411 driver: r8169 v: kernel pcie: speed: 2.5 GT/s lanes: 1
    port: 4000 bus-ID: 01:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp1s0 state: down mac: <filter>
  Device-2: Intel Dual Band Wireless-AC 3165 Plus Bluetooth driver: iwlwifi v: kernel pcie:
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:3166 class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 bus-ID: 1-7:4 chip-ID: 8087:0a2a class-ID: e001
  Report: hciconfig ID: hci0 rfk-id: 2 state: down bt-service: enabled,running rfk-block:
    hardware: no software: yes address: <filter>
Drives:
  Local Storage: total: 931.51 GiB used: 25.72 GiB (2.8%)
  ID-1: /dev/sda vendor: Western Digital model: WD10JPCX-24UE4T0 size: 931.51 GiB speed: 6.0 Gb/s
    tech: HDD rpm: 5400 serial: <filter> fw-rev: 1A01 scheme: GPT
Partition:
  ID-1: / size: 460.31 GiB used: 25.67 GiB (5.6%) fs: ext4 dev: /dev/sda8
  ID-2: /boot/efi size: 256 MiB used: 58.5 MiB (22.9%) fs: vfat dev: /dev/sda1
Swap:
  ID-1: swap-1 type: partition size: 977 MiB used: 0 KiB (0.0%) priority: -2 dev: /dev/sda4
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 12 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 1-3:5 info: USB OPTICAL MOUSE type: mouse driver: hid-generic,usbhid interfaces: 1
    rev: 1.1 speed: 1.5 Mb/s lanes: 1 power: 100mA chip-ID: 0000:3825 class-ID: 0301
  Device-2: 1-4:2 info: Chicony EasyCamera type: video driver: uvcvideo interfaces: 2 rev: 2.0
    speed: 480 Mb/s lanes: 1 power: 500mA chip-ID: 04f2:b57d class-ID: 0e02 serial: <filter>
  Device-3: 1-5:3 info: Realtek RTS5129 Card Reader Controller type: <vendor specific>
    driver: rtsx_usb,rtsx_usb_ms,rtsx_usb_sdmmc interfaces: 1 rev: 2.0 speed: 480 Mb/s lanes: 1
    power: 500mA chip-ID: 0bda:0129 class-ID: ff00 serial: <filter>
  Device-4: 1-7:4 info: Intel Bluetooth wireless interface type: bluetooth driver: btusb
    interfaces: 2 rev: 2.0 speed: 12 Mb/s lanes: 1 power: 100mA chip-ID: 8087:0a2a class-ID: e001
  Hub-2: 2-0:1 info: super-speed hub ports: 6 rev: 3.0 speed: 5 Gb/s lanes: 1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 46.0 C pch: 40.5 C mobo: N/A
  Fan Speeds (rpm): N/A
Repos:
  Packages: pm: dpkg pkgs: 2087
  No active apt repos in: /etc/apt/sources.list
  Active apt repos in: /etc/apt/sources.list.d/official-package-repositories.list
    1: deb http: //packages.linuxmint.com wilma main upstream import backport
    2: deb http: //archive.ubuntu.com/ubuntu noble main restricted universe multiverse
    3: deb http: //archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
    4: deb http: //archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse
    5: deb http: //security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
  Active apt repos in: /etc/apt/sources.list.d/vscode.list
    1: deb [arch=amd64,arm64,armhf] https: //packages.microsoft.com/repos/code stable main
Info:
  Memory: total: 8 GiB available: 7.66 GiB used: 2.52 GiB (32.9%)
  Processes: 242 Power: uptime: 33m states: freeze,mem,disk suspend: deep wakeups: 0
    hibernate: platform Init: systemd v: 255 target: graphical (5) default: graphical
  Compilers: gcc: 13.3.0 Client: Cinnamon v: 6.2.9 inxi: 3.3
```
> I would like to add to it and say that the Vertical scroll bar Documentation Tooltip doesn't seem to work.

This doesn't work for the macOS version as well, tried both mono and standard builds.
And yes I think this is OS related as my Windows 11 setup running in a VM doesn't have any issues, just the mac build.

Fix patch:
diff --git a/platform/macos/godot_content_view.mm b/platform/macos/godot_content_view.mm
index eff33208db4b..4e7fc2180cb9 100644
--- a/platform/macos/godot_content_view.mm
+++ b/platform/macos/godot_content_view.mm
@@ -622,7 +622,7 @@ - (void)updateTrackingAreas {
 		[self removeTrackingArea:tracking_area];
 	}
 
-	NSTrackingAreaOptions options = NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow | NSTrackingCursorUpdate | NSTrackingInVisibleRect;
+	NSTrackingAreaOptions options = NSTrackingMouseEnteredAndExited | NSTrackingActiveWhenFirstResponder | NSTrackingCursorUpdate | NSTrackingInVisibleRect;
 	tracking_area = [[NSTrackingArea alloc] initWithRect:[self bounds] options:options owner:self userInfo:nil];
 
 	[self addTrackingArea:tracking_area];


Test patch: