Date: Saturday, June 23, 2018 @ 06:55:01 Author: arojas Revision: 327492
Fix crash with fusion style (FS#56947) Added: texmacs/trunk/texmacs-fusion.patch Modified: texmacs/trunk/PKGBUILD ----------------------+ PKGBUILD | 11 +++-- texmacs-fusion.patch | 101 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-06-23 05:50:06 UTC (rev 327491) +++ PKGBUILD 2018-06-23 06:55:01 UTC (rev 327492) @@ -4,7 +4,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/" @@ -17,9 +17,11 @@ 'imagemagick: convert images' 'aspell: spell checking') makedepends=('ghostscript' 'cmake') -source=(http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${pkgver}-src.tar.gz) +source=(http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${pkgver}-src.tar.gz + texmacs-fusion.patch) options=('!emptydirs') -sha1sums=('bef4d2637ad3cff0138236f07ee0031943b8de61') +sha1sums=('bef4d2637ad3cff0138236f07ee0031943b8de61' + '21bdad3180f8dca6c16f4a3a43f1d96eab718b0f') prepare() { cd TeXmacs-${pkgver}-src @@ -30,6 +32,9 @@ sed -i 's/"python"/"python2"/' plugins/python/progs/init-python.scm 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 } build() { Added: texmacs-fusion.patch =================================================================== --- texmacs-fusion.patch (rev 0) +++ texmacs-fusion.patch 2018-06-23 06:55:01 UTC (rev 327492) @@ -0,0 +1,101 @@ +From 9e95c89118cb0404eac575b40f97d8439f704bc7 Mon Sep 17 00:00:00 2001 +From: Darcy Shen <sad...@zoho.com> +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);