diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-02-03 08:02:15 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2014-02-03 08:02:56 +0000 |
commit | 1c7d7f104943da2fe9a9559537e6f2e3b2ad5314 (patch) | |
tree | aa59fa917275335898cd97475ab08e0f749e4fcd /main/abiword | |
parent | 776021e972760971ec9eddddb01368fb5812dc28 (diff) | |
download | aports-1c7d7f104943da2fe9a9559537e6f2e3b2ad5314.tar.bz2 aports-1c7d7f104943da2fe9a9559537e6f2e3b2ad5314.tar.xz |
main/abiword: fix crash on save as pdf
http://bugzilla.abisource.com/show_bug.cgi?id=13586
Diffstat (limited to 'main/abiword')
-rw-r--r-- | main/abiword/APKBUILD | 12 | ||||
-rw-r--r-- | main/abiword/pdf.patch | 88 |
2 files changed, 96 insertions, 4 deletions
diff --git a/main/abiword/APKBUILD b/main/abiword/APKBUILD index 3d88a108cf..3a958b898e 100644 --- a/main/abiword/APKBUILD +++ b/main/abiword/APKBUILD @@ -1,7 +1,7 @@ # 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" diff --git a/main/abiword/pdf.patch b/main/abiword/pdf.patch new file mode 100644 index 0000000000..0c3d0bb98c --- /dev/null +++ b/main/abiword/pdf.patch @@ -0,0 +1,88 @@ +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); |