applets/notifications: remove binding loop in popup
Reason for the change
The notification popup sets the width of the body to equal the width of its parent ScrollView's Flickable. This does not necessarily cause a binding loop in a Layout, but it can if the body is long enough to require wrapping (which esablishes the loop) but not long enough to create a scroll bar (which would break the loop).
Instead, we bind the width to the ScrollView's width minus the scroll bar's width, which avoids the binding loop.
Test plan
Test cases:
notify-send "Useful Summary" "Informative body" -i "dialog-information"
notify-send "Useful Summary" "Informative body with more detail that is word-wrapped" -i "dialog-information"
notify-send "notify-send" "Informative body with more detail that is word-wrapped and the information never stops it's enough to get the notification to scroll even though it's hard to read this much until the notification times out" -i "dialog-information"
(without) 2) causes a binding loop, the others do not
(with) no binding loops
Screenshots or screen recordings
N/A
Bugs fixed
BUG: 499024 FIXED-IN: 6.4.0
The specifics seem to depend on the word-wrap algorithm as well, sometimes a notification that should otherwise trigger a binding loop does not actually do it. I haven't completely figured out the pattern, and I don't think it's worth spending more time on. I couldn't find a binding loop with the change.