Skip to content

Prevent widgets sometimes appearing to move relative to each other#7710

Merged
emilk merged 4 commits intomainfrom
emilk/fix-floating-area-contents
Nov 13, 2025
Merged

Prevent widgets sometimes appearing to move relative to each other#7710
emilk merged 4 commits intomainfrom
emilk/fix-floating-area-contents

Conversation

@emilk
Copy link
Copy Markdown
Owner

@emilk emilk commented Nov 12, 2025

Sometimes when moving a window, having a tooltip attached to the mouse pointer, or scrolling a ScrollArea, you would see this disturbing effect:

drift-bug

This is caused by us rounding many visual elements (lines, rectangles, text, …) to physical pixels in order to keep them sharp. If the window/tooltip itself is not rounded to a physical pixel, then you can get this behavior.

So from now on the position of all areas/windows/tooltips/popups/ScrollArea gets rounded to the closes pixel.

@emilk emilk added bug Something is broken egui labels Nov 12, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Nov 12, 2025

Preview available at https://egui-pr-preview.github.io/pr/7710-emilkfix-floating-area-contents
Note that it might take a couple seconds for the update to show up after the preview_build workflow has completed.

View snapshot changes at kitdiff

Copy link
Copy Markdown
Collaborator

@lucasmerlin lucasmerlin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

Seems like the same thing is also still happening in ScrollAreas and when moving around Areas with ScrollAreas, but this is already a great improvement:

Screen.Recording.2025-11-13.at.09.33.11.mov

Only seems to happen at odd zoom factors though.

@emilk
Copy link
Copy Markdown
Owner Author

emilk commented Nov 13, 2025

True, I should also do the same thing for scroll areas!

@emilk emilk merged commit 9a073d9 into main Nov 13, 2025
46 of 47 checks passed
@emilk emilk deleted the emilk/fix-floating-area-contents branch November 13, 2025 09:52
emilk added a commit that referenced this pull request Nov 13, 2025
…7710)

Sometimes when moving a window, having a tooltip attached to the mouse
pointer, or scrolling a `ScrollArea`, you would see this disturbing
effect:


![drift-bug](https://github.com/user-attachments/assets/013a5f49-ee02-417c-8441-1e1a0369e8bd)

This is caused by us rounding many visual elements (lines, rectangles,
text, …) to physical pixels in order to keep them sharp. If the
window/tooltip itself is not rounded to a physical pixel, then you can
get this behavior.

So from now on the position of all
areas/windows/tooltips/popups/ScrollArea gets rounded to the closes
pixel.

* Unlocked by #7709
This was referenced Nov 13, 2025
emilk added a commit to rerun-io/rerun that referenced this pull request Nov 26, 2025
Changes in snapshot images should be pixel-alignment improvements thanks
to
* emilk/egui#7710


---

## egui changelog
### ⭐ Added
* Add `Plugin::on_widget_under_pointer` to support widget inspector
[#7652](emilk/egui#7652) by
[@juancampa](https://github.com/juancampa)
* Add `Response::total_drag_delta` and `PointerState::total_drag_delta`
[#7708](emilk/egui#7708) by
[@emilk](https://github.com/emilk)

### 🔧 Changed
* Improve accessibility and testability of `ComboBox`
[#7658](emilk/egui#7658) by
[@lucasmerlin](https://github.com/lucasmerlin)

### 🐛 Fixed
* Fix `profiling::scope` compile error when profiling using `tracing`
backend [#7646](emilk/egui#7646) by
[@PPakalns](https://github.com/PPakalns)
* Fix edge cases in "smart aiming" in sliders
[#7680](emilk/egui#7680) by
[@emilk](https://github.com/emilk)
* Hide scroll bars when dragging other things
[#7689](emilk/egui#7689) by
[@emilk](https://github.com/emilk)
* Prevent widgets sometimes appearing to move relative to each other
[#7710](emilk/egui#7710) by
[@emilk](https://github.com/emilk)
* Fix `ui.response().interact(Sense::click())` being flakey
[#7713](emilk/egui#7713) by
[@lucasmerlin](https://github.com/lucasmerlin)

## eframe changelog
* Fix jittering during window resize on MacOS for WGPU/Metal
[#7641](emilk/egui#7641) by
[@aspcartman](https://github.com/aspcartman)
* Make sure `native_pixels_per_point` is set during app creation
[#7683](emilk/egui#7683) by
[@emilk](https://github.com/emilk)

---------

Co-authored-by: Lucas Meurer <[email protected]>
Co-authored-by: lucasmerlin <[email protected]>
Masterchef365 pushed a commit to Masterchef365/egui that referenced this pull request Apr 3, 2026
…milk#7710)

Sometimes when moving a window, having a tooltip attached to the mouse
pointer, or scrolling a `ScrollArea`, you would see this disturbing
effect:


![drift-bug](https://github.com/user-attachments/assets/013a5f49-ee02-417c-8441-1e1a0369e8bd)

This is caused by us rounding many visual elements (lines, rectangles,
text, …) to physical pixels in order to keep them sharp. If the
window/tooltip itself is not rounded to a physical pixel, then you can
get this behavior.

So from now on the position of all
areas/windows/tooltips/popups/ScrollArea gets rounded to the closes
pixel.

* Unlocked by emilk#7709
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something is broken egui

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants