about summary refs log tree commit diff
path: root/packages/telegram-desktop.patch
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2024-08-09 13:06:55 +0300
committerAzat Bahawi <azat@bahawi.net>2024-08-09 13:06:55 +0300
commitc76e81a086aa66394b37d3bf36592328da09a298 (patch)
tree5438638de13f8873a8601ef46a7f0dd5bd6299e1 /packages/telegram-desktop.patch
parent2024-08-05 (diff)
2024-08-09
Diffstat (limited to '')
-rw-r--r--packages/telegram-desktop.patch296
1 files changed, 296 insertions, 0 deletions
diff --git a/packages/telegram-desktop.patch b/packages/telegram-desktop.patch
new file mode 100644
index 0000000..8fe272b
--- /dev/null
+++ b/packages/telegram-desktop.patch
@@ -0,0 +1,296 @@
+diff --git i/Telegram/SourceFiles/core/click_handler_types.cpp w/Telegram/SourceFiles/core/click_handler_types.cpp
+index 9b03e0b74..25af14f67 100644
+--- i/Telegram/SourceFiles/core/click_handler_types.cpp
++++ w/Telegram/SourceFiles/core/click_handler_types.cpp
+@@ -345,9 +345,7 @@ void MonospaceClickHandler::onClick(ClickContext context) const {
+ 	if (const auto controller = my.sessionWindow.get()) {
+ 		auto &data = controller->session().data();
+ 		const auto item = data.message(my.itemId);
+-		const auto hasCopyRestriction = item
+-			&& (!item->history()->peer->allowsForwarding()
+-				|| item->forbidsForward());
++		const auto hasCopyRestriction = false;
+ 		if (hasCopyRestriction) {
+ 			controller->showToast(item->history()->peer->isBroadcast()
+ 				? tr::lng_error_nocopy_channel(tr::now)
+diff --git i/Telegram/SourceFiles/data/components/sponsored_messages.cpp w/Telegram/SourceFiles/data/components/sponsored_messages.cpp
+index c20ec967e..bb3de6794 100644
+--- i/Telegram/SourceFiles/data/components/sponsored_messages.cpp
++++ w/Telegram/SourceFiles/data/components/sponsored_messages.cpp
+@@ -193,7 +193,7 @@ void SponsoredMessages::inject(
+ }
+ 
+ bool SponsoredMessages::canHaveFor(not_null<History*> history) const {
+-	return history->peer->isChannel();
++	return false;
+ }
+ 
+ void SponsoredMessages::request(not_null<History*> history, Fn<void()> done) {
+diff --git i/Telegram/SourceFiles/data/data_channel.cpp w/Telegram/SourceFiles/data/data_channel.cpp
+index 2f7694395..4468729e1 100644
+--- i/Telegram/SourceFiles/data/data_channel.cpp
++++ w/Telegram/SourceFiles/data/data_channel.cpp
+@@ -884,7 +884,7 @@ void ChannelData::clearInvitePeek() {
+ }
+ 
+ TimeId ChannelData::invitePeekExpires() const {
+-	return _invitePeek ? _invitePeek->expires : 0;
++	return 0;
+ }
+ 
+ QString ChannelData::invitePeekHash() const {
+diff --git i/Telegram/SourceFiles/data/data_stories.cpp w/Telegram/SourceFiles/data/data_stories.cpp
+index 668ec4c45..0a738e229 100644
+--- i/Telegram/SourceFiles/data/data_stories.cpp
++++ w/Telegram/SourceFiles/data/data_stories.cpp
+@@ -442,70 +442,7 @@ Story *Stories::parseAndApply(
+ 		not_null<PeerData*> peer,
+ 		const MTPDstoryItem &data,
+ 		TimeId now) {
+-	const auto media = ParseMedia(_owner, data.vmedia());
+-	if (!media) {
+-		return nullptr;
+-	}
+-	const auto expires = data.vexpire_date().v;
+-	const auto expired = (expires <= now);
+-	if (expired && !data.is_pinned() && !hasArchive(peer)) {
+-		return nullptr;
+-	}
+-	const auto id = data.vid().v;
+-	const auto fullId = FullStoryId{ peer->id, id };
+-	auto &stories = _stories[peer->id];
+-	const auto i = stories.find(id);
+-	if (i != end(stories)) {
+-		const auto result = i->second.get();
+-		const auto mediaChanged = (result->media() != *media);
+-		result->applyChanges(*media, data, now);
+-		const auto j = _pollingSettings.find(result);
+-		if (j != end(_pollingSettings)) {
+-			maybeSchedulePolling(result, j->second, now);
+-		}
+-		if (mediaChanged) {
+-			_preloaded.remove(fullId);
+-			if (_preloading && _preloading->id() == fullId) {
+-				_preloading = nullptr;
+-				rebuildPreloadSources(StorySourcesList::NotHidden);
+-				rebuildPreloadSources(StorySourcesList::Hidden);
+-				continuePreloading();
+-			}
+-			_owner->refreshStoryItemViews(fullId);
+-		}
+-		return result;
+-	}
+-	const auto wasDeleted = _deleted.remove(fullId);
+-	const auto result = stories.emplace(id, std::make_unique<Story>(
+-		id,
+-		peer,
+-		StoryMedia{ *media },
+-		data,
+-		now
+-	)).first->second.get();
+-
+-	if (const auto archive = lookupArchive(peer)) {
+-		const auto added = archive->ids.list.emplace(id).second;
+-		if (added) {
+-			if (archive->total >= 0 && id > archive->lastId) {
+-				++archive->total;
+-			}
+-			_archiveChanged.fire_copy(peer->id);
+-		}
+-	}
+-
+-	if (expired) {
+-		_expiring.remove(expires, fullId);
+-		applyExpired(fullId);
+-	} else {
+-		registerExpiring(expires, fullId);
+-	}
+-
+-	if (wasDeleted) {
+-		_owner->refreshStoryItemViews(fullId);
+-	}
+-
+-	return result;
++	return nullptr;
+ }
+ 
+ StoryIdDates Stories::parseAndApply(
+diff --git i/Telegram/SourceFiles/history/history_inner_widget.cpp w/Telegram/SourceFiles/history/history_inner_widget.cpp
+index 1a302bd10..44ecffbed 100644
+--- i/Telegram/SourceFiles/history/history_inner_widget.cpp
++++ w/Telegram/SourceFiles/history/history_inner_widget.cpp
+@@ -558,14 +558,7 @@ void HistoryInner::setupSharingDisallowed() {
+ }
+ 
+ bool HistoryInner::hasSelectRestriction() const {
+-	if (!_sharingDisallowed.current()) {
+-		return false;
+-	} else if (const auto chat = _peer->asChat()) {
+-		return !chat->canDeleteMessages();
+-	} else if (const auto channel = _peer->asChannel()) {
+-		return !channel->canDeleteMessages();
+-	}
+-	return true;
++	return false;
+ }
+ 
+ void HistoryInner::messagesReceived(
+@@ -2844,12 +2837,12 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
+ }
+ 
+ bool HistoryInner::hasCopyRestriction(HistoryItem *item) const {
+-	return !_peer->allowsForwarding() || (item && item->forbidsForward());
++	return false;
+ }
+ 
+ bool HistoryInner::hasCopyMediaRestriction(
+ 		not_null<HistoryItem*> item) const {
+-	return hasCopyRestriction(item) || item->forbidsSaving();
++	return false;
+ }
+ 
+ bool HistoryInner::showCopyRestriction(HistoryItem *item) {
+diff --git i/Telegram/SourceFiles/history/history_item.cpp w/Telegram/SourceFiles/history/history_item.cpp
+index d9c306013..5fcd7d02b 100644
+--- i/Telegram/SourceFiles/history/history_item.cpp
++++ w/Telegram/SourceFiles/history/history_item.cpp
+@@ -2243,11 +2243,6 @@ bool HistoryItem::forbidsForward() const {
+ }
+ 
+ bool HistoryItem::forbidsSaving() const {
+-	if (forbidsForward()) {
+-		return true;
+-	} else if (const auto invoice = _media ? _media->invoice() : nullptr) {
+-		return HasExtendedMedia(*invoice);
+-	}
+ 	return false;
+ }
+ 
+diff --git i/Telegram/SourceFiles/history/view/history_view_list_widget.cpp w/Telegram/SourceFiles/history/view/history_view_list_widget.cpp
+index 4155adf9b..1775ef4f4 100644
+--- i/Telegram/SourceFiles/history/view/history_view_list_widget.cpp
++++ w/Telegram/SourceFiles/history/view/history_view_list_widget.cpp
+@@ -1515,13 +1515,11 @@ bool ListWidget::isEmpty() const {
+ }
+ 
+ bool ListWidget::hasCopyRestriction(HistoryItem *item) const {
+-	return _delegate->listCopyRestrictionType(item)
+-		!= CopyRestrictionType::None;
++	return false;
+ }
+ 
+ bool ListWidget::hasCopyMediaRestriction(not_null<HistoryItem*> item) const {
+-	return _delegate->listCopyMediaRestrictionType(item)
+-		!= CopyRestrictionType::None;
++	return false;
+ }
+ 
+ bool ListWidget::showCopyRestriction(HistoryItem *item) {
+@@ -1547,21 +1545,6 @@ bool ListWidget::showCopyMediaRestriction(not_null<HistoryItem*> item) {
+ }
+ 
+ bool ListWidget::hasCopyRestrictionForSelected() const {
+-	if (hasCopyRestriction()) {
+-		return true;
+-	}
+-	if (_selected.empty()) {
+-		if (_selectedTextItem && _selectedTextItem->forbidsForward()) {
+-			return true;
+-		}
+-	}
+-	for (const auto &[itemId, selection] : _selected) {
+-		if (const auto item = session().data().message(itemId)) {
+-			if (item->forbidsForward()) {
+-				return true;
+-			}
+-		}
+-	}
+ 	return false;
+ }
+ 
+@@ -1580,8 +1563,7 @@ bool ListWidget::showCopyRestrictionForSelected() {
+ }
+ 
+ bool ListWidget::hasSelectRestriction() const {
+-	return _delegate->listSelectRestrictionType()
+-		!= CopyRestrictionType::None;
++	return false;
+ }
+ 
+ Element *ListWidget::lookupItemByY(int y) const {
+diff --git i/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp w/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp
+index 92bd21800..297ddf1f2 100644
+--- i/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp
++++ w/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp
+@@ -1240,15 +1240,14 @@ void TopBarWidget::updateMembersShowArea() {
+ }
+ 
+ bool TopBarWidget::showSelectedState() const {
+-	return (_selectedCount > 0)
+-		&& (_canDelete || _canForward || _canSendNow);
++	return _selectedCount > 0;
+ }
+ 
+ void TopBarWidget::showSelected(SelectedState state) {
+ 	auto canDelete = (state.count > 0 && state.count == state.canDeleteCount);
+ 	auto canForward = (state.count > 0 && state.count == state.canForwardCount);
+ 	auto canSendNow = (state.count > 0 && state.count == state.canSendNowCount);
+-	auto count = (!canDelete && !canForward && !canSendNow) ? 0 : state.count;
++	auto count = state.count;
+ 	if (_selectedCount == count
+ 		&& _canDelete == canDelete
+ 		&& _canForward == canForward
+diff --git i/Telegram/SourceFiles/info/media/info_media_provider.cpp w/Telegram/SourceFiles/info/media/info_media_provider.cpp
+index 2fc69733e..2e830b73e 100644
+--- i/Telegram/SourceFiles/info/media/info_media_provider.cpp
++++ w/Telegram/SourceFiles/info/media/info_media_provider.cpp
+@@ -88,14 +88,7 @@ Type Provider::type() {
+ }
+ 
+ bool Provider::hasSelectRestriction() {
+-	if (_peer->allowsForwarding()) {
+-		return false;
+-	} else if (const auto chat = _peer->asChat()) {
+-		return !chat->canDeleteMessages();
+-	} else if (const auto channel = _peer->asChannel()) {
+-		return !channel->canDeleteMessages();
+-	}
+-	return true;
++	return false;
+ }
+ 
+ rpl::producer<bool> Provider::hasSelectRestrictionChanges() {
+diff --git i/Telegram/SourceFiles/main/main_domain.h w/Telegram/SourceFiles/main/main_domain.h
+index 2e69222b9..b3e08fd66 100644
+--- i/Telegram/SourceFiles/main/main_domain.h
++++ w/Telegram/SourceFiles/main/main_domain.h
+@@ -31,8 +31,8 @@ public:
+ 		std::unique_ptr<Account> account;
+ 	};
+ 
+-	static constexpr auto kMaxAccounts = 3;
+-	static constexpr auto kPremiumMaxAccounts = 6;
++	static constexpr auto kMaxAccounts = 255;
++	static constexpr auto kPremiumMaxAccounts = 255;
+ 
+ 	explicit Domain(const QString &dataName);
+ 	~Domain();
+diff --git i/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp w/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp
+index c6a7e9c6e..88c4d66ef 100644
+--- i/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp
++++ w/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp
+@@ -1033,13 +1033,7 @@ QSize OverlayWidget::flipSizeByRotation(QSize size) const {
+ }
+ 
+ bool OverlayWidget::hasCopyMediaRestriction(bool skipPremiumCheck) const {
+-	if (const auto story = _stories ? _stories->story() : nullptr) {
+-		return skipPremiumCheck
+-			? !story->canDownloadIfPremium()
+-			: !story->canDownloadChecked();
+-	}
+-	return (_history && !_history->peer->allowsForwarding())
+-		|| (_message && _message->forbidsSaving());
++	return false;
+ }
+ 
+ bool OverlayWidget::showCopyMediaRestriction(bool skipPRemiumCheck) {

Consider giving Nix/NixOS a try! <3