Skip to content

[BUG] Cursor is incorrectly offset when UI Scaling is changed #58

@OJ7

Description

@OJ7

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When enabling UI Scaling (e.g. 175%), the point of contact of the cursor gets shifted from the top of the cursor to the right of the cursor. In the attached video, you can see cursor is hovering over the button only once the right side/point of the cursor is on the element. I've seen this across a few docker containers that use the selkies base image.

bug.mov

Expected Behavior

The top of the cursor should be considered the point of contact

Steps To Reproduce

  1. Start a container using selkies (e.g. Librewolf)
  2. Change the UI Scaling in the left panel settings to 175%
  3. Restart container to get the UI scaling to take into effect
  4. Observe the cursor is offset from the actual point of clicking on any element

Environment

- OS: Unraid OS
- How docker service was installed: docker compose

Docker creation

services:
  librewolf:
    image: lscr.io/linuxserver/librewolf:latest
    container_name: librewolf
    network_mode: bridge
    ports:
      - '3030:3000/tcp'
      - '3031:3001/tcp'
    volumes:
      - '/mnt/user/appdata/librewolf:/config:rw'
    shm_size: "1gb"
    restart: unless-stopped

Container logs

librewolf  | 2025-07-31T17:18:20.993703446Z [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
librewolf  | 2025-07-31T17:18:22.993492394Z [pcmflux] Status | Read: 101, Silent: 0 (0.0%), Encoded: 101, Rate: 1.21 kbps
librewolf  | 2025-07-31T17:18:24.993560506Z [pcmflux] Status | Read: 101, Silent: 0 (0.0%), Encoded: 101, Rate: 1.21 kbps
librewolf  | 2025-07-31T17:18:26.995289915Z [pcmflux] Status | Read: 98, Silent: 0 (0.0%), Encoded: 98, Rate: 1.18 kbps
librewolf  | 2025-07-31T17:18:28.083363295Z INFO:data_websocket:Received START_VIDEO for encoder: x264enc
librewolf  | 2025-07-31T17:18:28.083401317Z INFO:data_websocket:Starting x264enc: 3440x1774 @ 60.0fps, CRF: 25, FullFrame: True
librewolf  | 2025-07-31T17:18:28.084169275Z INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
librewolf  | 2025-07-31T17:18:28.084253366Z INFO:data_websocket:x264enc capture started successfully.
librewolf  | 2025-07-31T17:18:28.084504715Z INFO:data_websocket:Frame-based backpressure logic task started.
librewolf  | 2025-07-31T17:18:28.084548027Z INFO:data_websocket:Client settings received, proceeding with backpressure loop.
librewolf  | 2025-07-31T17:18:28.084815190Z X Shared Memory Extension available.
librewolf  | 2025-07-31T17:18:28.084841399Z XShm setup complete for 3440x1774.
librewolf  | 2025-07-31T17:18:28.084861651Z CPU cores available: 8
librewolf  | 2025-07-31T17:18:28.093612959Z INFO:webrtc_input:Set clipboard content, length: 563
librewolf  | 2025-07-31T17:18:28.995120836Z [pcmflux] Status | Read: 101, Silent: 0 (0.0%), Encoded: 101, Rate: 1.21 kbps
librewolf  | 2025-07-31T17:18:29.093093330Z Res: 3440x1774 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
librewolf  | 2025-07-31T17:18:30.106034991Z Res: 3440x1774 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
librewolf  | 2025-07-31T17:18:30.996436164Z [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
librewolf  | 2025-07-31T17:18:31.108843984Z Res: 3440x1774 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
librewolf  | 2025-07-31T17:18:32.111305293Z Res: 3440x1774 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
librewolf  | 2025-07-31T17:18:32.996282757Z [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
librewolf  | 2025-07-31T17:18:33.124463655Z Res: 3440x1774 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
librewolf  | 2025-07-31T17:18:34.126881161Z Res: 3440x1774 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
librewolf  | 2025-07-31T17:18:34.889263657Z INFO:data_websocket:Received STOP_VIDEO
librewolf  | 2025-07-31T17:18:34.889306919Z INFO:data_websocket:Stopping X11 x264-striped capture...
librewolf  | 2025-07-31T17:18:34.905190182Z Capture loop stopped. X resources released.
librewolf  | 2025-07-31T17:18:34.905905901Z INFO:data_websocket:Frame-based backpressure logic task cancelled.
librewolf  | 2025-07-31T17:18:34.905946722Z INFO:data_websocket:Frame-based backpressure logic task finished.
librewolf  | 2025-07-31T17:18:34.905961921Z INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.
librewolf  | 2025-07-31T17:18:34.905974885Z INFO:data_websocket:Resetting frame IDs.
librewolf  | 2025-07-31T17:18:34.905985732Z INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s).

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions