Commit Graph

19235 Commits

Author SHA1 Message Date
Ilya Fedin 59ecfd67f0 Add location tracking to PhotoData
Add persistent file location storage for downloaded photos,
similar to DocumentData. This allows the app to remember
where a photo was saved and reuse that path.

Co-Authored-By: GLM-5 <contact@zhipuai.cn>
2026-03-10 12:40:17 +04:00
Ilya Fedin 6acc2633a5 Open any document type via external media viewer 2026-03-10 12:40:17 +04:00
Ilya Fedin 07649b3c16 External video player -> External media viewer 2026-03-10 12:40:17 +04:00
Ilya Fedin a2c268c923 Don't require second click to open cached videos in external viewer 2026-03-10 12:40:17 +04:00
Ilya Fedin 0b98b88dfc Support file saving for streaming videos with external video player 2026-03-10 12:40:17 +04:00
Ilya Fedin c2f64700c1 Move external video player option handling to SessionController::openDocument 2026-03-10 12:40:17 +04:00
Ilya Fedin f6ac2c5aa9 Revert "Don't stream videos when external player is used"
This reverts commit b0ce88395f.
2026-03-10 12:40:17 +04:00
Ilya Fedin ff08ab1023 Revert "Avoid using streaming loader with external video player"
This reverts commit d9ddb12500.
2026-03-10 12:40:17 +04:00
John Preston b30948fd81 In GroupAdmin scope send /start only with token.
Fixes #30026.
2026-03-10 12:35:55 +04:00
John Preston 008600f6d3 Faster controls disappearing in media viewer. 2026-03-10 12:25:58 +04:00
John Preston 73686ae930 Add ripple animation to reactions in messages. 2026-03-10 12:07:38 +04:00
John Preston 3223e6389c Add ripple effect to send button. 2026-03-10 11:59:29 +04:00
John Preston b9d3b9364c Fix t.me/bot?start=param for bot-forums. 2026-03-10 11:59:29 +04:00
John Preston 7f71e9dd52 Fix build with Xcode. 2026-03-09 21:23:26 +04:00
John Preston 4212be1b6c Add ripple effect to reply button. 2026-03-09 17:38:41 +04:00
futpib 5f1121123c Freeze chat list order while mouse hovers over it
When subscribed to many active chats, the list reorders too quickly,
causing misclicks. Freeze the visual order while the mouse is over the
chat list and replay deferred reorderings when the mouse leaves or
after 5 seconds of inactivity.

Fixes #1504.
2026-03-06 23:16:40 +04:00
John Preston 68e1504685 Use crl::on_main_queue for chained init steps. 2026-03-06 22:49:10 +04:00
futpib ffea1e3917 Defer sticker reads via crl::on_main chain for faster first paint
Instead of reading all sticker sets synchronously in crl::on_main,
chain each read step via crl::on_main so that paint events can be
processed between heavy file reads. This moves first paint from
~2807ms to ~1294ms by allowing the UI to render before sticker
loading completes.
2026-03-06 22:32:21 +04:00
John Preston 8eab8af02d Don't always lower members count when banning.
Fixes #30371.
2026-03-06 22:03:20 +04:00
John Preston 9d371ddb94 Fix controls. 2026-03-06 22:02:43 +04:00
John Preston 58d334c1c8 Fix crash in restrict-from-recent-actions. 2026-03-06 21:59:51 +04:00
John Preston 5507e9c00d Simplify file sending, always attach a caption. 2026-03-06 21:08:35 +04:00
John Preston 2de7fb5c25 Simplify caption management in SendFilesBox. 2026-03-06 21:08:35 +04:00
cumdev1337 485d820fe2 Do not exit fullscreen mode when applying video quality 2026-03-06 21:07:52 +04:00
John Preston b1d08b3e30 Preserve topicRootId() on edition-to-history-clear. 2026-03-06 14:09:06 +04:00
John Preston e86fec4ab6 Fix messages clear on history delete. 2026-03-06 14:08:51 +04:00
John Preston a4c4ea129c Always process item destroy in topics. 2026-03-06 14:08:37 +04:00
John Preston 56e675ec9c Revert "Fixed ability to delete chat as forum with all topics."
This reverts commit f40064333e.

This destroys messages that were not really deleted.
2026-03-06 12:04:40 +04:00
futpib 61b7b2d5dc Use rename instead of copy for log file rotation at startup
Replace the expensive file copy in Logs::instanceChecked() with an
atomic rename. The old code copied log_startX.txt to log.txt then
deleted the original, which took ~83ms of synchronous I/O. A simple
rename on the same filesystem is nearly instant (~0.3ms).
2026-03-06 10:53:05 +04:00
futpib ec7c76b8d2 Cache Webview::Availability() result for startup checks
Iv::ShowButton() and LocationPicker::Available() each called
Webview::Availability() separately (~200ms each on Linux). Replace
the per-caller static caches with a single shared cache in
Core::CachedWebviewAvailability(), reducing startup from two
~200ms calls to one.
2026-03-05 16:13:38 +04:00
linux 1a35929eb8 accessibility: label profile photo buttons by role 2026-03-05 16:03:30 +04:00
linux 151f3f6cc4 accessibility: label QR code button in settings cover 2026-03-05 16:03:30 +04:00
futpib dc6b9dda4d Use faster containers for bulk-populated custom emoji maps
Replace base::flat_map (sorted vector with O(n) insertion) with
std::unordered_map for CustomEmojiManager::_instances and std::map
for EmojiListWidget::_customEmoji. These maps accumulate ~8000
entries during startup with unsorted keys, causing O(n²) total
insertion cost. This change reduces refreshCustom() from ~3s to
~50ms (57x speedup).
2026-03-05 15:20:36 +04:00
John Preston f9bf1e9372 Fix the build on Windows. 2026-03-05 11:30:38 +04:00
John Preston 63a76b273a Fix trailing seconds in date formatting. 2026-03-05 11:25:27 +04:00
Ilya Fedin 48e2e2c2db Avoid saving viewer position unless it's really on screen 2026-03-05 09:52:56 +04:00
paterkleomenis f8fc9956d0 Calls: enable audio sharing flow on Linux
Enables the desktop share audio flow on Linux within Calls UI and plumbing.

- calls_call: add withAudio parameter to toggleScreenSharing, track
  _screenWithAudio flag, create/destroy SystemAudioCapture when sharing
  starts with audio, and clean it up in destroyController.

- calls_panel / calls_group_panel: use LoopbackAudioCaptureSupported()
  to report audio support on all platforms; show a GenericBox with audio
  toggle when a unique desktop capture source is available (PipeWire),
  then start sharing with the chosen audio setting.

Depends on desktop-app/lib_webrtc#22
Closes #26642
2026-03-05 09:25:37 +04:00
InternalProgramError a08f8d890d Update menu_send.cpp
Unification of Send menu (https://bugs.telegram.org/c/55220)
2026-03-04 16:33:40 +04:00
Ilya Fedin d9ddb12500 Avoid using streaming loader with external video player
Streaming loader is unnecessary slow for this use-case

Co-authored-by: Codex <codex@openai.com>
2026-03-04 16:32:47 +04:00
Ilya Fedin 25026d1657 Support Crow Translate on Linux 2026-03-04 11:44:40 +03:00
Ilya Fedin 1782f5c463 Add experimental sticker size option 2026-03-04 11:44:40 +03:00
23rd 66a5e67cbf Fixed losing of extension when rename image from clipboard. 2026-03-04 11:08:19 +03:00
23rd f1bf8e554e Fixed display of show original button in translate box. 2026-03-04 08:32:04 +03:00
23rd d4a5bb788c Moved out some classes from lib_translate. 2026-03-04 08:32:04 +03:00
23rd df1a8346e0 Added new translate provider that uses url template from experimental. 2026-03-04 08:32:04 +03:00
23rd ccce8756ed Added simple error handler for translations. 2026-03-04 08:32:04 +03:00
23rd 1e0a16a214 Added ability to use platform provider of translations on macOS. 2026-03-04 08:32:04 +03:00
23rd d7e8199365 Added platform provider of translations. 2026-03-04 08:32:04 +03:00
23rd cec580a645 Moved out api translations as separated provider. 2026-03-04 07:08:51 +03:00
23rd 8a9409005f Split translate box to api and td_ui parts. 2026-03-04 07:08:51 +03:00