Commit 1c7d7f10 authored by Natanael Copa's avatar Natanael Copa

main/abiword: fix crash on save as pdf

http://bugzilla.abisource.com/show_bug.cgi?id=13586
parent 776021e9
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=abiword
pkgver=3.0.0
pkgrel=1
pkgrel=2
pkgdesc="A fully-featured word processor"
url="http://www.abisource.com"
arch="all"
......@@ -29,6 +29,7 @@ for _i in $_plugins; do
done
source="http://www.abisource.com/downloads/$pkgname/$pkgver/source/$pkgname-$pkgver.tar.gz
pdf.patch
"
_builddir="$srcdir"/$pkgname-$pkgver
......@@ -83,6 +84,9 @@ plugins() {
mkdir -p "$subpkgdir"
}
md5sums="8d9c41cff3a8fbef8d0c835c65600e65 abiword-3.0.0.tar.gz"
sha256sums="d17e318c00ff4eb353e0e7994b098b1d4f9ddd8712ac0261a0e38b89081fac01 abiword-3.0.0.tar.gz"
sha512sums="3f9804b17f27b8afa2f5bcccdb1b5d6270339ad4f518523208f2e2cde54cb28391575cfd3639aaadc13ab50d5908260b159ca7b41fd92ed5a449d7012e5a4637 abiword-3.0.0.tar.gz"
md5sums="8d9c41cff3a8fbef8d0c835c65600e65 abiword-3.0.0.tar.gz
ba81b555f1980b2f070c494fce50b830 pdf.patch"
sha256sums="d17e318c00ff4eb353e0e7994b098b1d4f9ddd8712ac0261a0e38b89081fac01 abiword-3.0.0.tar.gz
94ab986c208fe13c2f89a0b6af5983dee19f8e9e6267e07f95e053e2c50826d4 pdf.patch"
sha512sums="3f9804b17f27b8afa2f5bcccdb1b5d6270339ad4f518523208f2e2cde54cb28391575cfd3639aaadc13ab50d5908260b159ca7b41fd92ed5a449d7012e5a4637 abiword-3.0.0.tar.gz
6c5c25d049254e16577f8adb0d046e52cbf1d5dfc7c89dc8a23357447d17ce07f09b5864f0ccd0dfefa289ced685aa22de7de51f0681f50373728c9764cf5650 pdf.patch"
http://bugzilla.abisource.com/show_bug.cgi?id=13586
Index: src/text/fmt/gtk/fv_UnixSelectionHandles.cpp
===================================================================
--- ./src/text/fmt/gtk/fv_UnixSelectionHandles.cpp (revision 33662)
+++ ./src/text/fmt/gtk/fv_UnixSelectionHandles.cpp (revision 33663)
@@ -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();
+ // 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);
+ 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);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment