diff --git a/extra/texmacs/PKGBUILD b/extra/texmacs/PKGBUILD index a83b83e2e..6bc6b3f7f 100644 --- a/extra/texmacs/PKGBUILD +++ b/extra/texmacs/PKGBUILD @@ -7,7 +7,7 @@ pkgname=texmacs pkgver=1.99.6 -pkgrel=1 +pkgrel=2 pkgdesc="Free scientific text editor, inspired by TeX and GNU Emacs. WYSIWYG editor TeX-fonts and CAS-interface (Giac, GTybalt, Macaulay 2, Maxima, Octave, Pari, Qcl, R and Yacas) in one." arch=('x86_64') url="http://www.texmacs.org/" @@ -21,9 +21,11 @@ optdepends=('transfig: convert images using fig2ps' 'aspell: spell checking') makedepends=('ghostscript' 'cmake') source=(http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${pkgver}-src.tar.gz + texmacs-fusion.patch fix-size_t-check.patch) options=('!emptydirs') sha1sums=('bef4d2637ad3cff0138236f07ee0031943b8de61' + '21bdad3180f8dca6c16f4a3a43f1d96eab718b0f' '57e1c2a560ad4d52f0c96f05c990f738b65d2571') prepare() { @@ -36,6 +38,9 @@ prepare() { sed -e 's/-Wno-deprecated-register//' -i src/CMakeLists.txt # Remove wrong flag on Linux + # Fix crash with fusion style + patch -p2 -i ../texmacs-fusion.patch + patch -p1 -i ../fix-size_t-check.patch } diff --git a/extra/texmacs/texmacs-fusion.patch b/extra/texmacs/texmacs-fusion.patch new file mode 100644 index 000000000..33aa49a24 --- /dev/null +++ b/extra/texmacs/texmacs-fusion.patch @@ -0,0 +1,101 @@ +From 9e95c89118cb0404eac575b40f97d8439f704bc7 Mon Sep 17 00:00:00 2001 +From: Darcy Shen +Date: Tue, 19 Jun 2018 18:17:47 +0000 +Subject: [PATCH] fix as QTBUG-65578 indicates + +--- + src/src/Plugins/Qt/QTMMenuHelper.cpp | 11 +++++------ + src/src/Plugins/Qt/QTMMenuHelper.hpp | 21 --------------------- + 3 files changed, 6 insertions(+), 27 deletions(-) + +diff --git a/src/src/Plugins/Qt/QTMMenuHelper.cpp b/src/src/Plugins/Qt/QTMMenuHelper.cpp +index 5f7ae7d47..d1646d7c3 100644 +--- a/src/src/Plugins/Qt/QTMMenuHelper.cpp ++++ b/src/src/Plugins/Qt/QTMMenuHelper.cpp +@@ -241,8 +241,6 @@ QTMMinibarAction::createWidget (QWidget* parent) { + ******************************************************************************/ + + QTMMenuButton::QTMMenuButton (QWidget* parent) : QToolButton (parent) { +- QTMAuxMenu m; +- m.myInitStyleOption (&option); + setAttribute (Qt::WA_Hover); + } + +@@ -267,11 +265,13 @@ QTMMenuButton::mouseReleaseEvent (QMouseEvent* e) { + void + QTMMenuButton::paintEvent (QPaintEvent* e) { + (void) e; +- QPainter p (this); + + // initialize the options + QStyleOptionToolButton opt; + initStyleOption (&opt); ++ ++ QPainter p (this); ++ QStyleOptionToolButton option; + QRect r = rect(); + option.rect = r; + option.state = QStyle::State_Enabled | (opt.state & QStyle::State_MouseOver +@@ -289,14 +289,13 @@ QTMMenuButton::paintEvent (QPaintEvent* e) { + ******************************************************************************/ + + QTMMenuWidget::QTMMenuWidget (QWidget* parent) : QWidget (parent) { +- QTMAuxMenu m; +- m.myInitStyleOption (&option); + } + + void + QTMMenuWidget::paintEvent(QPaintEvent* e) { + QPainter p (this); +- option.rect = rect (); ++ QStyleOptionMenuItem option; ++ option.rect = rect(); + style()->drawControl (QStyle::CE_MenuEmptyArea, &option, &p, this); + QWidget::paintEvent (e); + } +diff --git a/src/src/Plugins/Qt/QTMMenuHelper.hpp b/src/src/Plugins/Qt/QTMMenuHelper.hpp +index 7a3098c87..8dfb319eb 100644 +--- a/src/src/Plugins/Qt/QTMMenuHelper.hpp ++++ b/src/src/Plugins/Qt/QTMMenuHelper.hpp +@@ -188,23 +188,6 @@ class QTMMinibarAction : public QWidgetAction { + }; + + +-/*! +- We use this class to properly initialize style options for our QWidgets +- which have to blend into QMenus. See #QTBUG-1993 and #QTBUG-7707. +- */ +-class QTMAuxMenu : public QMenu { +- Q_OBJECT +- +-public: +- QTMAuxMenu() : QMenu() { } +- +- void myInitStyleOption (QStyleOptionMenuItem* option) const { +- QAction action (NULL); +- initStyleOption (option, &action); +- } +-}; +- +- + /*! QTMMenuButton is a custom button appropriate for menus. + + We need to subclass QToolButton for two reasons: +@@ -215,8 +198,6 @@ class QTMAuxMenu : public QMenu { + class QTMMenuButton: public QToolButton { + Q_OBJECT + +- QStyleOptionMenuItem option; +- + public: + QTMMenuButton (QWidget* parent = NULL); + +@@ -231,8 +212,6 @@ class QTMMenuButton: public QToolButton { + class QTMMenuWidget: public QWidget { + Q_OBJECT + +- QStyleOptionMenuItem option; +- + public: + QTMMenuWidget (QWidget* parent = NULL); + void paintEvent(QPaintEvent *event);