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);

Reply via email to