Telegram github commits and releases
4.43K subscribers
601 files
21K links
Broadcast from the most important Telegram clients' repositories
Download Telegram
telegramdesktop/tdesktop/dev • df3d8b8 • 1 files, +5/-5
Fix rotated video rendering in calls

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • ab656cb • 1 files, +14/-3
Update Windows ARM64 action to VS2026

#tdesktop
🫡2
morethanwords/tweb/master • ed1ae98 • 1 files, +13/-1
fix: animate chat-list/topbar video avatars only for premium users

Match Telegram Android: in the chat list and chat topbar a video
(animated) avatar plays only when its owner is a Premium user.
Android's ImageReceiver.setForUserOrChat sets a videoLocation only
under isPremiumUser(user) && has_video, and its chat branch sets no
video at all — so non-Premium users, bots (which can't hold Premium)
and groups/channels all stay static there.

The big profile avatar and the avatar/media viewer are unchanged —
they keep animating for everyone. Owner Premium is read synchronously
from the cached peers mirror (apiManagerProxy.getUser), so this adds
no request to the avatar-render path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • afca7f7 • 1 files, +0/-2
fix: show "Nobody" option in Profile Photos privacy

The Profile Photos privacy section hid the Nobody radio via
skipTypes: [PrivacyType.Nobody]. Both official clients offer it
(Android PRIVACY_RULES_TYPE_PHOTO handles TYPE_NOBODY; tdesktop
ProfilePhotoPrivacyController handles Option::Nobody), and it is the
natural pairing for the public (fallback) photo — nobody sees the
real photo, restricted users see the public one.

Remove the skip and the now-unused PrivacyType import.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • aaad022 • 1 files, +0/-2
fix: show "Nobody" option in Bio privacy

All official clients (iOS, Android, Desktop) offer Everybody/Contacts/Nobody
for Bio (privacyKeyAbout). tweb was suppressing Nobody via skipTypes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • 34ea6c7 • 2 files, +21/-7
fix: stronger frosted-glass side blur for vertical photos with caption

The letterbox side-fill behind a portrait photo blurred the full-res image
at radius 12 then object-fit: cover scaled it down, making the blur barely
visible. Official clients downscale to a tiny thumbnail before blurring.

Add an optional maxSize to blur() that downscales the source before the
blur pass, and use blur(url, 10, 2, 48) for the side-fill (matches Android's
~48px/radius-10 config). Also cheaper: blurs a 48px image, not the full one.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

#webk
🫡3
morethanwords/tweb/master • 8be3bec • 1 files, +2/-2
fix: don't offer forward for protected messages in cross-chat selection

The per-peer loop in AppSelection.updateContainer overwrote cantForward/
cantDelete on each iteration instead of OR-accumulating them. With a
multi-peer selection (only reachable via global search), selecting a
no_forwards message plus a forwardable message from another chat left the
flags reflecting only the last peer iterated, re-enabling the Forward
button and bypassing the content-protection restriction.

Accumulate with ||= so a single unforwardable peer keeps the whole
selection unforwardable, matching cantForwardDeleteMids' per-mid logic
and the loop's existing `if(cantForward && cantDelete) break`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • 068e422 • 1 files, +7/-0
fix: don't hide sibling album items' floating overlays in media viewer

hideFloatings ran querySelectorAll over the whole bubble, so opening one
album item dimmed every item's .video-time/.video-play overlays. Scope to
the clicked item's .album-item while still hiding bubble-level floatings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • e2705c6 • 2 files, +14/-8
feat: show views/shares count in message time tooltip

Append exact views and forwards (shares) counts to the message
timestamp title, like in TDesktop, so hovering the time/views area
reveals them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

#webk
🫡3
telegramdesktop/tdesktop/dev • f310313 • 1 files, +1/-1
Try improving context loss handling.

telegramdesktop/tdesktop/dev • e38fc74 • 7 files, +210/-58
Mark IV links in shared links section.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • f52da56 • 2 files, +104/-77
Improved jump anchors in shared media with media calendar periods usage.

telegramdesktop/tdesktop/dev • 723bf18 • 1 files, +24/-8
Seeded media slice and added failure recovery to info shared media jump.

telegramdesktop/tdesktop/dev • 0d50917 • 1 files, +6/-1
Fixed missing story outline on first profile open.

Fixed #30760.

telegramdesktop/tdesktop/dev • ec0c611 • 1 files, +77/-24
Added share and QR menu to proxy connection confirmation box.

telegramdesktop/tdesktop/dev • 9d4ad88 • 1 files, +7/-1
Allowed copying internal proxy link via modifier key in connection box.

telegramdesktop/tdesktop/dev • e29458e • 5 files, +147/-0
Added dragging proxy links onto window to open connection box.

telegramdesktop/tdesktop/dev • 1d20073 • 2 files, +7/-0
Aligned admin log userpic context menu to open with forced origin.

telegramdesktop/tdesktop/dev • 511e9ea • 3 files, +4/-142
Added shared cached RHI capability probe to graphics detection.

telegramdesktop/tdesktop/dev • fdb9de7 • 1 files, +1/-1
Fixed possible crash on macOS.

telegramdesktop/tdesktop/dev • 0384edf • 1 files, +25/-3
Allowed dragging profile id as plain number.

telegramdesktop/tdesktop/dev • e5963b9 • 1 files, +78/-61
Added auto-fill from clipboard proxy link to new proxy box.

telegramdesktop/tdesktop/dev • 081c88d • 3 files, +72/-4
Added support of deep links for experimental settings.

telegramdesktop/tdesktop/dev • 056ca1c • 2 files, +8/-1
Replaced poll emoji with correspond icon in dialogs message layout.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 4d32a16 • 14 files, +179/-39
Fixed 3D premium covers drawing over shown boxes.

telegramdesktop/tdesktop/dev • 1fff9c0 • 1 files, +3/-52
Reverted "Updated macOS build on Github CI."

This reverts commit 02f420a0f369c8713933e1bf9fae86aa3876ed73.

telegramdesktop/tdesktop/dev • d6d8373 • 11 files, +146/-59
Added hiding phone number under spoiler in profile and edit sections.

telegramdesktop/tdesktop/dev • f513778 • 6 files, +97/-22
Slightly improved style of repeat selector in schedule box.

telegramdesktop/tdesktop/dev • 08f7937 • 1 files, +4/-0
Fixed centering of date and time text in schedule box fields.

telegramdesktop/tdesktop/dev • 3f50857 • 3 files, +575/-0
Added animated string transitions only for changed text part.

telegramdesktop/tdesktop/dev • 4b421f6 • 6 files, +136/-200
Moved local storage box to separate settings section.

telegramdesktop/tdesktop/dev • 9d9bdfc • 8 files, +568/-0
Added animated ring chart of cached data to local storage section.

telegramdesktop/tdesktop/dev • 6b805e8 • 4 files, +251/-0
Added device storage usage line to local storage section.

telegramdesktop/tdesktop/dev • c2a948a • 4 files, +102/-2
Added progress box display while clearing to storage local section.

telegramdesktop/tdesktop/dev • 4a4868c • 6 files, +1057/-253
Improved clear button and completion animation to local storage section.

telegramdesktop/tdesktop/dev • 6cca2d8 • 4 files, +116/-12
Slightly improved style of local storage section for limit sliders.

telegramdesktop/tdesktop/dev • b9ad1f7 • 1 files, +4/-2
Improved removal of pinned chats from chat filter folders.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 5c5baca • 30 files, +1069/-199
Update API scheme to layer 226. Guard-bots.

telegramdesktop/tdesktop/dev • ec0d523 • 2 files, +13/-0
Fix re-assigning guard bot.

telegramdesktop/tdesktop/dev • b1e012c • 14 files, +91/-26
Update API scheme to layer 227.

telegramdesktop/tdesktop/dev • d186e90 • 14 files, +1290/-64
Handle new types of IV blocks.

telegramdesktop/tdesktop/dev • 2f6c10d • 16 files, +559/-41
Simple rich message view in separate window.

telegramdesktop/tdesktop/dev • 5c825f3 • 28 files, +4170/-269
Support basic display of IV in messages.

telegramdesktop/tdesktop/dev • 304d42a • 2 files, +53/-13
[ai] Another shot at trailing return types rules.

telegramdesktop/tdesktop/dev • 51f0803 • 8 files, +56/-21
Improve internal wrapped URLs processing.

telegramdesktop/tdesktop/dev • 615abf6 • 7 files, +154/-140
Keep webpage_id inside CustomUrl entity data.

telegramdesktop/tdesktop/dev • a2b18e3 • 18 files, +51/-33
Use MakeWrappedEmoji which forwards nullptr-s.

telegramdesktop/tdesktop/dev • 23626fd • 1 files, +1/-1
Fix child field access in styles.

telegramdesktop/tdesktop/dev • fa63d64 • 25 files, +1707/-469
Improve rich_message display styles.

telegramdesktop/tdesktop/dev • 94572a6 • 2 files, +32/-3
Added initial API support of link to PollMedia.

telegramdesktop/tdesktop/dev • 4887aa6 • 6 files, +188/-2
[poll-view] Added poll answer link display support.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • b6ccc35 • 4 files, +185/-9
[poll-create] Added poll answer link entry and preview.

telegramdesktop/tdesktop/dev • 5eb021e • 3 files, +273/-1
[poll-view] Added Open Link box with webpage preview.

telegramdesktop/tdesktop/dev • 596d8ee • 14 files, +431/-463
Introduce MarkdownArticlePaintContext.

telegramdesktop/tdesktop/dev • b5cbc26 • 1 files, +14/-8
Improve IV styles in messages.

telegramdesktop/tdesktop/dev • d91bdfc • 3 files, +3/-13
Remove unused PhotoData/DocumentData in Iv::Data.

telegramdesktop/tdesktop/dev • 2676be3 • 1 files, +1/-1
Fix build with Xcode.

telegramdesktop/tdesktop/dev • db03b23 • 20 files, +1636/-486
Support selection in rich messages.

telegramdesktop/tdesktop/dev • a4ce226 • 8 files, +19/-1
Update API scheme layer on 227.

telegramdesktop/tdesktop/dev • 599459a • 9 files, +1666/-353
Animated reveal for rich messages.

telegramdesktop/tdesktop/dev • 2325662 • 5 files, +35/-8
Ignore Thinking block for rich text flattening.

telegramdesktop/tdesktop/dev • d20bd0a • 16 files, +422/-68
Support animated Thinking block.

telegramdesktop/tdesktop/dev • fb3c415 • 2 files, +63/-73
Improve thinking block animation.

telegramdesktop/tdesktop/dev • a3fa017 • 2 files, +6/-13
Just show "Invalid formula" if needed.

telegramdesktop/tdesktop/dev • b8b4a24 • 4 files, +36/-12
Retain custom emoji so they don't reset.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • ccc0b22 • 5 files, +161/-85
Improve details/summary design.

telegramdesktop/tdesktop/dev • 8008711 • 16 files, +1359/-530
Style fixes and disable edit for now.

telegramdesktop/tdesktop/dev • 96a30ae • 4 files, +0/-16790
Remove test_markdown_iv module.

telegramdesktop/tdesktop/dev • ee9d27f • 2 files, +3/-4
Fix table title being centered.

telegramdesktop/tdesktop/dev • c6679ea • 16 files, +351/-65
Fix scrolling to anchors in IV.

telegramdesktop/tdesktop/dev • ab12f11 • 5 files, +101/-6
Add "Wrong layout?" button to IV.

telegramdesktop/tdesktop/dev • 91789fb • 15 files, +623/-44
Correctly replace IV when full is loaded.

telegramdesktop/tdesktop/dev • 7e0a5e7 • 1 files, +6/-3
Update API scheme on layer 227.

telegramdesktop/tdesktop/dev • d7ea6ed • 7 files, +145/-40
Support same_origin in webapps.

telegramdesktop/tdesktop/dev • 9849406 • 3 files, +66/-0
Support blockquotes with a block list inside.

telegramdesktop/tdesktop/dev • a5b9a14 • 5 files, +140/-0
Support rich messages in inline bots.

telegramdesktop/tdesktop/dev • 8c987c2 • 27 files, +256/-5954
Remove legacy web-based Instant View.

telegramdesktop/tdesktop/dev • 2a69915 • 5 files, +30/-24
Allow scheduling checklists.

telegramdesktop/tdesktop/dev • f83e91c • 6 files, +37/-94
Update API scheme on layer 227.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 3b767e1 • 1 files, +9/-8
Clamp schedule time to accepted values.

telegramdesktop/tdesktop/dev • a9a2114 • 14 files, +277/-2244
Unify MTP page parsing.

telegramdesktop/tdesktop/dev • f61be2e • 2 files, +50/-5
Restore embeds through data requests.

telegramdesktop/tdesktop/dev • e5c6823 • 1 files, +8/-4
Accept any photos in IV.

telegramdesktop/tdesktop/dev • 093562a • 22 files, +1502/-50
Initial structure for future editor.

telegramdesktop/tdesktop/dev • 4ecd4f4 • 3 files, +215/-23
Improve selecting in editor.

telegramdesktop/tdesktop/dev • 22487e6 • 6 files, +428/-165
Improve inline editor field commits.

telegramdesktop/tdesktop/dev • f9dcb49 • 25 files, +2162/-263
Add all buttons to the editor.

telegramdesktop/tdesktop/dev • 051763e • 32 files, +3298/-286
Initial attempt to send articles.

telegramdesktop/tdesktop/dev • 29a93b1 • 22 files, +576/-65
Make block Code allowing of RichText.

telegramdesktop/tdesktop/dev • e83a880 • 17 files, +3403/-191
Support complex selection in the editor.

telegramdesktop/tdesktop/dev • 6baa2fc • 10 files, +250/-326
Support most blocks on save in editor.

telegramdesktop/tdesktop/dev • e1e49ce • 2 files, +58/-28
Improve editor selection logic.

telegramdesktop/tdesktop/dev • ea438ae • 11 files, +117/-26
Correctly host rich message in the item.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 3d45440 • 21 files, +1523/-164
Support horizontal scroll for tables in IV.

telegramdesktop/tdesktop/dev • f41327d • 10 files, +1958/-287
Horizontal scroll in IV when needed.

telegramdesktop/tdesktop/dev • 2701c96 • 14 files, +607/-10
Nice edit for details and task list blocks.

telegramdesktop/tdesktop/dev • 4093d93 • 1 files, +2/-1
Update API scheme on layer 227.

telegramdesktop/tdesktop/dev • 4404d44 • 6 files, +198/-19
Support starting typing into IV editor, including IME.

telegramdesktop/tdesktop/dev • 1d75773 • 11 files, +771/-170
Placeholders and block insertion points.

telegramdesktop/tdesktop/dev • 7b765a9 • 6 files, +463/-23
Improve blocks editing navigation.

telegramdesktop/tdesktop/dev • a3f572e • 3 files, +5/-5
Fix build with Xcode.

telegramdesktop/tdesktop/dev • 43c4a2e • 1 files, +1/-1
Update patches in snap.

telegramdesktop/tdesktop/dev • b0505eb • 10 files, +241/-64
Use correct message view as host of media.

telegramdesktop/tdesktop/dev • d29dbd7 • 3 files, +87/-50
Fix horizontall scrolling for tables.

telegramdesktop/tdesktop/dev • 7118a70 • 4 files, +356/-30
Improve arrow / backspace / del navigation.

telegramdesktop/tdesktop/dev • 2d372c2 • 14 files, +918/-59
Support IV-specific tags in the editor.

telegramdesktop/tdesktop/dev • 2cbb242 • 6 files, +552/-133
Support better navigation, show edited leaf.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 8b8b3eb • 32 files, +1081/-214
Support server-provided limits for rich messages.

telegramdesktop/tdesktop/dev • b2a6ceb • 10 files, +1753/-71
Edit tables from context menu.

telegramdesktop/tdesktop/dev • 8552f0a • 3 files, +190/-10
Support limits checking in tables.

telegramdesktop/tdesktop/dev • 54b3db7 • 13 files, +802/-137
Fix math block edit, media uploading.

telegramdesktop/tdesktop/dev • 7e8ad15 • 10 files, +522/-54
Support partial rich messages.

telegramdesktop/tdesktop/dev • 0bbfd31 • 2 files, +123/-1
Improve placeholder position in InputField.

telegramdesktop/tdesktop/dev • b68b43e • 1 files, +22/-13
Fix ripple in show full article button.

telegramdesktop/tdesktop/dev • 4ddd366 • 8 files, +668/-39
Fix the horizontal scrolling for nested blocks.

telegramdesktop/tdesktop/dev • 590f134 • 17 files, +7209/-1993
Optimize IV article resize and re-layout.

telegramdesktop/tdesktop/dev • 176d940 • 1 files, +188/-204
Attempt to fix large nested blockquote offset.

telegramdesktop/tdesktop/dev • f34c4bd • 15 files, +1520/-124
Support copy-paste of blocks lists.

telegramdesktop/tdesktop/dev • 49ade76 • 3 files, +24/-11
Allow table title editing.

telegramdesktop/tdesktop/dev • 9bec144 • 1 files, +5/-0
Disable forward without sender for rich pages.

telegramdesktop/tdesktop/dev • 7c01893 • 1 files, +68/-46
[poll-view] Improved style of link option placeholder by message bubble.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 59ecce7 • 4 files, +91/-46
[poll-create] Extracted poll answer link box helper into shared module.

telegramdesktop/tdesktop/dev • b452f93 • 1 files, +96/-2
[poll-view] Added link option to inline poll add-option overlay.

telegramdesktop/tdesktop/dev • b2d84f9 • 1 files, +7/-1
[poll-view] Fixed poll add-option alive when link box steals focus.

telegramdesktop/tdesktop/dev • 6a3907b • 1 files, +25/-7
[poll-view] Routed webpage box preview click through special handler.

telegramdesktop/tdesktop/dev • 089736c • 5 files, +1637/-401
Initial attempt to Undo/Redo in editor.

telegramdesktop/tdesktop/dev • 2499260 • 2 files, +41/-0
Allow Ctrl+A to select whole article.

telegramdesktop/tdesktop/dev • 4796cbe • 19 files, +453/-23
Support jump-to-anchor in rich messages.

telegramdesktop/tdesktop/dev • 43cc919 • 5 files, +17/-11
Fix build on macOS.

telegramdesktop/tdesktop/dev • dccc509 • 3 files, +70/-19
Fix text -> blocks serialization fixes.

telegramdesktop/tdesktop/dev • f4ca736 • 4 files, +19/-12
Fix reveal animation in rich messages.

telegramdesktop/tdesktop/dev • 5d00587 • 5 files, +190/-17
Animated scroll to anchor, viewer context fix.

telegramdesktop/tdesktop/dev • 525a58e • 10 files, +146/-28
Show correct captions for rich messages media.

telegramdesktop/tdesktop/dev • 4f776bb • 14 files, +757/-137
Launch IV editor in a separate window.

telegramdesktop/tdesktop/dev • 9a23418 • 9 files, +39/-20
Disable IV editor for now.

#tdesktop
🫡3
telegramdesktop/tdesktop/dev • 735dbfc • 3 files, +45/-25
Improve collage/slideshow, relax parsing.

telegramdesktop/tdesktop/dev • 61c74c9 • 1 files, +74/-28
Allow any capitalization in managed bot creation.

telegramdesktop/tdesktop/dev • c42d87d • 1 files, +2/-6
Skip unsuppored blocks in IV.

telegramdesktop/tdesktop/dev • 8f4a4ca • 2 files, +2/-1
Add Mpr on Windows for QStorageInfo.

#tdesktop
🫡3
morethanwords/tweb/master • fb658e6 • 3 files, +51/-10
fix: don't activate element behind emoji status picker on dismiss

Clicking outside the picker (e.g. a chat row) closed it, but the same mousedown/click also reached the element behind it — opening that chat. DropdownHover gains an opt-in suppressOutClick that swallows both the out-click and the mousedown that precedes it; the emoji status picker enables it.

Also track the open picker per anchor so re-clicking the anchor toggles it closed instead of stacking a duplicate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • 01fc481 • 4 files, +49/-8
fix: send oversized photos as JPEG to avoid PHOTO_SAVE_FILE_INVALID

A detailed image sent as a compressed photo could exceed the server's
limit and be rejected with PHOTO_SAVE_FILE_INVALID:
- the media editor encoded its result via canvas.toBlob() with no MIME
type, defaulting to PNG (a 2560px screenshot ~10MB);
- the normal attach path left PNG/BMP <=2560px as-is (PNG counts as
"server-supported"), so a heavy lossless image was sent uncompressed.

Now both paths produce a small JPEG when needed:
- newMedia.scaleImageForTelegram re-encodes a heavy lossless image
(PNG/BMP over PHOTO_HEAVY_BYTES) to JPEG and never upscales a smaller
image (min-capped boxSize). Normal/small images and JPEGs are left
untouched at full quality.
- The media editor's output format + quality are now caller-controlled
props (imageType / imageQuality), threaded through the context to
renderToImage instead of a hardcoded value. newMedia passes JPEG plus
a size-conditional quality (heavy source -> PHOTO_COMPRESSED_QUALITY,
else the browser default); the threshold/quality constants are shared
with the direct-send path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • 4405693 • 1 files, +8/-4
fix: surface photo-send errors in the bubble

On PHOTO_INVALID_DIMENSIONS / PHOTO_SAVE_FILE_INVALID, sendFile attempted a
photo->document auto-fallback (attachType = 'document'; message.send()) that
never actually re-sent — by that point the single upload deferred is already
settled and send() isn't re-invoked — and it never called toggleError, so the
message was left silently "sending" forever with no error indicator. Surface
the error instead, so the bubble shows the failed state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • 23a023f • 2 files, +17/-4
fix: show paid-reaction undo toast under the topbar, not behind it

The toast was Portal-mounted inside .bubbles, a z-index:1 stacking context (position:absolute + transform), which trapped its z-index:5 below the topbar (z-index:2) — so it rendered behind the chat header. Mount it on the .chat container (sibling to .topbar/.bubbles) so its z-index competes directly and wins.

Also anchor it to var(--chat-padding-top) with position:absolute so it docks just below the topbar (header + floating pinned plates) with a consistent gap across breakpoints, restoring the pre-redesign placement.

Covers both the paid-reaction and paid-messages undoable toasts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

#webk
🫡3
morethanwords/tweb/master • 419c75d • 4 files, +84/-3
feat: show empty paid-reaction star button on channel posts

On channel/group posts that already have reactions but no paid one,
prepend a count-0 paid (star) reaction button so users can send stars,
matching the official clients. Availability is gated on
channelFull.paid_reactions_available and cached per-peer (cleared on
chat_full_update) to avoid a worker round-trip per bubble; the star
renders at reaction size without a "0" counter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

morethanwords/tweb/master • 05e8572 • 1 files, +188/-22
feat: add image rotation to media viewer

A rotate button (rotate_left glyph) sits in the topbar next to zoom and
turns the image counterclockwise 90° per click, matching Telegram Desktop.
A 90°/270° turn swaps width/height and refits the image to fill the
viewport in the new orientation.

Pan/zoom are composed in screen space (outer) with the rotate+refit as the
inner transform, so dragging a rotated image follows the on-screen axes and
the zoom boundaries derive from the rotated bounding box. The close
animation transfers the turn onto the mover and unwinds it to upright as
the image shrinks into the thumbnail.

Photos only (a rotated video's player chrome isn't handled); desktop only,
matching the zoom controls' availability.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

#webk
🫡4👍1
telegramdesktop/tdesktop/dev • 92b8d18 • 1 files, +1/-1
Fix patches revision in snap.

#tdesktop
🫡3👍1
New telegramdesktop/tdesktop release: v6.9.0 (stable)

- Rich Text Formatting for Bots.
- Guardian Bots for Group Chats.
- Links in Poll Options.
- Viewer for Markdown files in .md format.
- Instant View that's really instant.

#tdesktop
🫡3