Commit Graph

4 Commits

Author SHA1 Message Date
Peter Steinberger
730b341f3f fix(linux): keep Quick Chat on screen across DPI and widget resizes (#114271)
Two geometry defects found while stress-testing the companion.

Positioning mixed coordinate spaces. `work_area()` is physical pixels of the
monitor Quick Chat is moving to, but `inner_size()` is physical pixels at the
scale of the monitor it is on now. A 640pt window on a 2x display reports
1280px, so invoking it on a 1x 1920px display centred using 1280 and landed it
320px left of centre. Re-express the window size in the target monitor's scale
first; equal scales give a ratio of 1, so single-monitor setups are untouched
to the pixel.

Widget growth resized without re-anchoring. `quickchat_set_expanded` resizes
and then repositions, but the widget path only resized, keeping the old top
edge. Growing from 360pt to 440pt in a 440pt work area left the bottom 80pt
off-screen and unreachable. `resize_window_if_needed` now reports whether it
actually changed the height so the caller re-anchors only on a real resize,
rather than moving the window when nothing changed.
2026-07-27 00:05:52 -04:00
Peter Steinberger
c23ca5fda2 fix(linux): hide Quick Chat before widget cleanup (#112308) 2026-07-21 20:07:56 -07:00
Peter Steinberger
e5610976cf fix(linux): harden Quick Chat widget lifecycle (#112261)
* fix(linux): harden Quick Chat widget lifecycle

* fix(linux): retry stale widget cleanup before reveal
2026-07-21 05:35:06 -07:00
Peter Steinberger
ba3711bb82 feat(linux): render widgets in Quick Chat (#111933) 2026-07-20 11:56:03 -07:00