diff --git a/Telegram/PrepareWin.bat b/Telegram/PrepareWin.bat
index 50e324131..97ba30996 100644
--- a/Telegram/PrepareWin.bat
+++ b/Telegram/PrepareWin.bat
@@ -1,9 +1,9 @@
@echo OFF
-set "AppVersion=8009"
-set "AppVersionStrSmall=0.8.9"
-set "AppVersionStr=0.8.9"
-set "AppVersionStrFull=0.8.9.0"
+set "AppVersion=8010"
+set "AppVersionStrSmall=0.8.10"
+set "AppVersionStr=0.8.10"
+set "AppVersionStrFull=0.8.10.0"
set "DevChannel=1"
if %DevChannel% neq 0 goto preparedev
diff --git a/Telegram/SourceFiles/application.cpp b/Telegram/SourceFiles/application.cpp
index 23022218c..490c2b5b6 100644
--- a/Telegram/SourceFiles/application.cpp
+++ b/Telegram/SourceFiles/application.cpp
@@ -662,8 +662,8 @@ void Application::checkMapVersion() {
psRegisterCustomScheme();
if (Local::oldMapVersion()) {
QString versionFeatures;
- if (DevChannel && Local::oldMapVersion() < 8009) {
- versionFeatures = QString::fromUtf8("\xe2\x80\x94 Invite links for group chats\n\xe2\x80\x94 Gray unread badge for muted conversations").replace('@', qsl("@") + QChar(0x200D));
+ if (DevChannel && Local::oldMapVersion() < 8010) {
+ versionFeatures = QString::fromUtf8("\xe2\x80\x94 Critical bug fixes with message history loading").replace('@', qsl("@") + QChar(0x200D));
} else if (!DevChannel && Local::oldMapVersion() < 8007) {
versionFeatures = lang(lng_new_version_text).trimmed();
}
diff --git a/Telegram/SourceFiles/config.h b/Telegram/SourceFiles/config.h
index 79737b7c0..c00e1bfa0 100644
--- a/Telegram/SourceFiles/config.h
+++ b/Telegram/SourceFiles/config.h
@@ -17,8 +17,8 @@ Copyright (c) 2014 John Preston, https://desktop.telegram.org
*/
#pragma once
-static const int32 AppVersion = 8009;
-static const wchar_t *AppVersionStr = L"0.8.9";
+static const int32 AppVersion = 8010;
+static const wchar_t *AppVersionStr = L"0.8.10";
static const bool DevChannel = true;
static const wchar_t *AppNameOld = L"Telegram Win (Unofficial)";
diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp
index 889266f0c..2c5514c42 100644
--- a/Telegram/SourceFiles/history.cpp
+++ b/Telegram/SourceFiles/history.cpp
@@ -549,6 +549,12 @@ HistoryItem *History::createItem(HistoryBlock *block, const MTPmessage &msg, boo
HistoryItem *existing = App::histItemById(msgId);
if (existing) {
+ bool regged = false;
+ if (existing->detached() && block) {
+ existing->attach(block);
+ regged = true;
+ }
+
const MTPMessageMedia *media = 0;
switch (msg.type()) {
case mtpc_message: media = &msg.c_message().vmedia; break;
@@ -556,7 +562,7 @@ HistoryItem *History::createItem(HistoryBlock *block, const MTPmessage &msg, boo
if (media) {
existing->updateMedia(*media);
}
- return returnExisting ? existing : 0;
+ return (returnExisting || regged) ? existing : 0;
}
switch (msg.type()) {
@@ -3342,7 +3348,7 @@ void HistoryWebPage::initDimensions(const HistoryItem *parent) {
w = thumbw;
- _maxw = st::webPageLeft + qMax(w, int32(st::minPhotoSize)) + parent->timeWidth(true);
+ _maxw = st::webPageLeft + qMax(thumbh, qMax(w, int32(st::minPhotoSize))) + parent->timeWidth(true);
_minh = qMax(thumbh, int32(st::minPhotoSize));
_minh += st::webPagePhotoSkip;
} else {
diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h
index bf2e7ad89..33049b826 100644
--- a/Telegram/SourceFiles/history.h
+++ b/Telegram/SourceFiles/history.h
@@ -660,6 +660,9 @@ public:
bool detached() const {
return !_block;
}
+ void attach(HistoryBlock *block) {
+ _block = block;
+ }
bool out() const {
return _flags & MTPDmessage_flag_out;
}
diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp
index 3419feecc..90dbcd6e2 100644
--- a/Telegram/SourceFiles/historywidget.cpp
+++ b/Telegram/SourceFiles/historywidget.cpp
@@ -1977,7 +1977,8 @@ void HistoryWidget::showPeer(const PeerId &peer, MsgId msgId, bool force, bool l
if (hist) {
if (histPeer->id == peer) {
if (msgId != hist->activeMsgId) {
- if (!force && !hist->canShowAround(msgId)) {
+ bool canShowNow = hist->canShowAround(msgId);
+ if (!force && !canShowNow) {
if (_loadingAroundId != msgId) {
clearLoadingAround();
_loadingAroundId = msgId;
@@ -1986,9 +1987,13 @@ void HistoryWidget::showPeer(const PeerId &peer, MsgId msgId, bool force, bool l
return;
}
hist->loadAround(msgId);
- if (histPreloading) MTP::cancel(histPreloading);
- if (histPreloadingDown) MTP::cancel(histPreloadingDown);
- histPreloading = histPreloadingDown = 0;
+ if (!canShowNow) {
+ histPreload.clear();
+ histPreloadDown.clear();
+ if (histPreloading) MTP::cancel(histPreloading);
+ if (histPreloadingDown) MTP::cancel(histPreloadingDown);
+ histPreloading = histPreloadingDown = 0;
+ }
}
if (_replyReturn && _replyReturn->id == msgId) calcNextReplyReturn();
@@ -2306,6 +2311,8 @@ bool HistoryWidget::messagesFailed(const RPCError &error, mtpRequestId requestId
void HistoryWidget::messagesReceived(const MTPmessages_Messages &messages, mtpRequestId requestId) {
if (!hist) {
histPreloading = histPreloadingDown = _loadingAroundRequest = 0;
+ histPreload.clear();
+ histPreloadDown.clear();
return;
}
@@ -2355,11 +2362,13 @@ void HistoryWidget::messagesReceived(const MTPmessages_Messages &messages, mtpRe
_loadingAroundRequest = 0;
hist->loadAround(_loadingAroundId);
if (hist->isEmpty()) {
+ histPreload.clear();
+ histPreloadDown.clear();
+ if (histPreloading) MTP::cancel(histPreloading);
+ if (histPreloadingDown) MTP::cancel(histPreloadingDown);
+ histPreloading = histPreloadingDown = 0;
addMessagesToFront(*histList);
}
- if (histPreloading) MTP::cancel(histPreloading);
- if (histPreloadingDown) MTP::cancel(histPreloadingDown);
- histPreloading = histPreloadingDown = 0;
showPeer(hist->peer->id, _loadingAroundId, true);
}
return;
diff --git a/Telegram/Telegram.plist b/Telegram/Telegram.plist
index bde3fb3a9..bdd8c251d 100644
--- a/Telegram/Telegram.plist
+++ b/Telegram/Telegram.plist
@@ -11,7 +11,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.8.9
+ 0.8.10
CFBundleSignature
????
CFBundleURLTypes
diff --git a/Telegram/Telegram.rc b/Telegram/Telegram.rc
index 285afa4fc..444587393 100644
Binary files a/Telegram/Telegram.rc and b/Telegram/Telegram.rc differ
diff --git a/Telegram/Telegram.xcodeproj/project.pbxproj b/Telegram/Telegram.xcodeproj/project.pbxproj
index ca324e385..27188e372 100644
--- a/Telegram/Telegram.xcodeproj/project.pbxproj
+++ b/Telegram/Telegram.xcodeproj/project.pbxproj
@@ -1671,7 +1671,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 0.8.9;
+ CURRENT_PROJECT_VERSION = 0.8.10;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
@@ -1689,7 +1689,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COPY_PHASE_STRIP = YES;
- CURRENT_PROJECT_VERSION = 0.8.9;
+ CURRENT_PROJECT_VERSION = 0.8.10;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_OPTIMIZATION_LEVEL = fast;
GCC_PREFIX_HEADER = ./SourceFiles/stdafx.h;
@@ -1715,10 +1715,10 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "";
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 0.8.9;
+ CURRENT_PROJECT_VERSION = 0.8.10;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DYLIB_COMPATIBILITY_VERSION = 0.8;
- DYLIB_CURRENT_VERSION = 0.8.9;
+ DYLIB_CURRENT_VERSION = 0.8.10;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = "";
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
@@ -1857,10 +1857,10 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "";
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 0.8.9;
+ CURRENT_PROJECT_VERSION = 0.8.10;
DEBUG_INFORMATION_FORMAT = dwarf;
DYLIB_COMPATIBILITY_VERSION = 0.8;
- DYLIB_CURRENT_VERSION = 0.8.9;
+ DYLIB_CURRENT_VERSION = 0.8.10;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = "";
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
diff --git a/Telegram/Version.sh b/Telegram/Version.sh
index 0652917bf..d22445064 100755
--- a/Telegram/Version.sh
+++ b/Telegram/Version.sh
@@ -1,2 +1,2 @@
-echo 8009 0.8.9 1
+echo 8010 0.8.10 1
# AppVersion AppVersionStr DevChannel