summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Porunov2019-11-12 04:01:03 +0400
committerDmitry Porunov2019-11-12 04:01:03 +0400
commit6364247273cfe3ea7db7160f64c4fc165b353834 (patch)
tree679be1dfec863cccf070b3ada545e8d0779f825c
parentb1af50d4cfabdbb5995f24b2a0b9c327d6922986 (diff)
downloadaur-6364247273cfe3ea7db7160f64c4fc165b353834.tar.gz
Debug tdesktop.patch
-rw-r--r--tdesktop.patch163
1 files changed, 150 insertions, 13 deletions
diff --git a/tdesktop.patch b/tdesktop.patch
index 48c699685740..5398684eb439 100644
--- a/tdesktop.patch
+++ b/tdesktop.patch
@@ -1,30 +1,135 @@
diff --git a/Telegram/SourceFiles/core/launcher.cpp b/Telegram/SourceFiles/core/launcher.cpp
-index 7768510a0..a832d023f 100644
+index 7768510a0..1e4447c5b 100644
--- a/Telegram/SourceFiles/core/launcher.cpp
+++ b/Telegram/SourceFiles/core/launcher.cpp
-@@ -278,6 +278,13 @@ int Launcher::exec() {
+@@ -278,6 +278,19 @@ int Launcher::exec() {
Platform::start();
Ui::DisableCustomScaling();
+ // I don't know why path is not in QT_PLUGIN_PATH by default
+ QCoreApplication::addLibraryPath("/usr/lib/qt/plugins");
+ // without this Telegram doesn't start on Ubuntu 17.04 due GTK errors
-+ setenv("QT_STYLE_OVERRIDE", "breeze", false);
++ setenv("QT_STYLE_OVERRIDE", "qwerty", false);
+ // Telegram doesn't start when extraordinary theme is set, see launchpad.net/bugs/1680943
+ unsetenv("QT_QPA_PLATFORMTHEME");
+
++ // unset QT screen scale related envvars
++ unsetenv("QT_SCREEN_SCALE_FACTORS");
++ unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR");
++ unsetenv("QT_SCALE_FACTOR");
++ unsetenv("QT_DEVICE_PIXEL_RATIO");
++
auto result = executeApplication();
DEBUG_LOG(("Kotatogram finished, result: %1").arg(result));
+diff --git a/Telegram/SourceFiles/qt_functions.cpp b/Telegram/SourceFiles/qt_functions.cpp
+new file mode 100644
+index 000000000..4a722b8d7
+--- /dev/null
++++ b/Telegram/SourceFiles/qt_functions.cpp
+@@ -0,0 +1,94 @@
++/****************************************************************************
++**
++** Copyright (C) 2015 The Qt Company Ltd.
++** Contact: http://www.qt.io/licensing/
++**
++** This file contains some parts of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL21$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see http://www.qt.io/terms-conditions. For further
++** information use the contact form at http://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 2.1 or version 3 as published by the Free
++** Software Foundation and appearing in the file LICENSE.LGPLv21 and
++** LICENSE.LGPLv3 included in the packaging of this file. Please review the
++** following information to ensure the GNU Lesser General Public License
++** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** As a special exception, The Qt Company gives you certain additional
++** rights. These rights are described in The Qt Company LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++/* TODO: find a dynamic library with these symbols. */
++
++/* Debian maintainer: this function is taken from qfiledialog.cpp */
++/*
++ Makes a list of filters from ;;-separated text.
++ Used by the mac and windows implementations
++*/
++QStringList qt_make_filter_list(const QString &filter)
++{
++ QString f(filter);
++
++ if (f.isEmpty())
++ return QStringList();
++
++ QString sep(QLatin1String(";;"));
++ int i = f.indexOf(sep, 0);
++ if (i == -1) {
++ if (f.indexOf(QLatin1Char('\n'), 0) != -1) {
++ sep = QLatin1Char('\n');
++ i = f.indexOf(sep, 0);
++ }
++ }
++
++ return f.split(sep);
++}
++
++/* Debian maintainer: this constructor is taken from qtextengine.cpp for TextPainter::drawLine */
++QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, const QChar *chars_, int numChars, QFontEngine *fe, const QTextCharFormat &format)
++ : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), charFormat(format),
++ num_chars(numChars), chars(chars_), logClusters(0), f(font), glyphs(g), fontEngine(fe)
++{
++}
++
++/* Debian maintainer: this method is also taken from qtextengine.cpp */
++// Fix up flags and underlineStyle with given info
++void QTextItemInt::initWithScriptItem(const QScriptItem &si)
++{
++ // explicitly initialize flags so that initFontAttributes can be called
++ // multiple times on the same TextItem
++ flags = 0;
++ if (si.analysis.bidiLevel %2)
++ flags |= QTextItem::RightToLeft;
++ ascent = si.ascent;
++ descent = si.descent;
++
++ if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) {
++ underlineStyle = charFormat.underlineStyle();
++ } else if (charFormat.boolProperty(QTextFormat::FontUnderline)
++ || f->d->underline) {
++ underlineStyle = QTextCharFormat::SingleUnderline;
++ }
++
++ // compat
++ if (underlineStyle == QTextCharFormat::SingleUnderline)
++ flags |= QTextItem::Underline;
++
++ if (f->d->overline || charFormat.fontOverline())
++ flags |= QTextItem::Overline;
++ if (f->d->strikeOut || charFormat.fontStrikeOut())
++ flags |= QTextItem::StrikeOut;
++}
diff --git a/Telegram/SourceFiles/qt_static_plugins.cpp b/Telegram/SourceFiles/qt_static_plugins.cpp
-index cc1a767cf..c71c8e8af 100644
+index cc1a767cf..be47222bc 100644
--- a/Telegram/SourceFiles/qt_static_plugins.cpp
+++ b/Telegram/SourceFiles/qt_static_plugins.cpp
-@@ -19,14 +19,4 @@ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
- #elif defined Q_OS_MAC // Q_OS_WIN
+@@ -20,13 +20,4 @@ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
Q_IMPORT_PLUGIN(QGenericEnginePlugin)
--#elif defined Q_OS_LINUX // Q_OS_WIN | Q_OS_MAC
+ #elif defined Q_OS_LINUX // Q_OS_WIN | Q_OS_MAC
-Q_IMPORT_PLUGIN(QXcbIntegrationPlugin)
-Q_IMPORT_PLUGIN(QConnmanEnginePlugin)
-Q_IMPORT_PLUGIN(QGenericEnginePlugin)
@@ -34,8 +139,7 @@ index cc1a767cf..c71c8e8af 100644
-Q_IMPORT_PLUGIN(QFcitxPlatformInputContextPlugin)
-Q_IMPORT_PLUGIN(QHimePlatformInputContextPlugin)
-Q_IMPORT_PLUGIN(NimfInputContextPlugin)
--#endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX
-+#endif // Q_OS_WIN | Q_OS_MAC
+ #endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX
Submodule Telegram/gyp/helpers contains modified content
diff --git a/Telegram/gyp/helpers/PrecompiledHeader.cmake b/Telegram/gyp/helpers/PrecompiledHeader.cmake
index 9508bd8..15952e5 100644
@@ -306,10 +410,10 @@ index ba6bc45e8..73af2b27d 100644
}], ['<!(pkg-config ayatana-appindicator3-0.1; echo $?) == 0', {
'cflags_cc': [ '<!(pkg-config --cflags ayatana-appindicator3-0.1)' ],
diff --git a/Telegram/gyp/telegram/sources.txt b/Telegram/gyp/telegram/sources.txt
-index e3ccb66db..a55d5a5a0 100644
+index e3ccb66db..7cf07e97e 100644
--- a/Telegram/gyp/telegram/sources.txt
+++ b/Telegram/gyp/telegram/sources.txt
-@@ -842,15 +842,6 @@
+@@ -842,14 +842,7 @@
<(src_loc)/settings.cpp
<(src_loc)/settings.h
@@ -321,10 +425,10 @@ index e3ccb66db..a55d5a5a0 100644
-<(minizip_loc)/zip.h
-<(minizip_loc)/unzip.c
-<(minizip_loc)/unzip.h
--
++<(src_loc)/qt_functions.cpp
+
platforms: win
<(res_loc)/winrc/Telegram.rc
-
diff --git a/Telegram/gyp/tests/tests.gyp b/Telegram/gyp/tests/tests.gyp
index 43ae1d696..05fe0fbba 100644
--- a/Telegram/gyp/tests/tests.gyp
@@ -378,3 +482,36 @@ index b9f5692..990e7fa 100644
</qresource>
<qresource prefix="/fc">
<file>fc-custom.conf</file>
+diff --git a/Telegram/lib_ui/ui/text/text.cpp b/Telegram/lib_ui/ui/text/text.cpp
+index 724000b..ec693a1 100644
+--- a/Telegram/lib_ui/ui/text/text.cpp
++++ b/Telegram/lib_ui/ui/text/text.cpp
+@@ -1967,11 +1967,11 @@ private:
+ if (item == -1)
+ return;
+
+-#ifdef OS_MAC_OLD
++#if defined(OS_MAC_OLD) || QT_VERSION < QT_VERSION_CHECK(5, 6, 0)
+ auto end = _e->findItem(line.from + line.length - 1);
+-#else // OS_MAC_OLD
++#else
+ auto end = _e->findItem(line.from + line.length - 1, item);
+-#endif // OS_MAC_OLD
++#endif
+
+ auto blockIndex = _lineStartBlock;
+ auto currentBlock = _t->_blocks[blockIndex].get();
+diff --git a/Telegram/lib_ui/ui/text/text_block.cpp b/Telegram/lib_ui/ui/text/text_block.cpp
+index 314adb7..2de07bd 100644
+--- a/Telegram/lib_ui/ui/text/text_block.cpp
++++ b/Telegram/lib_ui/ui/text/text_block.cpp
+@@ -333,6 +333,9 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi
+
+ QStackTextEngine engine(part, blockFont->f);
+ BlockParser parser(&engine, this, minResizeWidth, _from, part);
++ QTextLayout layout(part, blockFont->f);
++ layout.beginLayout();
++ layout.createLine();
+ }
+ }
+