diff options
author | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2014-09-02 23:29:21 -0300 |
---|---|---|
committer | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2014-09-02 23:29:21 -0300 |
commit | e19513e92d38a19ce1d1d11f4e1c488a2a551e72 (patch) | |
tree | f594d2b8c3b1b659ff9731149717409a6edd9e0c /libre/abiword/fix_crash_saving_pdf.patch | |
parent | 10abf269ca1c3eda8334e515cc7d3f0f92c999dd (diff) | |
parent | 4cbcea3c1078e754ad555410d2fad0d3ed0e3bd3 (diff) | |
download | abslibre-e19513e92d38a19ce1d1d11f4e1c488a2a551e72.tar.gz abslibre-e19513e92d38a19ce1d1d11f4e1c488a2a551e72.tar.bz2 abslibre-e19513e92d38a19ce1d1d11f4e1c488a2a551e72.zip |
Merge branch 'master' of ssh://lukeshu.com:1863/srv/git/mirror/parabola/abslibre
Diffstat (limited to 'libre/abiword/fix_crash_saving_pdf.patch')
-rw-r--r-- | libre/abiword/fix_crash_saving_pdf.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/libre/abiword/fix_crash_saving_pdf.patch b/libre/abiword/fix_crash_saving_pdf.patch new file mode 100644 index 000000000..6dd78c7f9 --- /dev/null +++ b/libre/abiword/fix_crash_saving_pdf.patch @@ -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); + |