[arch-commits] Commit in abiword/trunk (PKGBUILD fix_crash_saving_pdf.patch)

Andreas Radke andyrtr at nymeria.archlinux.org
Tue Apr 8 14:24:40 UTC 2014


    Date: Tuesday, April 8, 2014 @ 16:24:40
  Author: andyrtr
Revision: 209913

upgpkg: abiword 3.0.0-2

fix saving pdf documents; FS#39652

Added:
  abiword/trunk/fix_crash_saving_pdf.patch
Modified:
  abiword/trunk/PKGBUILD

----------------------------+
 PKGBUILD                   |   11 ++++-
 fix_crash_saving_pdf.patch |   86 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-04-08 13:40:06 UTC (rev 209912)
+++ PKGBUILD	2014-04-08 14:24:40 UTC (rev 209913)
@@ -5,7 +5,7 @@
 pkgbase=abiword
 pkgname=('abiword' 'abiword-plugins')
 pkgver=3.0.0
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 license=('GPL')
 url='http://www.abisource.com'
@@ -14,8 +14,10 @@
              'libots' 'libwpg' 'librsvg' 'loudmouth' 'libsoup' 'psiconv'
              'redland' 'libical')
 options=('!makeflags')
-source=(http://abisource.com/downloads/$pkgbase/$pkgver/source/$pkgbase-$pkgver.tar.gz)
-md5sums=('8d9c41cff3a8fbef8d0c835c65600e65')
+source=(http://abisource.com/downloads/$pkgbase/$pkgver/source/$pkgbase-$pkgver.tar.gz
+        fix_crash_saving_pdf.patch)
+md5sums=('8d9c41cff3a8fbef8d0c835c65600e65'
+         'c3336f5ac7d227ff755c7e42459f20e1')
 
 build() {
   cd $pkgbase-$pkgver
@@ -37,6 +39,9 @@
 #./../../../backends/tcp/xp/Session.h:34:63: error: expected class-name before ',' token
 # class Session : public Synchronizer, public boost::noncopyable, public boost::enable_shared_from_this<Session>
 
+  # fix FS#39652 - http://bugzilla.abisource.com/show_bug.cgi?id=13586#c2
+  patch -Np2 -i ${srcdir}/fix_crash_saving_pdf.patch
+
   ./configure --prefix=/usr \
     --enable-shared \
     --disable-static \

Added: fix_crash_saving_pdf.patch
===================================================================
--- fix_crash_saving_pdf.patch	                        (rev 0)
+++ fix_crash_saving_pdf.patch	2014-04-08 14:24:40 UTC (rev 209913)
@@ -0,0 +1,86 @@
+--- abiword/trunk/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp	2013/12/23 03:20:34	33661
++++ abiword/trunk/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp	2013/12/28 02:04:39	33662
+@@ -36,42 +36,60 @@
+ 
+ 	mode = _fv_text_handle_get_mode (handle);
+ 
+-	if (pos == FV_TEXT_HANDLE_POSITION_SELECTION_START)
++	if (pos == FV_TEXT_HANDLE_POSITION_SELECTION_START) {
+ 		handles->updateSelectionStart ((UT_sint32)x, (UT_sint32)y);
++        }
+ 	else {
+-		if (mode == FV_TEXT_HANDLE_MODE_SELECTION)
++		if (mode == FV_TEXT_HANDLE_MODE_SELECTION) {
+ 			handles->updateSelectionEnd ((UT_sint32)x, (UT_sint32)y);
+-                else
++                }
++                else {
+ 			handles->updateCursor((UT_sint32)x, (UT_sint32)y);
++                }
+ 	}
+ }
+ 
+ FV_UnixSelectionHandles::FV_UnixSelectionHandles(FV_View *view, FV_Selection selection)
+ 	: FV_SelectionHandles (view, selection)
++	, m_text_handle(NULL)
+ {
+ 	XAP_Frame * pFrame = static_cast<XAP_Frame*>(m_pView->getParentData());
+-	XAP_UnixFrameImpl * pFrameImpl =static_cast<XAP_UnixFrameImpl *>( pFrame->getFrameImpl());
+-	GtkWidget * pWidget = pFrameImpl->getViewWidget();
+-
+-	m_text_handle = _fv_text_handle_new (pWidget);
+-        _fv_text_handle_set_relative_to (m_text_handle,
+-                                         gtk_widget_get_window (pWidget));
+-        g_signal_connect (m_text_handle, "handle-dragged",
+-                          G_CALLBACK(handle_dragged_cb), this);
++	// When saving to PDF (and printing) we don't have a frame
++	// See bug 13586
++	if (pFrame) {
++		XAP_UnixFrameImpl * pFrameImpl = static_cast<XAP_UnixFrameImpl *>(pFrame->getFrameImpl());
++		GtkWidget * pWidget = pFrameImpl->getViewWidget();
++
++		m_text_handle = _fv_text_handle_new (pWidget);
++		_fv_text_handle_set_relative_to (m_text_handle,
++						 gtk_widget_get_window (pWidget));
++		g_signal_connect (m_text_handle, "handle-dragged",
++				  G_CALLBACK(handle_dragged_cb), this);
++	}
+ }
+ 
+ FV_UnixSelectionHandles::~FV_UnixSelectionHandles()
+ {
++	if(!m_text_handle) {
++		return;
++	}
+ 	g_object_unref (m_text_handle);
+ }
+ 
+ void FV_UnixSelectionHandles::hide()
+ {
++	if(!m_text_handle) {
++		return;
++	}
+ 	_fv_text_handle_set_mode (m_text_handle, FV_TEXT_HANDLE_MODE_NONE);
+ }
+ 
+ void FV_UnixSelectionHandles::setCursorCoords(UT_sint32 x, UT_sint32 y, UT_uint32 height, bool visible)
+ {
++	if(!m_text_handle) {
++		return;
++	}
++
+ 	GdkRectangle rect;
+ 
+ 	_fv_text_handle_set_mode(m_text_handle, FV_TEXT_HANDLE_MODE_CURSOR);
+@@ -92,6 +110,10 @@
+ void FV_UnixSelectionHandles::setSelectionCoords(UT_sint32 start_x, UT_sint32 start_y, UT_uint32 start_height, bool start_visible,
+                                                  UT_sint32 end_x, UT_sint32 end_y, UT_uint32 end_height, bool end_visible)
+ {
++	if(!m_text_handle) {
++		return;
++	}
++
+ 	GdkRectangle rect;
+ 
+ 	_fv_text_handle_set_mode(m_text_handle, FV_TEXT_HANDLE_MODE_SELECTION);
+




More information about the arch-commits mailing list