https://bugs.kde.org/show_bug.cgi?id=477820
--- Comment #4 from fanzhuyi...@gmail.com --- I think I figured out what was causing this bug. The original placeSmart [1] was written under the assumption that all coordinates and dimensions are integers. Thus, it uses the `int` type to store such things. However, this assumption no longer holds under fractional scaling. In particular, the various methods of QRectF return qreal types [2], which can be non integers. Hence, currently the code mixes arithmetic between integers and floats, and sometimes implicitly converts the results to ints. Thus, after this sequence of assignments, > int possible; > possible = area.y() + area.height(); > y = possible; the expression `(y < area.y() + area.height())` might evaluate to true, causing an infinite loop. [1] https://invent.kde.org/plasma/kwin/-/blob/dd9e04fb180a7e7c9a49cd029fe497f19c537618/src/placement.cpp#L159 [2] https://doc.qt.io/qt-6/qrectf.html -- You are receiving this mail because: You are watching all bug changes.