[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [f1f07db](https://github.com/telegramdesktop/tdesktop/commit/f1f07dbcc5857b7083e4a01283f17097f785508c) • _1 files, +1/-1_
Guard the other popup menu show paths as well.

[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [b3e85dc](https://github.com/telegramdesktop/tdesktop/commit/b3e85dc5a34b469c63666ea176fbc05d51a1b922) • _2 files, +41/-2_
Fixed resetting icons that outlived their owner.

ChatStyle::value() hands its result to the caller, so the icons it makes
are not ours to keep in _ownedIcons: the lifetime overload's icons die
with the caller - a section's corner buttons, for instance, while the
session style lives on - and the by-value overload's live in a local.
A later palette change then reset through freed pointers.

Track only what the lifetime overload creates, and drop it again when
that lifetime ends.

[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [4f3da4d](https://github.com/telegramdesktop/tdesktop/commit/4f3da4db82d0c86a3959598e30bd064028f0784c) • _1 files, +7/-0_
Fixed stale last message after a service edition.

createServiceFromMtp() rebuilds the data topicRootId() reads, so a
service edition can move the item to another topic - and the old one was
left holding a raw pointer History::itemRemoved() would never tell it
about. The sublist beside it was already handled this way.

[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [7e4e39d](https://github.com/telegramdesktop/tdesktop/commit/7e4e39d93cbdbecb0832aa633730c79dc1138bbb) • _1 files, +5/-3_
Don't hide a download another entry still owns.

detach() reported the item removed even when another downloaded entry
still held it, so the downloads list dropped a row that was still backed
by a file until the view was rebuilt.

[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [98807cc](https://github.com/telegramdesktop/tdesktop/commit/98807ccef89356817b184c610cc9b28b9b8b6b53) • _1 files, +1/-1_
Don't call through a null WinRT stream reference factory.

[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [2ad89e6](https://github.com/telegramdesktop/tdesktop/commit/2ad89e6f95625b23e4ac821c7a2b4b17d78a2c38) • _2 files, +2/-2_
Update Qt patches, narrower guard and a wider cocoa one.

[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [eda64ab](https://github.com/telegramdesktop/tdesktop/commit/eda64abe2280c2a4a6e0d8c6d7cf6839faeb527d) • _1 files, +38/-13_
Fixed huge allocation cropping a panorama thumbnail.

Expanding to the box before cropping avoids deep copying a 12000x9000
photo, but it blows up the other way on an extreme aspect ratio: a
2560x26 panorama expands to about 35000x360, where cropping first cost
almost nothing. Both orders scale by the same factor, so take whichever
intermediate is smaller.

[telegramdesktop/tdesktop/public-canary](https://github.com/telegramdesktop/tdesktop/tree/public-canary) • [9f47cda](https://github.com/telegramdesktop/tdesktop/commit/9f47cdab0e57d1f231a298ed4cedd0451bb94220) • _1 files, +4/-1_
Fixed one more crash when the last monitor is removed.

[#tdesktop](?q=%23tdesktop)