UnigramDev/Unigram/swipe-to-go-back • 2f10a97 • 2 files, +38/-53
Drop the second interaction source the scroll mode made unnecessary
It was placed inside the scrolling host's content back when a scroller taking the
pan looked like the cause. It is not: once the manipulation is held open, an
ancestor source is reached over the content, which is what SettingsStickersPage
has been demonstrating all along - it works on nothing but the DetailRoot source,
its TableListView host never having been given one.
So the method keeps only the VerticalScrollMode it holds open, and no longer has
to reach the host's content element at all.
Two dead visual properties go with it. The sprite's CenterPoint was left from
when it was scaled on its own, and the container's Size does nothing on a
ContainerVisual, which draws nothing and carries no clip. The container's
CenterPoint stays and is now explained: mirroring runs through the X scale, so
the centre has to be the circle's.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
UnigramDev/Unigram/swipe-to-go-back • 92424b9 • 3 files, +31/-5
Ask for the back gesture rather than let it be brushed into
72 was borrowed from the reply and folder swipes, and at that distance it fired by
accident. Those two are cheap to trigger and cheap to undo. Leaving the page is
neither, so it now wants 120.
The threshold is public, because MessageSelector has to clamp its own tracker to
the same figure whenever back is what the left-to-right direction does. Left at
72 there, the pull would commit while the indicator was still a little over half
drawn - the tracker would reach its bound long before progress reached 1.
Share keeps 72, since it shares that direction only when back is not using it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#unigram
Drop the second interaction source the scroll mode made unnecessary
It was placed inside the scrolling host's content back when a scroller taking the
pan looked like the cause. It is not: once the manipulation is held open, an
ancestor source is reached over the content, which is what SettingsStickersPage
has been demonstrating all along - it works on nothing but the DetailRoot source,
its TableListView host never having been given one.
So the method keeps only the VerticalScrollMode it holds open, and no longer has
to reach the host's content element at all.
Two dead visual properties go with it. The sprite's CenterPoint was left from
when it was scaled on its own, and the container's Size does nothing on a
ContainerVisual, which draws nothing and carries no clip. The container's
CenterPoint stays and is now explained: mirroring runs through the X scale, so
the centre has to be the circle's.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
UnigramDev/Unigram/swipe-to-go-back • 92424b9 • 3 files, +31/-5
Ask for the back gesture rather than let it be brushed into
72 was borrowed from the reply and folder swipes, and at that distance it fired by
accident. Those two are cheap to trigger and cheap to undo. Leaving the page is
neither, so it now wants 120.
The threshold is public, because MessageSelector has to clamp its own tracker to
the same figure whenever back is what the left-to-right direction does. Left at
72 there, the pull would commit while the indicator was still a little over half
drawn - the tracker would reach its bound long before progress reached 1.
Share keeps 72, since it shares that direction only when back is not using it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#unigram
🫡1
telegramdesktop/tdesktop/nightly • 2cb96a0 • 4 files, +32/-4
Added activation guard for open editor window in context menu.
telegramdesktop/tdesktop/nightly • cd53bee • 3 files, +26/-9
Added returning of composed text to input field in support mode.
telegramdesktop/tdesktop/nightly • 244ddd8 • 1 files, +1/-3
Allowed copying rich blocks from selection inside one paragraph.
telegramdesktop/tdesktop/nightly • 2e4a0be • 5 files, +204/-0
Added accumulating queue for rich message task edits.
telegramdesktop/tdesktop/nightly • 37f175f • 2 files, +35/-0
Allowed toggling rich message tasks from message itself.
telegramdesktop/tdesktop/nightly • 9e7a85c • 7 files, +264/-5
Added rich paste toast above message field.
telegramdesktop/tdesktop/nightly • 16f3d7d • 1 files, +24/-1
Fixed loss of list items when copying article selection.
telegramdesktop/tdesktop/nightly • 75f45fc • 5 files, +81/-17
Added rich paste toast to compose controls.
telegramdesktop/tdesktop/nightly • ffdc25a • 2 files, +7/-0
Added discard of rich draft without confirmation with pressed Ctrl.
telegramdesktop/tdesktop/nightly • fa95b4c • 1 files, +28/-0
Fixed checkbox colors of rich text messages for dark chat themes.
telegramdesktop/tdesktop/nightly • fe7825b • 1 files, +2/-1
Added discard of article draft without confirmation with pressed Ctrl.
telegramdesktop/tdesktop/nightly • 7f5d6ae • 4 files, +132/-67
[iv-editor] Moved Enter handling into command chain.
telegramdesktop/tdesktop/nightly • 0264867 • 4 files, +265/-1
[iv-editor] Added list nesting by Tab and Shift+Tab.
#tdesktop
Added activation guard for open editor window in context menu.
telegramdesktop/tdesktop/nightly • cd53bee • 3 files, +26/-9
Added returning of composed text to input field in support mode.
telegramdesktop/tdesktop/nightly • 244ddd8 • 1 files, +1/-3
Allowed copying rich blocks from selection inside one paragraph.
telegramdesktop/tdesktop/nightly • 2e4a0be • 5 files, +204/-0
Added accumulating queue for rich message task edits.
telegramdesktop/tdesktop/nightly • 37f175f • 2 files, +35/-0
Allowed toggling rich message tasks from message itself.
telegramdesktop/tdesktop/nightly • 9e7a85c • 7 files, +264/-5
Added rich paste toast above message field.
telegramdesktop/tdesktop/nightly • 16f3d7d • 1 files, +24/-1
Fixed loss of list items when copying article selection.
telegramdesktop/tdesktop/nightly • 75f45fc • 5 files, +81/-17
Added rich paste toast to compose controls.
telegramdesktop/tdesktop/nightly • ffdc25a • 2 files, +7/-0
Added discard of rich draft without confirmation with pressed Ctrl.
telegramdesktop/tdesktop/nightly • fa95b4c • 1 files, +28/-0
Fixed checkbox colors of rich text messages for dark chat themes.
telegramdesktop/tdesktop/nightly • fe7825b • 1 files, +2/-1
Added discard of article draft without confirmation with pressed Ctrl.
telegramdesktop/tdesktop/nightly • 7f5d6ae • 4 files, +132/-67
[iv-editor] Moved Enter handling into command chain.
telegramdesktop/tdesktop/nightly • 0264867 • 4 files, +265/-1
[iv-editor] Added list nesting by Tab and Shift+Tab.
#tdesktop
🫡2
telegramdesktop/tdesktop/nightly • ac66221 • 1 files, +20/-4
[iv-editor] Added list split on Enter in empty item.
telegramdesktop/tdesktop/nightly • 8b5ff36 • 1 files, +17/-0
[iv-editor] Added nested list item lift on Backspace.
telegramdesktop/tdesktop/nightly • 2d85f84 • 2 files, +168/-2
[iv-editor] Added joining of next list item on Delete.
telegramdesktop/tdesktop/nightly • ce328d4 • 3 files, +216/-9
[iv-editor] Added appending of paragraph to list above on Tab.
telegramdesktop/tdesktop/nightly • e5f23ba • 2 files, +51/-0
[iv-editor] Added merging of adjacent lists of same kind.
telegramdesktop/tdesktop/nightly • 1cbc532 • 1 files, +7/-3
[iv-editor] Added unchecked state for split task items.
telegramdesktop/tdesktop/nightly • b1c93f3 • 4 files, +126/-4
[iv-editor] Added list input rules with Backspace undo.
telegramdesktop/tdesktop/nightly • 3470f6c • 4 files, +77/-1
[iv-editor] Added styled block reset on first Backspace.
telegramdesktop/tdesktop/nightly • a07fd85 • 2 files, +61/-6
[iv-editor] Replaced merge into empty block above with removal.
telegramdesktop/tdesktop/nightly • 6579d83 • 3 files, +69/-0
[iv-editor] Added quote exit on Enter in empty last line.
telegramdesktop/tdesktop/nightly • 2a4addc • 2 files, +91/-1
[iv-editor] Added quote exit on Backspace in first line.
telegramdesktop/tdesktop/nightly • 8f2a974 • 2 files, +66/-3
[iv-editor] Added pulling of block below into quote on Delete.
telegramdesktop/tdesktop/nightly • cfdd8c8 • 3 files, +30/-2
[iv-editor] Added heading, quote and code input rules.
#tdesktop
[iv-editor] Added list split on Enter in empty item.
telegramdesktop/tdesktop/nightly • 8b5ff36 • 1 files, +17/-0
[iv-editor] Added nested list item lift on Backspace.
telegramdesktop/tdesktop/nightly • 2d85f84 • 2 files, +168/-2
[iv-editor] Added joining of next list item on Delete.
telegramdesktop/tdesktop/nightly • ce328d4 • 3 files, +216/-9
[iv-editor] Added appending of paragraph to list above on Tab.
telegramdesktop/tdesktop/nightly • e5f23ba • 2 files, +51/-0
[iv-editor] Added merging of adjacent lists of same kind.
telegramdesktop/tdesktop/nightly • 1cbc532 • 1 files, +7/-3
[iv-editor] Added unchecked state for split task items.
telegramdesktop/tdesktop/nightly • b1c93f3 • 4 files, +126/-4
[iv-editor] Added list input rules with Backspace undo.
telegramdesktop/tdesktop/nightly • 3470f6c • 4 files, +77/-1
[iv-editor] Added styled block reset on first Backspace.
telegramdesktop/tdesktop/nightly • a07fd85 • 2 files, +61/-6
[iv-editor] Replaced merge into empty block above with removal.
telegramdesktop/tdesktop/nightly • 6579d83 • 3 files, +69/-0
[iv-editor] Added quote exit on Enter in empty last line.
telegramdesktop/tdesktop/nightly • 2a4addc • 2 files, +91/-1
[iv-editor] Added quote exit on Backspace in first line.
telegramdesktop/tdesktop/nightly • 8f2a974 • 2 files, +66/-3
[iv-editor] Added pulling of block below into quote on Delete.
telegramdesktop/tdesktop/nightly • cfdd8c8 • 3 files, +30/-2
[iv-editor] Added heading, quote and code input rules.
#tdesktop
🫡2
telegramdesktop/tdesktop/nightly • eb2ed2f • 1 files, +0/-3
[iv-editor] Added line inside quote on Enter at its end.
telegramdesktop/tdesktop/nightly • f6c7cdc • 3 files, +146/-3
[iv-editor] Added distribution of selected lines into list items.
telegramdesktop/tdesktop/nightly • e5d6699 • 3 files, +4/-1
[iv-editor] Added instant applying of typed markdown to editor field.
telegramdesktop/tdesktop/nightly • 8569ba6 • 4 files, +790/-0
[iv-editor] Added markdown structure import on paste.
telegramdesktop/tdesktop/nightly • 167bb0f • 2 files, +41/-2
[iv-editor] Added format shortcuts for broader selection.
telegramdesktop/tdesktop/nightly • 7813cf9 • 4 files, +49/-93
[iv-editor] Moved selection ordering helpers to markdown module.
telegramdesktop/tdesktop/nightly • e9a6ade • 3 files, +113/-91
[iv-editor] Moved clipboard media helpers to import module.
telegramdesktop/tdesktop/nightly • 3f783e1 • 5 files, +77/-52
[iv-editor] Moved theme helpers to markdown module shared with viewer.
telegramdesktop/tdesktop/nightly • 1ba2175 • 4 files, +120/-69
[iv-editor] Moved article style and metrics to iv_editor_article_style.
telegramdesktop/tdesktop/nightly • 073b634 • 4 files, +374/-303
[iv-editor] Moved formula editing box to iv_editor_math_box.
telegramdesktop/tdesktop/nightly • f50b23d • 4 files, +955/-774
[iv-editor] Moved owner algebra to iv_editor_prepared_selection.
telegramdesktop/tdesktop/nightly • e0219d5 • 4 files, +510/-411
[iv-editor] Moved table and list menus to iv_editor_structure_menu.
telegramdesktop/tdesktop/nightly • 10c9b3b • 5 files, +52/-34
[iv-editor] Moved block insert types out of State class.
#tdesktop
[iv-editor] Added line inside quote on Enter at its end.
telegramdesktop/tdesktop/nightly • f6c7cdc • 3 files, +146/-3
[iv-editor] Added distribution of selected lines into list items.
telegramdesktop/tdesktop/nightly • e5d6699 • 3 files, +4/-1
[iv-editor] Added instant applying of typed markdown to editor field.
telegramdesktop/tdesktop/nightly • 8569ba6 • 4 files, +790/-0
[iv-editor] Added markdown structure import on paste.
telegramdesktop/tdesktop/nightly • 167bb0f • 2 files, +41/-2
[iv-editor] Added format shortcuts for broader selection.
telegramdesktop/tdesktop/nightly • 7813cf9 • 4 files, +49/-93
[iv-editor] Moved selection ordering helpers to markdown module.
telegramdesktop/tdesktop/nightly • e9a6ade • 3 files, +113/-91
[iv-editor] Moved clipboard media helpers to import module.
telegramdesktop/tdesktop/nightly • 3f783e1 • 5 files, +77/-52
[iv-editor] Moved theme helpers to markdown module shared with viewer.
telegramdesktop/tdesktop/nightly • 1ba2175 • 4 files, +120/-69
[iv-editor] Moved article style and metrics to iv_editor_article_style.
telegramdesktop/tdesktop/nightly • 073b634 • 4 files, +374/-303
[iv-editor] Moved formula editing box to iv_editor_math_box.
telegramdesktop/tdesktop/nightly • f50b23d • 4 files, +955/-774
[iv-editor] Moved owner algebra to iv_editor_prepared_selection.
telegramdesktop/tdesktop/nightly • e0219d5 • 4 files, +510/-411
[iv-editor] Moved table and list menus to iv_editor_structure_menu.
telegramdesktop/tdesktop/nightly • 10c9b3b • 5 files, +52/-34
[iv-editor] Moved block insert types out of State class.
#tdesktop
🫡2
telegramdesktop/tdesktop/nightly • 43ebea7 • 6 files, +500/-420
[iv-editor] Moved block factories to iv_editor_page_blocks.
telegramdesktop/tdesktop/nightly • 404a4c9 • 5 files, +342/-240
[iv-editor] Moved ordered list helpers to iv_editor_page_list.
telegramdesktop/tdesktop/nightly • 0965000 • 4 files, +132/-242
[iv-editor] Moved tag algebra and field chunking to text entities.
telegramdesktop/tdesktop/nightly • 16b4410 • 5 files, +158/-149
[iv-editor] Moved media block helpers to iv_editor_page_media.
telegramdesktop/tdesktop/nightly • fcba9f1 • 3 files, +100/-74
[iv-editor] Moved block path types out of State class.
telegramdesktop/tdesktop/nightly • cb14b60 • 5 files, +120/-134
[iv-editor] Moved block path helpers to iv_editor_page_path.
telegramdesktop/tdesktop/nightly • fcb5fba • 5 files, +411/-507
[iv-editor] Moved table grid helpers to iv_editor_page_table_grid.
telegramdesktop/tdesktop/nightly • a30eda8 • 2 files, +31/-0
[iv-editor] Added replace and edit actions to grouped media menu.
telegramdesktop/tdesktop/nightly • 65e7a1a • 2 files, +41/-13
[iv-editor] Added removal of list from range of selected items.
telegramdesktop/tdesktop/nightly • f48325d • 1 files, +9/-5
[iv-editor] Added removal of task list by its own toolbar action.
telegramdesktop/tdesktop/nightly • dfd4efa • 2 files, +68/-0
[iv-editor] Added removal of lists selected as whole blocks.
telegramdesktop/tdesktop/nightly • 591ec53 • 1 files, +55/-4
[iv-editor] Added splitting of multiline selection into list items.
telegramdesktop/tdesktop/nightly • e981c74 • 2 files, +42/-0
[iv-editor] Added detection of rich structure in pasted data.
#tdesktop
[iv-editor] Moved block factories to iv_editor_page_blocks.
telegramdesktop/tdesktop/nightly • 404a4c9 • 5 files, +342/-240
[iv-editor] Moved ordered list helpers to iv_editor_page_list.
telegramdesktop/tdesktop/nightly • 0965000 • 4 files, +132/-242
[iv-editor] Moved tag algebra and field chunking to text entities.
telegramdesktop/tdesktop/nightly • 16b4410 • 5 files, +158/-149
[iv-editor] Moved media block helpers to iv_editor_page_media.
telegramdesktop/tdesktop/nightly • fcba9f1 • 3 files, +100/-74
[iv-editor] Moved block path types out of State class.
telegramdesktop/tdesktop/nightly • cb14b60 • 5 files, +120/-134
[iv-editor] Moved block path helpers to iv_editor_page_path.
telegramdesktop/tdesktop/nightly • fcb5fba • 5 files, +411/-507
[iv-editor] Moved table grid helpers to iv_editor_page_table_grid.
telegramdesktop/tdesktop/nightly • a30eda8 • 2 files, +31/-0
[iv-editor] Added replace and edit actions to grouped media menu.
telegramdesktop/tdesktop/nightly • 65e7a1a • 2 files, +41/-13
[iv-editor] Added removal of list from range of selected items.
telegramdesktop/tdesktop/nightly • f48325d • 1 files, +9/-5
[iv-editor] Added removal of task list by its own toolbar action.
telegramdesktop/tdesktop/nightly • dfd4efa • 2 files, +68/-0
[iv-editor] Added removal of lists selected as whole blocks.
telegramdesktop/tdesktop/nightly • 591ec53 • 1 files, +55/-4
[iv-editor] Added splitting of multiline selection into list items.
telegramdesktop/tdesktop/nightly • e981c74 • 2 files, +42/-0
[iv-editor] Added detection of rich structure in pasted data.
#tdesktop
🫡2
telegramdesktop/tdesktop/nightly • c529648 • 2 files, +21/-0
[iv-editor] Added pasting of source data into just opened editor.
telegramdesktop/tdesktop/nightly • 9422ead • 2 files, +33/-0
[iv-editor] Added plain text offer for pasted markdown.
telegramdesktop/tdesktop/nightly • 2dac0db • 6 files, +119/-0
[iv-editor] Added joining of typed list with adjacent list of same kind.
telegramdesktop/tdesktop/nightly • b245f3c • 2 files, +38/-6
[iv-editor] Added joining of lists created by toolbar with neighbours.
telegramdesktop/tdesktop/nightly • e70f94c • 4 files, +18/-2
[iv-editor] Added wrapping of active line into list without selection.
telegramdesktop/tdesktop/nightly • 0647c5b • 1 files, +0/-11
[iv-editor] Replaced list item with paragraph for text left below line.
telegramdesktop/tdesktop/nightly • b14a887 • 1 files, +2/-1
[iv-editor] Removed redundant start pinning for list kept above unwrap.
telegramdesktop/tdesktop/nightly • 79a6f4e • 2 files, +17/-14
[iv-editor] Added joining of pasted list with neighbours of same kind.
telegramdesktop/tdesktop/nightly • 33d91a2 • 5 files, +51/-25
[iv-editor] Added empty list item guard for list insertion.
telegramdesktop/tdesktop/nightly • 2e39c01 • 1 files, +8/-0
[iv-editor] Fixed caret loss after undo of structural change.
telegramdesktop/tdesktop/nightly • c1a3440 • 1 files, +2/-2
[iv-editor] Fixed last line skip for vertical caret move in field.
telegramdesktop/tdesktop/nightly • c58adda • 1 files, +11/-6
[iv-editor] Replaced item start with last line for caret moving up.
telegramdesktop/tdesktop/nightly • a8e0c1f • 1 files, +2/-1
[iv-editor] Fixed missing redraw for ordered list turned into bullet.
#tdesktop
[iv-editor] Added pasting of source data into just opened editor.
telegramdesktop/tdesktop/nightly • 9422ead • 2 files, +33/-0
[iv-editor] Added plain text offer for pasted markdown.
telegramdesktop/tdesktop/nightly • 2dac0db • 6 files, +119/-0
[iv-editor] Added joining of typed list with adjacent list of same kind.
telegramdesktop/tdesktop/nightly • b245f3c • 2 files, +38/-6
[iv-editor] Added joining of lists created by toolbar with neighbours.
telegramdesktop/tdesktop/nightly • e70f94c • 4 files, +18/-2
[iv-editor] Added wrapping of active line into list without selection.
telegramdesktop/tdesktop/nightly • 0647c5b • 1 files, +0/-11
[iv-editor] Replaced list item with paragraph for text left below line.
telegramdesktop/tdesktop/nightly • b14a887 • 1 files, +2/-1
[iv-editor] Removed redundant start pinning for list kept above unwrap.
telegramdesktop/tdesktop/nightly • 79a6f4e • 2 files, +17/-14
[iv-editor] Added joining of pasted list with neighbours of same kind.
telegramdesktop/tdesktop/nightly • 33d91a2 • 5 files, +51/-25
[iv-editor] Added empty list item guard for list insertion.
telegramdesktop/tdesktop/nightly • 2e39c01 • 1 files, +8/-0
[iv-editor] Fixed caret loss after undo of structural change.
telegramdesktop/tdesktop/nightly • c1a3440 • 1 files, +2/-2
[iv-editor] Fixed last line skip for vertical caret move in field.
telegramdesktop/tdesktop/nightly • c58adda • 1 files, +11/-6
[iv-editor] Replaced item start with last line for caret moving up.
telegramdesktop/tdesktop/nightly • a8e0c1f • 1 files, +2/-1
[iv-editor] Fixed missing redraw for ordered list turned into bullet.
#tdesktop
🫡2
telegramdesktop/tdesktop/nightly • e717a35 • 3 files, +18/-18
[iv-editor] Added subscript, superscript and marked to selected text.
telegramdesktop/tdesktop/nightly • 9db910e • 2 files, +19/-4
[iv-editor] Added mutual exclusion for subscript and superscript.
telegramdesktop/tdesktop/nightly • e3a0aac • 1 files, +4/-7
[iv-editor] Replaced next cell with cell below on Enter inside table.
telegramdesktop/tdesktop/nightly • 848bcc6 • 2 files, +73/-5
[iv-editor] Fixed loss of list items wrapped into quote.
telegramdesktop/tdesktop/nightly • e1366c1 • 3 files, +11/-1
[iv-editor] Fixed Enter with emoji suggestion having no selection.
telegramdesktop/tdesktop/nightly • f1b43a2 • 2 files, +63/-4
Added ability to replace of rich message media from clipboard.
telegramdesktop/tdesktop/nightly • 25dbc07 • 4 files, +12/-14
[iv-editor] Removed nested list insertion from inside list item.
telegramdesktop/tdesktop/nightly • 217a105 • 2 files, +11/-0
[iv-editor] Fixed line text disappearing after Tab in nested list.
telegramdesktop/tdesktop/nightly • 42acefe • 4 files, +60/-0
[iv-editor] Fixed Backspace on blank list item restructuring previous item.
telegramdesktop/tdesktop/nightly • 3e0e7ef • 3 files, +21/-2
[iv-editor] Fixed Tab and Shift+Tab not adopting list style of new level.
telegramdesktop/tdesktop/nightly • 4f5d66d • 2 files, +37/-12
[iv-editor] Fixed monospace in table cell inserting empty block after table.
telegramdesktop/tdesktop/nightly • ece7165 • 2 files, +33/-3
[iv-editor] Fixed emoji shifting text offsets in inline editor field.
telegramdesktop/tdesktop/nightly • 2f637bb • 3 files, +74/-1
[iv-editor] Fixed Shift+Tab on nested line lifting whole list item.
#tdesktop
[iv-editor] Added subscript, superscript and marked to selected text.
telegramdesktop/tdesktop/nightly • 9db910e • 2 files, +19/-4
[iv-editor] Added mutual exclusion for subscript and superscript.
telegramdesktop/tdesktop/nightly • e3a0aac • 1 files, +4/-7
[iv-editor] Replaced next cell with cell below on Enter inside table.
telegramdesktop/tdesktop/nightly • 848bcc6 • 2 files, +73/-5
[iv-editor] Fixed loss of list items wrapped into quote.
telegramdesktop/tdesktop/nightly • e1366c1 • 3 files, +11/-1
[iv-editor] Fixed Enter with emoji suggestion having no selection.
telegramdesktop/tdesktop/nightly • f1b43a2 • 2 files, +63/-4
Added ability to replace of rich message media from clipboard.
telegramdesktop/tdesktop/nightly • 25dbc07 • 4 files, +12/-14
[iv-editor] Removed nested list insertion from inside list item.
telegramdesktop/tdesktop/nightly • 217a105 • 2 files, +11/-0
[iv-editor] Fixed line text disappearing after Tab in nested list.
telegramdesktop/tdesktop/nightly • 42acefe • 4 files, +60/-0
[iv-editor] Fixed Backspace on blank list item restructuring previous item.
telegramdesktop/tdesktop/nightly • 3e0e7ef • 3 files, +21/-2
[iv-editor] Fixed Tab and Shift+Tab not adopting list style of new level.
telegramdesktop/tdesktop/nightly • 4f5d66d • 2 files, +37/-12
[iv-editor] Fixed monospace in table cell inserting empty block after table.
telegramdesktop/tdesktop/nightly • ece7165 • 2 files, +33/-3
[iv-editor] Fixed emoji shifting text offsets in inline editor field.
telegramdesktop/tdesktop/nightly • 2f637bb • 3 files, +74/-1
[iv-editor] Fixed Shift+Tab on nested line lifting whole list item.
#tdesktop
🫡2
telegramdesktop/tdesktop/nightly • 5fb972e • 1 files, +6/-4
[iv-editor] Moved horizontal scroll of nested lists to outermost list.
telegramdesktop/tdesktop/nightly • 92be038 • 3 files, +8/-1
[iv-editor] Removed decimal item numbering for non-decimal lists.
telegramdesktop/tdesktop/nightly • 1cf8a8f • 3 files, +21/-6
[iv-editor] Added reset of item numbering on list type change.
telegramdesktop/tdesktop/nightly • d1b1232 • 3 files, +10/-1
[iv-editor] Added whole list condition for numbering type check.
telegramdesktop/tdesktop/nightly • 8dff50c • 1 files, +5/-1
[iv-editor] Fixed Enter at line end moving nested list to new item.
telegramdesktop/tdesktop/nightly • a9f7917 • 4 files, +51/-6
[iv-editor] Added downgrade of block entities to inline in table cell.
telegramdesktop/tdesktop/nightly • 2b6c47a • 2 files, +51/-1
[iv-editor] Fixed multiline monospace in table cell becoming code block.
telegramdesktop/tdesktop/nightly • 11bbffd • 1 files, +1/-1
[iv-editor] Fixed custom emoji replaced with plain one on Enter.
telegramdesktop/tdesktop/nightly • 2d62512 • 3 files, +21/-4
[iv-editor] Added guards for list depth keys.
#tdesktop
[iv-editor] Moved horizontal scroll of nested lists to outermost list.
telegramdesktop/tdesktop/nightly • 92be038 • 3 files, +8/-1
[iv-editor] Removed decimal item numbering for non-decimal lists.
telegramdesktop/tdesktop/nightly • 1cf8a8f • 3 files, +21/-6
[iv-editor] Added reset of item numbering on list type change.
telegramdesktop/tdesktop/nightly • d1b1232 • 3 files, +10/-1
[iv-editor] Added whole list condition for numbering type check.
telegramdesktop/tdesktop/nightly • 8dff50c • 1 files, +5/-1
[iv-editor] Fixed Enter at line end moving nested list to new item.
telegramdesktop/tdesktop/nightly • a9f7917 • 4 files, +51/-6
[iv-editor] Added downgrade of block entities to inline in table cell.
telegramdesktop/tdesktop/nightly • 2b6c47a • 2 files, +51/-1
[iv-editor] Fixed multiline monospace in table cell becoming code block.
telegramdesktop/tdesktop/nightly • 11bbffd • 1 files, +1/-1
[iv-editor] Fixed custom emoji replaced with plain one on Enter.
telegramdesktop/tdesktop/nightly • 2d62512 • 3 files, +21/-4
[iv-editor] Added guards for list depth keys.
#tdesktop
🫡3
telegramdesktop/tdesktop/nightly • cf962e2 • 1 files, +4/-2
[iv-editor] Fixed two list markers in one row on Enter at line end.
telegramdesktop/tdesktop/nightly • 9ceb459 • 4 files, +51/-6
[iv-editor] Added downgrade of block entities to inline in table cell.
telegramdesktop/tdesktop/nightly • 5c126c6 • 2 files, +51/-1
[iv-editor] Fixed multiline monospace in table cell becoming code block.
telegramdesktop/tdesktop/nightly • 4a8d704 • 1 files, +1/-1
[iv-editor] Fixed custom emoji replaced with plain one on Enter.
telegramdesktop/tdesktop/nightly • 0a23d24 • 3 files, +21/-4
[iv-editor] Added guards for list depth keys.
telegramdesktop/tdesktop/nightly • 22b64d5 • 1 files, +13/-30
[iv-editor] Fixed Enter at item start removing empty item above.
#tdesktop
[iv-editor] Fixed two list markers in one row on Enter at line end.
telegramdesktop/tdesktop/nightly • 9ceb459 • 4 files, +51/-6
[iv-editor] Added downgrade of block entities to inline in table cell.
telegramdesktop/tdesktop/nightly • 5c126c6 • 2 files, +51/-1
[iv-editor] Fixed multiline monospace in table cell becoming code block.
telegramdesktop/tdesktop/nightly • 4a8d704 • 1 files, +1/-1
[iv-editor] Fixed custom emoji replaced with plain one on Enter.
telegramdesktop/tdesktop/nightly • 0a23d24 • 3 files, +21/-4
[iv-editor] Added guards for list depth keys.
telegramdesktop/tdesktop/nightly • 22b64d5 • 1 files, +13/-30
[iv-editor] Fixed Enter at item start removing empty item above.
#tdesktop
🫡2
TGX-Android/Telegram-X/main • b781339 • 9 files, +342/-130
Add foreground service for contacts sync
TGX-Android/Telegram-X/main • a518d08 • 2 files, +28/-0
Explicitly disable device transfer
TGX-Android/Telegram-X/main • 1e0d498 • 1 files, +1/-1
Version bump to `1801`
#tgxandroid
Add foreground service for contacts sync
TGX-Android/Telegram-X/main • a518d08 • 2 files, +28/-0
Explicitly disable device transfer
TGX-Android/Telegram-X/main • 1e0d498 • 1 files, +1/-1
Version bump to `1801`
#tgxandroid
🫡3
UnigramDev/Unigram/record-session • a9d5872 • 9 files, +1363/-1157
Give a recording an owner
The record button held four things: the gesture, the state of the recording, the
capture engine, and the decision of what to do with the result. The engine was a
thread-static singleton every loaded button subscribed to, so a recording started
in one chat drove the state of every other chat and story composer on the thread,
and QuantumProcessed was a single field that whichever button loaded last took
over and the first to unload set back to null.
ChatRecordSession now owns the state and the engine, one per button, which is one
per chat. What is left in the button is the press-and-hold gesture and its own
visuals.
Seven booleans and an integer interface state become three named states. The
fourth one - locked, then stopped - was only reachable through StopRecording(false),
which nothing ever called, so it went out along with the tri-state stop that
neither sent nor discarded what it recorded. Cancel and Complete say which they
are.
Elapsed comes off a monotonic clock rather than DateTime.Now, freezes while
paused, and starts when the capture device is actually open rather than when the
button was pressed. The pause state is reset when a recording ends instead of
leaking into the next one, and the bar detaches from the button on unload.
Permissions go through MediaDevicePermissions, which is what calls already use,
so granting access no longer costs the first press: the old check asked
DeviceAccessInformation and then returned false regardless, leaving the prompt as
the only thing that press did.
MediaCapture.Failed ends the recording instead of only logging it, and a press
too short to record now says so.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#unigram
Give a recording an owner
The record button held four things: the gesture, the state of the recording, the
capture engine, and the decision of what to do with the result. The engine was a
thread-static singleton every loaded button subscribed to, so a recording started
in one chat drove the state of every other chat and story composer on the thread,
and QuantumProcessed was a single field that whichever button loaded last took
over and the first to unload set back to null.
ChatRecordSession now owns the state and the engine, one per button, which is one
per chat. What is left in the button is the press-and-hold gesture and its own
visuals.
Seven booleans and an integer interface state become three named states. The
fourth one - locked, then stopped - was only reachable through StopRecording(false),
which nothing ever called, so it went out along with the tri-state stop that
neither sent nor discarded what it recorded. Cancel and Complete say which they
are.
Elapsed comes off a monotonic clock rather than DateTime.Now, freezes while
paused, and starts when the capture device is actually open rather than when the
button was pressed. The pause state is reset when a recording ends instead of
leaking into the next one, and the bar detaches from the button on unload.
Permissions go through MediaDevicePermissions, which is what calls already use,
so granting access no longer costs the first press: the old check asked
DeviceAccessInformation and then returned false regardless, leaving the prompt as
the only thing that press did.
MediaCapture.Failed ends the recording instead of only logging it, and a press
too short to record now says so.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#unigram
TGX-Android/Telegram-X/main • 4bdf4de • 1 files, +0/-1
Remove rudimentary logging
TGX-Android/Telegram-X/main • 93fda89 • 2 files, +6/-6
Update dependencies
TGX-Android/Telegram-X/main • a874e13 • 1 files, +1/-1
Update FFmpeg to FFmpeg/FFmpeg@e21e475
TGX-Android/Telegram-X/main • 283aa9e • 1 files, +1/-1
Do not use `-Xlint:-dangling-doc-comments`
TGX-Android/Telegram-X/main • c9798eb • 3 files, +27275/-26631
Update baseline profile
TGX-Android/Telegram-X/main • d2008bd • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
Remove rudimentary logging
TGX-Android/Telegram-X/main • 93fda89 • 2 files, +6/-6
Update dependencies
TGX-Android/Telegram-X/main • a874e13 • 1 files, +1/-1
Update FFmpeg to FFmpeg/FFmpeg@e21e475
TGX-Android/Telegram-X/main • 283aa9e • 1 files, +1/-1
Do not use `-Xlint:-dangling-doc-comments`
TGX-Android/Telegram-X/main • c9798eb • 3 files, +27275/-26631
Update baseline profile
TGX-Android/Telegram-X/main • d2008bd • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
🫡3
TGX-Android/Telegram-X/main • 7ada8e7 • 7 files, +89/-115
Update pre-latest flavors
TGX-Android/Telegram-X/main • c7e7825 • 1 files, +0/-35
Remove `update-dependencies.sh`
TGX-Android/Telegram-X/main • eff99a9 • 1 files, +4/-0
Add final cleanup after FFmpeg build
TGX-Android/Telegram-X/main • 3c9d9c9 • 1 files, +10/-0
Require JDK 21
TGX-Android/Telegram-X/main • 8369017 • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
Update pre-latest flavors
TGX-Android/Telegram-X/main • c7e7825 • 1 files, +0/-35
Remove `update-dependencies.sh`
TGX-Android/Telegram-X/main • eff99a9 • 1 files, +4/-0
Add final cleanup after FFmpeg build
TGX-Android/Telegram-X/main • 3c9d9c9 • 1 files, +10/-0
Require JDK 21
TGX-Android/Telegram-X/main • 8369017 • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
🫡3
TGX-Android/Telegram-X/main • e92c817 • 8 files, +67/-60
Improve build speed
TGX-Android/Telegram-X/main • 05c3831 • 16 files, +30/-17
Upgrade Gradle to `9.7.0`
TGX-Android/Telegram-X/main • 53301eb • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
Improve build speed
TGX-Android/Telegram-X/main • 05c3831 • 16 files, +30/-17
Upgrade Gradle to `9.7.0`
TGX-Android/Telegram-X/main • 53301eb • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
🫡3
TGX-Android/Telegram-X/main • cb3c194 • 1 files, +2/-3
Increase heap size + Enable caching
TGX-Android/Telegram-X/main • 920a83a • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
Increase heap size + Enable caching
TGX-Android/Telegram-X/main • 920a83a • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
🫡3
TGX-Android/Telegram-X/main • 48ebd44 • 3 files, +5/-5
Exclude `:baseline-profile` from default project configuration
TGX-Android/Telegram-X/main • ad5025c • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
Exclude `:baseline-profile` from default project configuration
TGX-Android/Telegram-X/main • ad5025c • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
🫡3
TGX-Android/Telegram-X/main • 4608042 • 2 files, +28/-32
Improve build speed
TGX-Android/Telegram-X/main • 8177ad8 • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
Improve build speed
TGX-Android/Telegram-X/main • 8177ad8 • 1 files, +1/-1
Version bump to `1802`
#tgxandroid
🫡3
telegramdesktop/tdesktop/nightly • b0d2935 • 2 files, +17/-5
[poll-view] Fixed cut emoji icon in add-option field at some scales.
telegramdesktop/tdesktop/nightly • 82e66c8 • 1 files, +49/-36
[poll-view] Fixed vertical alignment of answer media and text.
telegramdesktop/tdesktop/nightly • d910e4e • 4 files, +53/-15
[poll-view] Fixed answer media dropped for pending webpage.
telegramdesktop/tdesktop/nightly • 0ef0421 • 1 files, +44/-27
[poll-view] Slightly improved answer highlight.
#tdesktop
[poll-view] Fixed cut emoji icon in add-option field at some scales.
telegramdesktop/tdesktop/nightly • 82e66c8 • 1 files, +49/-36
[poll-view] Fixed vertical alignment of answer media and text.
telegramdesktop/tdesktop/nightly • d910e4e • 4 files, +53/-15
[poll-view] Fixed answer media dropped for pending webpage.
telegramdesktop/tdesktop/nightly • 0ef0421 • 1 files, +44/-27
[poll-view] Slightly improved answer highlight.
#tdesktop
🫡3
UnigramDev/Unigram/tdlib-list-t • 828d784 • 2 files, +72/-30
Expose every TDLib vector to WinRT from the schema
SettingsStoragePage binds Statistics.ByChat to ItemsSource and threw
E_INVALIDARG. TG1001 cannot see it: a binding assigns through the declared
IList<T>, so the concrete type is only known at runtime. The schema does know
it, and both parsers materialise a vector as List<T>, so the generator emits
the registration for every one of them - 188, nested vectors included.
That also settles the arrays that were listed by hand. A vector is never an
array, so none of them could ever be reached, and removing them leaves TG1001
reporting exactly one: PremiumGiftPaymentOption[], which the app builds
itself.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 636c91d • 2 files, +53/-7
Flag the collection expressions no registration can fix
Targeting a read-only interface, a collection expression compiles to a type
the compiler makes up, and nothing can generate a vtable for that. TG1001
never reaches it: the target is typed, so its reasoning says the generator has
the conversion covered - but the marshaller it emits still needs a CCW for
whatever concrete type turns up.
There are two of them and the element count picks which, so a call site that
works with two elements can break when one is removed. Measured rather than
assumed, along with the targets that are safe: List, IList and ICollection all
produce a real List, a mutable interface needing a mutable instance. That also
retires the reason the generated API used IList - new[] { x } is no longer the
only short spelling.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 2c74f62 • 4 files, +285/-20
Expose the TDLib vector instantiations from real source
CsWinRT reads these attributes in its own generator, and a generator cannot
see what another generator wrote, so emitting them was a no-op: the storage
page still threw. TDAPI003 now compares the schema against the attributes
actually present, for the next time TDLib adds a vector.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 224de7f • 25 files, +106/-67
Expose TDLib object vectors as List<T>
Objects are read - bound to ItemsSource, iterated per render - so List makes
the concrete type visible to the analyzer, stops foreach boxing an enumerator
and lets the indexer inline. Functions are only ever written and serialised,
and keep IList. Constructors take IList either way, so arrays and collection
expressions still bind, and a parsed response is cast rather than copied.
AnimatedImage draws no shimmer when Outline is null, hence the shared empty.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#unigram
Expose every TDLib vector to WinRT from the schema
SettingsStoragePage binds Statistics.ByChat to ItemsSource and threw
E_INVALIDARG. TG1001 cannot see it: a binding assigns through the declared
IList<T>, so the concrete type is only known at runtime. The schema does know
it, and both parsers materialise a vector as List<T>, so the generator emits
the registration for every one of them - 188, nested vectors included.
That also settles the arrays that were listed by hand. A vector is never an
array, so none of them could ever be reached, and removing them leaves TG1001
reporting exactly one: PremiumGiftPaymentOption[], which the app builds
itself.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 636c91d • 2 files, +53/-7
Flag the collection expressions no registration can fix
Targeting a read-only interface, a collection expression compiles to a type
the compiler makes up, and nothing can generate a vtable for that. TG1001
never reaches it: the target is typed, so its reasoning says the generator has
the conversion covered - but the marshaller it emits still needs a CCW for
whatever concrete type turns up.
There are two of them and the element count picks which, so a call site that
works with two elements can break when one is removed. Measured rather than
assumed, along with the targets that are safe: List, IList and ICollection all
produce a real List, a mutable interface needing a mutable instance. That also
retires the reason the generated API used IList - new[] { x } is no longer the
only short spelling.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 2c74f62 • 4 files, +285/-20
Expose the TDLib vector instantiations from real source
CsWinRT reads these attributes in its own generator, and a generator cannot
see what another generator wrote, so emitting them was a no-op: the storage
page still threw. TDAPI003 now compares the schema against the attributes
actually present, for the next time TDLib adds a vector.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 224de7f • 25 files, +106/-67
Expose TDLib object vectors as List<T>
Objects are read - bound to ItemsSource, iterated per render - so List makes
the concrete type visible to the analyzer, stops foreach boxing an enumerator
and lets the indexer inline. Functions are only ever written and serialised,
and keep IList. Constructors take IList either way, so arrays and collection
expressions still bind, and a parsed response is cast rather than copied.
AnimatedImage draws no shimmer when Outline is null, hence the shared empty.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#unigram
UnigramDev/Unigram/tdlib-list-t • 4cbb362 • 1 files, +23/-1
Follow x:Bind into the setters the XAML compiler emits
A binding does not assign the property: it calls a Set_ on XamlBindingSetters,
which takes the value as object and belongs to this assembly, so nothing
flagged it. Following that one call reports 83 collections bound from XAML
with no CCW vtable - each one a page that throws when opened.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 099bab6 • 82 files, +337/-313
Take List<T> in the generated constructors too
The parameter and the field are the same type now, so TdCollection.AsList is
gone. Call sites became [x] and [], which allocates less than it did: the
converter copied every array into a list.
Four needed more than a rewrite. TryGetColors and the two chat-list readers
fill by Add rather than by index, because a List's capacity is not its count.
TextStyleRun shares one empty list, since Array.Empty was free and these sit
on the render path - a shared mutable list is a footgun, and notes has the
plan for it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#unigram
Follow x:Bind into the setters the XAML compiler emits
A binding does not assign the property: it calls a Set_ on XamlBindingSetters,
which takes the value as object and belongs to this assembly, so nothing
flagged it. Following that one call reports 83 collections bound from XAML
with no CCW vtable - each one a page that throws when opened.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UnigramDev/Unigram/tdlib-list-t • 099bab6 • 82 files, +337/-313
Take List<T> in the generated constructors too
The parameter and the field are the same type now, so TdCollection.AsList is
gone. Call sites became [x] and [], which allocates less than it did: the
converter copied every array into a list.
Four needed more than a rewrite. TryGetColors and the two chat-list readers
fill by Add rather than by index, because a List's capacity is not its count.
TextStyleRun shares one empty list, since Array.Empty was free and these sit
on the render path - a shared mutable list is a footgun, and notes has the
plan for it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
#unigram
UnigramDev/Unigram/dragover-access-denied • 7a6aacc • 1 files, +13/-4
Refuse a drag whose data view cannot be inspected
IDataPackageView::Contains is a cross-process call into the process that
started the drag, and it can be denied, or fail because that process went
away mid-drag. Neither is something the app can act on, so the drop is
declined and the failure logged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#unigram
Refuse a drag whose data view cannot be inspected
IDataPackageView::Contains is a cross-process call into the process that
started the drag, and it can be denied, or fail because that process went
away mid-drag. Neither is something the app can act on, so the drop is
declined and the failure logged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
#unigram