diff options
author | nia <nia@pkgsrc.org> | 2019-11-26 16:54:13 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2019-11-26 16:54:13 +0000 |
commit | ff1d18bacc49e04b57b0800cc0a1fb543046cfdc (patch) | |
tree | 47e8181f4abe861a9ade8f98f3b2e1b34268791c /editors/abiword | |
parent | 4a27a1106113780b346070bd76a1fd7329fd24f9 (diff) | |
download | pkgsrc-ff1d18bacc49e04b57b0800cc0a1fb543046cfdc.tar.gz |
abiword: Update to 3.0.3
Changes:
Bug 13827 - Fix overflow read in PNG
Bug 13826 - Fix out of bounds access
Bug 13834 - Do not delete[] strings allocated with g_malloc()
Bug 13815 - Fix the black drawing regression with Gtk3.22
Bug 13791 - Fix flicker and caret problems
Bug 13791 - Reduce flickering
Fix Gtk criticals in dialog stylist
Fix stylist styles population
Fix a bad static_cast
Fix a runtime error (integer overflow)
Update sq-AL.po
Bug 13904 - Fix touch pad scrolling
Diffstat (limited to 'editors/abiword')
24 files changed, 18 insertions, 879 deletions
diff --git a/editors/abiword/Makefile b/editors/abiword/Makefile index 9c9ebe04540..9782af7fbc8 100644 --- a/editors/abiword/Makefile +++ b/editors/abiword/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.190 2019/08/22 12:23:04 ryoon Exp $ +# $NetBSD: Makefile,v 1.191 2019/11/26 16:54:13 nia Exp $ .include "Makefile.common" + DISTNAME= abiword-${ABIVERSION} -PKGREVISION= 9 CATEGORIES= editors MASTER_SITES= http://www.abiword.com/downloads/abiword/${PKGVERSION_NOREV}/source/ diff --git a/editors/abiword/Makefile.common b/editors/abiword/Makefile.common index 3ee58787bad..db7f13f20ae 100644 --- a/editors/abiword/Makefile.common +++ b/editors/abiword/Makefile.common @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.common,v 1.48 2019/06/08 10:40:53 rillig Exp $ +# $NetBSD: Makefile.common,v 1.49 2019/11/26 16:54:13 nia Exp $ # used by editors/abiword-plugins/Makefile -ABIVERSION= 3.0.2 +ABIVERSION= 3.0.3 diff --git a/editors/abiword/PLIST b/editors/abiword/PLIST index 770691b0b91..8b0674c81a0 100644 --- a/editors/abiword/PLIST +++ b/editors/abiword/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.27 2015/09/13 21:32:12 nros Exp $ +@comment $NetBSD: PLIST,v 1.28 2019/11/26 16:54:13 nia Exp $ bin/abiword include/abiword-3.0/abiwidget.h include/abiword-3.0/libabiword.h @@ -280,6 +280,7 @@ share/abiword-3.0/ui/xap_UnixDlg_Password.ui share/abiword-3.0/ui/xap_UnixDlg_PluginManager.ui share/abiword-3.0/ui/xap_UnixDlg_WindowMore.ui share/abiword-3.0/ui/xap_UnixDlg_Zoom.ui +share/appdata/abiword.appdata.xml share/applications/abiword.desktop share/icons/hicolor/16x16/apps/abiword.png share/icons/hicolor/22x22/apps/abiword.png diff --git a/editors/abiword/distinfo b/editors/abiword/distinfo index 32e873a61e6..bb386141994 100644 --- a/editors/abiword/distinfo +++ b/editors/abiword/distinfo @@ -1,11 +1,11 @@ -$NetBSD: distinfo,v 1.78 2019/06/08 10:40:53 rillig Exp $ +$NetBSD: distinfo,v 1.79 2019/11/26 16:54:13 nia Exp $ -SHA1 (abiword-3.0.2.tar.gz) = 8226e0962e6667e0a461955a0ac680a629e0b55a -RMD160 (abiword-3.0.2.tar.gz) = fde551492b0cffa7d522082906f374490bd47f5c -SHA512 (abiword-3.0.2.tar.gz) = 29ce9e80b3b85ab2933e7d39216771d8c4e05db5255eaed0cf8e1d032ffaac2cb1880bf24e754196ad5dae4969a1c2101ce4dc9c1db14604adc2f852b6a17fe3 -Size (abiword-3.0.2.tar.gz) = 11154333 bytes +SHA1 (abiword-3.0.3.tar.gz) = bdc9cb32b1f17d7245c45eac3256d49b85e41e8d +RMD160 (abiword-3.0.3.tar.gz) = d52c30a9a10f1f89dff8c7df6bd50911f14cbdcf +SHA512 (abiword-3.0.3.tar.gz) = cabe5cfea02b0656bc8b14b0daf3ea5bf6e1487c1eb5a8fa21b93723163d9798768d8aae3c9ece9a1d0e939592649783eb9c78d44ce7e03724eb57a824a080f9 +Size (abiword-3.0.3.tar.gz) = 10940348 bytes SHA1 (patch-configure.ac) = 239c0635c2c616c7e0a986a5fd92428393af38b7 -SHA1 (patch-plugin-configure.m4) = 50b5b6be8a1e8270c7ce45a4ed94cb5d436516f2 +SHA1 (patch-plugin-configure.m4) = 396c7ec04298b5af3807248f94f2c8630f3579ac SHA1 (patch-plugins_aiksaurus_Makefile.am) = 1529d5098b7fb798c428fe02cc50879374cb3e9d SHA1 (patch-plugins_command_Makefile.am) = e003a6bf9a6e0566abc85f09868fdf1aa93234d7 SHA1 (patch-plugins_gimp_xp_AbiGimp.cpp) = 2b245de4beb2f4b9b8cd8593c811bb086bb2bde3 @@ -20,29 +20,10 @@ SHA1 (patch-plugins_wordperfect_xp_ie__imp__WordPerfect.h) = 4931688c7cb82b9fe41 SHA1 (patch-plugins_wordperfect_xp_ie__impexp__WordPerfect.cpp) = 255ac57f2f127d76aff6bdbf1f0ddc223a673ca9 SHA1 (patch-plugins_wordperfect_xp_ie__impexp__WordPerfect.h) = a3eac8abff26bf91f698948430e89bff13db710b SHA1 (patch-plugins_wpg_xp_ie__impGraphic__WPG.cpp) = 7eb0296fdff2fa27288f4c68fc337ba105695551 -SHA1 (patch-src_af_gr_gtk_gr__UnixCairoGraphics.cpp) = 2fb170202d13c9ddf077cea545d8d8f79fdbf5c2 -SHA1 (patch-src_af_gr_gtk_gr__UnixImage.cpp) = 2546621961ce959a8d5078ff52efa4650362be54 -SHA1 (patch-src_af_gr_xp_gr__Caret.cpp) = 96b186c4fc762f6734226b4505e2d4c64fb2b03a -SHA1 (patch-src_af_gr_xp_gr__Caret.h) = f7ee697a720205cd9026a85d7683092fc147a237 -SHA1 (patch-src_af_gr_xp_gr__Graphics.cpp) = 9cf398ea8e787e5820d41182c005fe2906c7ec06 -SHA1 (patch-src_af_gr_xp_gr__Graphics.h) = a3539f0e2e3a8f661a01428f7550f8a4bebb1ee5 -SHA1 (patch-src_af_util_unix_ut__unixTimer.cpp) = 543d8977c8da5c1db4e26581d82f72a4f936f190 SHA1 (patch-src_af_util_xp_ut__endian.h) = e1dd4cc0df3b0eb66dbd673fb5c0d2e3b24b30a4 SHA1 (patch-src_af_util_xp_ut__iconv.cpp) = 18529454262fe6cb3ae15fd485c7bcc8adb00ae3 SHA1 (patch-src_af_util_xp_ut__iconv.h) = bbcfa2098ea77d393feb50d69de9ae29fcce302f SHA1 (patch-src_af_util_xp_ut__mbtowc.cpp) = cf7078a6bfdf9ac9b30478d11d9d3a81a95b8ed1 SHA1 (patch-src_af_util_xp_ut__misc.cpp) = f552ecbb87490355d8e74218dd59fd3961f1af5d -SHA1 (patch-src_af_util_xp_ut__png.cpp) = 9f4ae043873fc6d66e063419d0736bb6104483b0 -SHA1 (patch-src_af_xap_gtk_xap__UnixFrameImpl.cpp) = 5b67bd234209beddc751e7c98b17cf1844b73b1a -SHA1 (patch-src_af_xap_gtk_xap__UnixFrameImpl.h) = af256fec37a7b9cd4239802985ad1a46f8272ad8 SHA1 (patch-src_af_xap_xp_enchant__checker.cpp) = 5ad3b8bb4e186e998d7e8930247534c9f058c534 -SHA1 (patch-src_af_xap_xp_xap__Frame.cpp) = d7f29f199b7109c8a09fa40f969be0db3a6b79ba -SHA1 (patch-src_text_fmt_xp_fl__SectionLayout.cpp) = 3f1f9255bb979812c8062f542ed4b9faa488a368 SHA1 (patch-src_text_fmt_xp_fv__FrameEdit.h) = 684310bf9aece4ce72d004dfae9a4b4b6ca69570 -SHA1 (patch-src_text_fmt_xp_fv__View.cpp) = 872f4d94a3797b0ae1c32500267e46afa5ebd3ac -SHA1 (patch-src_text_fmt_xp_fv__ViewDoubleBuffering.cpp) = ef11cce5d6d07c33416666e30c1aed33abfa8e1c -SHA1 (patch-src_text_fmt_xp_fv__View__protected.cpp) = c567a8962280aa6f5b20151b74616b14ff0c2aa7 -SHA1 (patch-src_text_ptbl_xp_pd__DocumentRDF.cpp) = 5673e9341372913156f2f722229569199d97af4c -SHA1 (patch-src_wp_ap_gtk_ap__UnixFrameImpl.cpp) = 709abd20ccaffc96cf8b9e77ea506fe6732e6d62 -SHA1 (patch-src_wp_impexp_xp_ie__exp__DocRangeListener.cpp) = cab84cf239874409d8e349c58c3605d91712b3c4 -SHA1 (patch-src_wp_impexp_xp_ie__imp__RTF.cpp) = 89cddf0213c1aeb1c915f4722e5db3a68f553ae6 diff --git a/editors/abiword/patches/patch-plugin-configure.m4 b/editors/abiword/patches/patch-plugin-configure.m4 index 83ba0eb62fe..a6616c468f0 100644 --- a/editors/abiword/patches/patch-plugin-configure.m4 +++ b/editors/abiword/patches/patch-plugin-configure.m4 @@ -1,12 +1,12 @@ -$NetBSD: patch-plugin-configure.m4,v 1.3 2019/06/08 10:40:53 rillig Exp $ +$NetBSD: patch-plugin-configure.m4,v 1.4 2019/11/26 16:54:13 nia Exp $ * adapt wordperfect plugins to dependecies available in pkgsrc from abiword svn date 2014-12-27 ---- plugin-configure.m4.orig 2016-10-21 00:42:58.000000000 +0000 +--- plugin-configure.m4.orig 2019-11-24 22:57:35.000000000 +0000 +++ plugin-configure.m4 -@@ -72,7 +72,7 @@ AC_SUBST([GRAMMAR_CFLAGS]) - AC_SUBST([GRAMMAR_LIBS]) +@@ -691,7 +691,7 @@ AC_SUBST([RSVG_CFLAGS]) + AC_SUBST([RSVG_LIBS]) -wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0" @@ -14,8 +14,8 @@ $NetBSD: patch-plugin-configure.m4,v 1.3 2019/06/08 10:40:53 rillig Exp $ wpg_deps="no" if test "$enable_wpg" != ""; then -@@ -962,8 +962,8 @@ AC_SUBST([XSLFO_CFLAGS]) - AC_SUBST([XSLFO_LIBS]) +@@ -1797,8 +1797,8 @@ AC_SUBST([FREETRANSLATION_CFLAGS]) + AC_SUBST([FREETRANSLATION_LIBS]) -wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req" diff --git a/editors/abiword/patches/patch-src_af_gr_gtk_gr__UnixCairoGraphics.cpp b/editors/abiword/patches/patch-src_af_gr_gtk_gr__UnixCairoGraphics.cpp deleted file mode 100644 index 9aa30e1f40d..00000000000 --- a/editors/abiword/patches/patch-src_af_gr_gtk_gr__UnixCairoGraphics.cpp +++ /dev/null @@ -1,51 +0,0 @@ -$NetBSD: patch-src_af_gr_gtk_gr__UnixCairoGraphics.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - -Abiword bug 13791, SVN revision 35482: Disable double buffering on GTK3. - ---- src/af/gr/gtk/gr_UnixCairoGraphics.cpp.orig 2016-10-21 00:39:16.000000000 +0000 -+++ src/af/gr/gtk/gr_UnixCairoGraphics.cpp -@@ -126,8 +126,12 @@ GR_Graphics * GR_UnixCairoGraphics::gr - - // UT_return_val_if_fail(!info.isPrinterGraphics(), NULL); - GR_UnixCairoAllocInfo &AI = (GR_UnixCairoAllocInfo&)info; -- -+#if GTK_CHECK_VERSION(3,0,0) -+ // We disable double buffering on Gtk3 because it doesn't work. -+ return new GR_UnixCairoGraphics(AI.m_win, false); -+#else - return new GR_UnixCairoGraphics(AI.m_win, AI.m_double_buffered); -+#endif - } - - inline UT_RGBColor _convertGdkColor(const GdkColor &c) -@@ -566,7 +570,10 @@ void GR_UnixCairoGraphics::_beginPaint() - void GR_UnixCairoGraphics::_endPaint() - { - if (m_CairoCreated) -+ { -+ cairo_surface_flush(cairo_get_target(m_cr)); - cairo_destroy (m_cr); -+ } - m_cr = NULL; - - m_Painting = false; -@@ -577,9 +584,17 @@ void GR_UnixCairoGraphics::_endPaint() - - void GR_UnixCairoGraphics::flush(void) - { -+ - if (m_Widget) { - gtk_widget_queue_draw(m_Widget); - } -+ -+/* -+ if(m_cr) -+ { -+ cairo_surface_flush(cairo_get_target(m_cr)); -+ } -+*/ - } - - bool GR_UnixCairoGraphics::queryProperties(GR_Graphics::Properties gp) const diff --git a/editors/abiword/patches/patch-src_af_gr_gtk_gr__UnixImage.cpp b/editors/abiword/patches/patch-src_af_gr_gtk_gr__UnixImage.cpp deleted file mode 100644 index a621215c2ac..00000000000 --- a/editors/abiword/patches/patch-src_af_gr_gtk_gr__UnixImage.cpp +++ /dev/null @@ -1,24 +0,0 @@ -$NetBSD: patch-src_af_gr_gtk_gr__UnixImage.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13834, SVN revision 35393: Crash fixes. - ---- src/af/gr/gtk/gr_UnixImage.cpp.orig 2015-10-16 02:42:45.000000000 +0000 -+++ src/af/gr/gtk/gr_UnixImage.cpp -@@ -244,12 +244,13 @@ bool GR_UnixImage::saveToPNG(const char - UT_return_val_if_fail(m_image,false); - - GError * error = NULL; -- gboolean res = gdk_pixbuf_save (m_image, szFile, "png", &error,NULL); -- if(res != FALSE) -- { -+ gboolean res = gdk_pixbuf_save (m_image, szFile, "png", &error, NULL); -+ if (res != FALSE) { -+ if (error) { -+ g_error_free (error); -+ } - return true; - } -- delete error; - return false; - - } diff --git a/editors/abiword/patches/patch-src_af_gr_xp_gr__Caret.cpp b/editors/abiword/patches/patch-src_af_gr_xp_gr__Caret.cpp deleted file mode 100644 index 599f7aaf18b..00000000000 --- a/editors/abiword/patches/patch-src_af_gr_xp_gr__Caret.cpp +++ /dev/null @@ -1,305 +0,0 @@ -$NetBSD: patch-src_af_gr_xp_gr__Caret.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/af/gr/xp/gr_Caret.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/af/gr/xp/gr_Caret.cpp -@@ -30,6 +30,11 @@ - #include "gr_Graphics.h" - #include "gr_Painter.h" - #include "ut_debugmsg.h" -+#include <inttypes.h> -+#include <math.h> -+#include <stdio.h> -+#include <time.h> -+ - static const UT_uint32 CURSOR_DELAY_TIME = 10; // milliseconds - - #ifdef TOOLKIT_GTK_ALL -@@ -56,6 +61,11 @@ GR_Caret::GR_Caret(GR_Graphics * pG) - m_yPoint2(0), - m_pClr(NULL), - m_pG(pG), -+ m_iWindowWidth(0), -+ m_iWindowHeight(0), -+ m_worker(NULL), -+ m_enabler(NULL), -+ m_blinkTimeout(NULL), - m_nDisableCount(1), - m_bCursorBlink(true), - m_bCursorIsOn(false), -@@ -70,7 +80,10 @@ GR_Caret::GR_Caret(GR_Graphics * pG) - m_bRemote(false), - m_clrRemote(0,0,0), - m_sID(""), -- m_iCaretNumber(0) -+ m_iCaretNumber(0), -+ m_iLastDrawTime(0), -+ m_iRetry(0), -+ m_bPendingBlink(false) - { - UT_WorkerFactory::ConstructMode outMode = UT_WorkerFactory::NONE; - m_worker = static_cast<UT_Timer *>(UT_WorkerFactory::static_constructor -@@ -97,6 +110,11 @@ GR_Caret::GR_Caret(GR_Graphics * pG, con - m_yPoint2(0), - m_pClr(NULL), - m_pG(pG), -+ m_iWindowWidth(0), -+ m_iWindowHeight(0), -+ m_worker(NULL), -+ m_enabler(NULL), -+ m_blinkTimeout(NULL), - m_nDisableCount(1), - m_bCursorBlink(true), - m_bCursorIsOn(false), -@@ -111,7 +129,10 @@ GR_Caret::GR_Caret(GR_Graphics * pG, con - m_bRemote(true), - m_clrRemote(0,0,0), - m_sID(sId), -- m_iCaretNumber(0) -+ m_iCaretNumber(0), -+ m_iLastDrawTime(0), -+ m_iRetry(0), -+ m_bPendingBlink(false) - { - UT_WorkerFactory::ConstructMode outMode = UT_WorkerFactory::NONE; - m_worker = static_cast<UT_Timer *>(UT_WorkerFactory::static_constructor -@@ -145,9 +166,16 @@ GR_Caret::~GR_Caret() - void GR_Caret::s_work(UT_Worker * _w) - { - GR_Caret * c = static_cast<GR_Caret *>(_w->getInstanceData()); -- -+ xxx_UT_DEBUGMSG((" Caret timer called Disable Count = %d \n",c->m_nDisableCount)); - if (c->m_nDisableCount == 0) -+ { -+#ifdef TOOLKIT_GTK_ALL -+ c->setPendingBlink(); -+ c->m_pG->flush(); // set redraw for wayland -+#else - c->_blink(false); -+#endif -+ } - } - - /** One-time enabler. */ -@@ -170,9 +198,12 @@ void GR_Caret::s_enable(UT_Worker * _w) - - void GR_Caret::s_blink_timeout(UT_Worker * _w) - { -+ return; -+ /* - GR_Caret * c = static_cast<GR_Caret *>(_w->getInstanceData()); - if (c->isEnabled()) - c->disable(); -+ */ - } - - UT_uint32 GR_Caret::_getCursorBlinkTime() const -@@ -241,8 +272,6 @@ void GR_Caret::setCoords(UT_sint32 x, UT - UT_sint32 x2, UT_sint32 y2, UT_uint32 h2, - bool bPointDirection, const UT_RGBColor * pClr) - { -- // if visible, then hide while we change positions. -- _erase(); - - m_xPoint = x; m_yPoint = y; m_iPointHeight = h; - m_xPoint2 = x2; m_yPoint2 = y2; m_iPointHeight2 = h2; -@@ -270,13 +299,17 @@ void GR_Caret::enable() - - // If the caret is already enabled, just return - if (m_nDisableCount == 0) -+ { -+ xxx_UT_DEBUGMSG(("Don't emable disable Count is already zero \n")); - return; -- -+ } - // Check to see if we still have pending disables. - --m_nDisableCount; -- if (m_nDisableCount) -+ if (m_nDisableCount != 0) -+ { -+ xxx_UT_DEBUGMSG(("Don't emable, disable Count has not reached zero \n")); - return; -- -+ } - // stop pending enables; in 10 ms, really enable blinking. - m_enabler->stop(); - m_enabler->start(); -@@ -326,19 +359,20 @@ void GR_Caret::JustErase(UT_sint32 xPoin - { - if(m_bRecursiveDraw) - { -- xxx_UT_DEBUGMSG(("Doing recursive Erase! - abort \n")); -+ xxx_UT_DEBUGMSG(("Doing recursive Just Erase! - abort \n")); - return; - } - if (m_bCursorIsOn && (((xPoint -m_pG->tlu(2)-1) <= m_xPoint) && (xPoint >= (m_xPoint-m_pG->tlu(2))-1)) && ((yPoint - m_pG->tlu(1)) <= m_yPoint) && (yPoint >= (m_yPoint - m_pG->tlu(1)))) - { -+ xxx_UT_DEBUGMSG(("Doing Just Erase! now \n")); - m_pG->restoreRectangle(m_iCaretNumber*3+0); - if(m_bSplitCaret) - { - m_pG->restoreRectangle(m_iCaretNumber*3+1); -- m_pG->restoreRectangle(m_iCaretNumber*3+2); -- m_bSplitCaret = false; -+ m_pG->restoreRectangle(m_iCaretNumber*3+2); -+ m_bSplitCaret = false; - } -- m_bCursorIsOn = !m_bCursorIsOn; -+ m_bCursorIsOn = false; - m_nDisableCount = 1; - } - } -@@ -358,18 +392,42 @@ void GR_Caret::_blink(bool bExplicit) - } - if (!m_bPositionSet) - return; -+ if(!m_bPendingBlink) -+ return; -+ struct timespec spec; -+ -+ clock_gettime(CLOCK_REALTIME, &spec); - -+ UT_sint32 s = spec.tv_sec; -+ long ms = round(spec.tv_nsec / 1.0e6); // Convert nanoseconds to milliseconds -+ long this_time = 1000*s + ms; -+ long time_between = this_time - m_iLastDrawTime; -+ m_iLastDrawTime = this_time; -+ // -+ // If this number is high enough the caret will not blink at all -+ // This places the caret on the screen during rapid moves. -+ // -+ if(time_between < _getCursorBlinkTime()/2) -+ { -+ m_iRetry++; -+ xxx_UT_DEBUGMSG(("Caret redraw after %d ms \n",time_between)); -+ } -+ else -+ { -+ m_iRetry = 0; -+ } - m_bRecursiveDraw = true; - GR_Painter painter (m_pG, false); - m_bRecursiveDraw = false; - - // After any autoblink, we want there to be BLINK_TIME - // until next autoblink. -+ /* - if (!bExplicit) - { - m_worker->stop(); m_worker->start(); - } -- -+ */ - // Blink if: (a) _blink explicitly called (not autoblink); or - // (b) autoblink and caret blink enabled; or - // (c) autoblink, caret blink disabled, caret is off -@@ -380,6 +438,7 @@ void GR_Caret::_blink(bool bExplicit) - - if (m_bCursorIsOn) - { -+ xxx_UT_DEBUGMSG(("Clear Caret reTry %d \n",m_iRetry)); - m_pG->restoreRectangle(m_iCaretNumber*3+0); - - if(m_bSplitCaret) -@@ -388,6 +447,7 @@ void GR_Caret::_blink(bool bExplicit) - m_pG->restoreRectangle(m_iCaretNumber*3+2); - m_bSplitCaret = false; - } -+ m_bCursorIsOn = false; - } - else - { -@@ -413,7 +473,9 @@ void GR_Caret::_blink(bool bExplicit) - m_yPoint+m_pG->tlu(1), - m_pG->tlu(5), - m_iPointHeight+m_pG->tlu(2)); -+ m_bRecursiveDraw = false; - m_pG->allCarets()->JustErase(m_xPoint,m_yPoint); -+ m_bRecursiveDraw = true; - m_pG->saveRectangle(r0,m_iCaretNumber*3+0); - - if((m_xPoint != m_xPoint2) || (m_yPoint != m_yPoint2)) -@@ -446,7 +508,7 @@ void GR_Caret::_blink(bool bExplicit) - if(m_bCaret1OnScreen) - { - // draw the primary caret -- xxx_UT_DEBUGMSG(("blink cursor turned on \n")); -+ xxx_UT_DEBUGMSG(("Draw Caret reTry %d \n",m_iRetry)); - - UT_sint32 x1 = m_xPoint + iDelta * m_pG->tlu(1); - UT_sint32 x2 = m_xPoint; -@@ -463,6 +525,7 @@ void GR_Caret::_blink(bool bExplicit) - m_yPoint + m_pG->tlu(1), - x2, - m_yPoint + m_iPointHeight + m_pG->tlu(1)); -+ m_bCursorIsOn = true; - } - - if(m_bSplitCaret) -@@ -499,6 +562,7 @@ void GR_Caret::_blink(bool bExplicit) - m_xPoint + m_pG->tlu(2), - m_yPoint + m_pG->tlu(2)); - } -+ m_bCursorIsOn = true; - } - - // Now we deal with the secondary caret needed on ltr-rtl boundary -@@ -557,25 +621,54 @@ void GR_Caret::_blink(bool bExplicit) - m_xPoint2 /*- m_pG->tlu(1)*/, - m_yPoint2 + m_pG->tlu(2)); - } -+ m_bCursorIsOn = true; - } - - } - - } - -- m_bCursorIsOn = !m_bCursorIsOn; - m_pG->setColor(oldColor); - m_bRecursiveDraw = false; - } -- m_pG->flush(); -+ // -+ // Places the caret on the screen during rapid moves like pressing the arrow keys -+ // -+ if(m_iRetry == 0) -+ m_bPendingBlink = false; - } - -+// -+// Tell the widget redraw know we only need to blink on this cycle -+// -+void GR_Caret::setPendingBlink() -+{ -+ xxx_UT_DEBUGMSG(("Pending blink set in GR_CARET \n")); -+ m_bPendingBlink = true; -+} -+ -+// -+// Returns true if we did a blink -+// -+bool GR_Caret::doBlinkIfNeeded() -+{ -+ if(!m_bPendingBlink) -+ { -+ return false; -+ } -+ _blink(true); -+ m_bPendingBlink = false; -+ return true; -+} - /*! - * Only call this is you are absolutely certain you need it! - */ - void GR_Caret::forceDraw(void) - { -- _blink(true); -+ if(m_nDisableCount < 2) -+ { -+ _blink(true); -+ } - } - - void GR_Caret::resetBlinkTimeout(void) diff --git a/editors/abiword/patches/patch-src_af_gr_xp_gr__Caret.h b/editors/abiword/patches/patch-src_af_gr_xp_gr__Caret.h deleted file mode 100644 index df65fae0d1f..00000000000 --- a/editors/abiword/patches/patch-src_af_gr_xp_gr__Caret.h +++ /dev/null @@ -1,26 +0,0 @@ -$NetBSD: patch-src_af_gr_xp_gr__Caret.h,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/af/gr/xp/gr_Caret.h.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/af/gr/xp/gr_Caret.h -@@ -67,7 +67,8 @@ public: - void setRemoteColor(UT_RGBColor clrRemote); - - void resetBlinkTimeout(void); -- -+ void setPendingBlink(void); -+ bool doBlinkIfNeeded(void); - private: - GR_Caret(); // no impl - GR_Caret(const GR_Caret& rhs); // no impl. -@@ -121,6 +122,9 @@ private: - UT_RGBColor m_clrRemote; - std::string m_sID; - UT_sint32 m_iCaretNumber; -+ long m_iLastDrawTime; -+ UT_sint32 m_iRetry; -+ bool m_bPendingBlink; - }; - - class ABI_EXPORT GR_CaretDisabler diff --git a/editors/abiword/patches/patch-src_af_gr_xp_gr__Graphics.cpp b/editors/abiword/patches/patch-src_af_gr_xp_gr__Graphics.cpp deleted file mode 100644 index 6ee8fc744d4..00000000000 --- a/editors/abiword/patches/patch-src_af_gr_xp_gr__Graphics.cpp +++ /dev/null @@ -1,40 +0,0 @@ -$NetBSD: patch-src_af_gr_xp_gr__Graphics.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/af/gr/xp/gr_Graphics.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/af/gr/xp/gr_Graphics.cpp -@@ -185,6 +185,20 @@ void AllCarets::setBlink(bool bBlink) - } - } - -+bool AllCarets::doBlinkIfNeeded(void) -+{ -+ bool bBlinked = false; -+ if((*m_pLocalCaret)) -+ { -+ bBlinked = (*m_pLocalCaret)->doBlinkIfNeeded(); -+ for(UT_sint32 i =0; i< m_vecCarets->getItemCount();i++) -+ { -+ m_vecCarets->getNthItem(i)->forceDraw(); -+ } -+ } -+ return bBlinked; -+} -+ - void AllCarets::setWindowSize(UT_uint32 width, UT_uint32 height) - { - if((*m_pLocalCaret)) -@@ -195,6 +209,12 @@ void AllCarets::setWindowSize(UT_ - } - } - -+void AllCarets::setPendingBlink(void) -+{ -+ if((*m_pLocalCaret)) -+ (*m_pLocalCaret)->setPendingBlink(); -+} -+ - void AllCarets::setCoords(UT_sint32 x, UT_sint32 y, UT_uint32 h, - UT_sint32 x2, UT_sint32 y2, UT_uint32 h2, - bool bPointDirection, diff --git a/editors/abiword/patches/patch-src_af_gr_xp_gr__Graphics.h b/editors/abiword/patches/patch-src_af_gr_xp_gr__Graphics.h deleted file mode 100644 index a77cdda7b8d..00000000000 --- a/editors/abiword/patches/patch-src_af_gr_xp_gr__Graphics.h +++ /dev/null @@ -1,17 +0,0 @@ -$NetBSD: patch-src_af_gr_xp_gr__Graphics.h,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/af/gr/xp/gr_Graphics.h.orig 2015-04-02 03:09:13.000000000 +0000 -+++ src/af/gr/xp/gr_Graphics.h -@@ -364,7 +364,9 @@ class ABI_EXPORT AllCarets - const UT_RGBColor * pClr = NULL); - void setInsertMode (bool mode); - void forceDraw(void); -- -+ bool doBlinkIfNeeded(void); -+ void setPendingBlink(void); -+ - private: - GR_Graphics * m_pG; - GR_Caret ** m_pLocalCaret; diff --git a/editors/abiword/patches/patch-src_af_util_unix_ut__unixTimer.cpp b/editors/abiword/patches/patch-src_af_util_unix_ut__unixTimer.cpp deleted file mode 100644 index f7d1148bcf9..00000000000 --- a/editors/abiword/patches/patch-src_af_util_unix_ut__unixTimer.cpp +++ /dev/null @@ -1,22 +0,0 @@ -$NetBSD: patch-src_af_util_unix_ut__unixTimer.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/af/util/unix/ut_unixTimer.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/af/util/unix/ut_unixTimer.cpp -@@ -66,10 +66,11 @@ static int _Timer_Proc(void *p) - UT_ASSERT(pTimer); - - xxx_UT_DEBUGMSG(("ut_unixTimer.cpp: timer fired\n")); -- -- pTimer->fire(); -- -- return true; -+ if (pTimer) { -+ pTimer->fire(); -+ return TRUE; -+ } -+ return 0; - } - - UT_sint32 UT_UNIXTimer::set(UT_uint32 iMilliseconds) diff --git a/editors/abiword/patches/patch-src_af_util_xp_ut__png.cpp b/editors/abiword/patches/patch-src_af_util_xp_ut__png.cpp deleted file mode 100644 index 7d036c90b51..00000000000 --- a/editors/abiword/patches/patch-src_af_util_xp_ut__png.cpp +++ /dev/null @@ -1,34 +0,0 @@ -$NetBSD: patch-src_af_util_xp_ut__png.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13827, SVN revision 35369: Fix overflow read in PNG. - ---- src/af/util/xp/ut_png.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/af/util/xp/ut_png.cpp -@@ -28,6 +28,7 @@ - - #include "ut_assert.h" - #include "ut_bytebuf.h" -+#include "ut_debugmsg.h" - - struct _bb - { -@@ -40,6 +41,19 @@ static void _png_read(png_structp png_pt - struct _bb* p = static_cast<struct _bb*>(png_get_io_ptr(png_ptr)); - const UT_Byte* pBytes = p->pBB->getPointer(0); - -+ // make sure that we don't read outside of pBytes -+ if (p->iCurPos >= p->pBB->getLength() - length) { -+ UT_WARNINGMSG(("PNG: Reading past buffer bounds. cur = %u, buflen = %u, length = %lu\n", -+ p->iCurPos, p->pBB->getLength(), length)); -+ length = p->pBB->getLength() - p->iCurPos; -+ if (length == 0) { -+ UT_WARNINGMSG(("PNG: Truncating to ZERO length.\n")); -+ png_error(png_ptr, "Premature end of buffer"); -+ return; -+ } else { -+ UT_WARNINGMSG(("PNG: Truncating to %lu.\n", length)); -+ } -+ } - memcpy(data, pBytes + p->iCurPos, length); - p->iCurPos += length; - } diff --git a/editors/abiword/patches/patch-src_af_xap_gtk_xap__UnixFrameImpl.cpp b/editors/abiword/patches/patch-src_af_xap_gtk_xap__UnixFrameImpl.cpp deleted file mode 100644 index 2e550a538df..00000000000 --- a/editors/abiword/patches/patch-src_af_xap_gtk_xap__UnixFrameImpl.cpp +++ /dev/null @@ -1,62 +0,0 @@ -$NetBSD: patch-src_af_xap_gtk_xap__UnixFrameImpl.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13815, SVN revision 35394: Draw event should return TRUE. - -Abiword bug 13791, SVN revision 35480: Fix flicker and caret problems. - ---- src/af/xap/gtk/xap_UnixFrameImpl.cpp.orig 2014-12-14 14:56:47.000000000 +0000 -+++ src/af/xap/gtk/xap_UnixFrameImpl.cpp -@@ -1208,15 +1208,23 @@ gint XAP_UnixFrameImpl::_fe::delete_even - } - - #if GTK_CHECK_VERSION(3,0,0) --gint XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr) -+gboolean XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr) - #else --gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) -+gboolean XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent) - #endif - { - XAP_UnixFrameImpl * pUnixFrameImpl = static_cast<XAP_UnixFrameImpl *>(g_object_get_data(G_OBJECT(w), "user_data")); - FV_View * pView = static_cast<FV_View *>(pUnixFrameImpl->getFrame()->getCurrentView()); -+ double x, y, width, height; - #if GTK_CHECK_VERSION(3,0,0) -- GdkEventExpose *pExposeEvent = reinterpret_cast<GdkEventExpose *>(gtk_get_current_event()); -+ cairo_clip_extents (cr, &x, &y, &width, &height); -+ width -= x; -+ height -= y; -+#else -+ x = pExposeEvent->area.x; -+ y = pExposeEvent->area.y; -+ width = pExposeEvent->area.width; -+ height = pExposeEvent->area.height; - #endif - /* Jean: commenting out next lines since the zoom update code does draw only - * part of what needs to be updated. */ -@@ -1231,19 +1239,21 @@ gint XAP_UnixFrameImpl::_fe::expose(GtkW - if (pGr->getPaintCount () > 0) - return TRUE; - xxx_UT_DEBUGMSG(("Expose area: x %d y %d width %d height %d \n",pExposeEvent->area.x,pExposeEvent->area.y,pExposeEvent->area.width,pExposeEvent->area.height)); -- rClip.left = pGr->tlu(pExposeEvent->area.x); -- rClip.top = pGr->tlu(pExposeEvent->area.y); -- rClip.width = pGr->tlu(pExposeEvent->area.width)+1; -- rClip.height = pGr->tlu(pExposeEvent->area.height)+1; -+ rClip.left = pGr->tlu(x); -+ rClip.top = pGr->tlu(y); - #if GTK_CHECK_VERSION(3,0,0) -+ rClip.width = pGr->tlu(width); -+ rClip.height = pGr->tlu(height); - static_cast<GR_CairoGraphics *>(pGr)->setCairo(cr); - pView->draw(&rClip); - static_cast<GR_CairoGraphics *>(pGr)->setCairo(NULL); - #else -+ rClip.width = pGr->tlu(width)+1; -+ rClip.height = pGr->tlu(height)+1; - pView->draw(&rClip); - #endif - } -- return FALSE; -+ return TRUE; - } - - static bool bScrollWait = false; diff --git a/editors/abiword/patches/patch-src_af_xap_gtk_xap__UnixFrameImpl.h b/editors/abiword/patches/patch-src_af_xap_gtk_xap__UnixFrameImpl.h deleted file mode 100644 index e5eb34abeb1..00000000000 --- a/editors/abiword/patches/patch-src_af_xap_gtk_xap__UnixFrameImpl.h +++ /dev/null @@ -1,18 +0,0 @@ -$NetBSD: patch-src_af_xap_gtk_xap__UnixFrameImpl.h,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13815, SVN revision 35394: Draw event should return TRUE. - ---- src/af/xap/gtk/xap_UnixFrameImpl.h.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/af/xap/gtk/xap_UnixFrameImpl.h -@@ -152,9 +152,9 @@ protected: - static gint key_release_event(GtkWidget* w, GdkEventKey* e); - static gint delete_event(GtkWidget * w, GdkEvent * /*event*/, gpointer /*data*/); - #if GTK_CHECK_VERSION(3,0,0) -- static gint draw(GtkWidget * w, cairo_t * cr); -+ static gboolean draw(GtkWidget * w, cairo_t * cr); - #else -- static gint expose(GtkWidget * w, GdkEventExpose* pExposeEvent); -+ static gboolean expose(GtkWidget * w, GdkEventExpose* pExposeEvent); - #endif - static gint do_ZoomUpdate( gpointer /* xap_UnixFrame * */ p); - static void vScrollChanged(GtkAdjustment * w, gpointer /*data*/); diff --git a/editors/abiword/patches/patch-src_af_xap_xp_xap__Frame.cpp b/editors/abiword/patches/patch-src_af_xap_xp_xap__Frame.cpp deleted file mode 100644 index fa9262ef757..00000000000 --- a/editors/abiword/patches/patch-src_af_xap_xp_xap__Frame.cpp +++ /dev/null @@ -1,31 +0,0 @@ -$NetBSD: patch-src_af_xap_xp_xap__Frame.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/af/xap/xp/xap_Frame.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/af/xap/xp/xap_Frame.cpp -@@ -505,7 +505,7 @@ void /* static*/ XAP_FrameImpl::viewAuto - pFrameImpl->m_ViewAutoUpdaterID = 0; - DELETEP(pFrameImpl->m_ViewAutoUpdater); - pView->draw(); -- -+ pG->flush(); - return; - } - if(!pView->isLayoutFilling() && !pFrameImpl->m_pFrame->m_bFirstDraw) -@@ -514,6 +514,7 @@ void /* static*/ XAP_FrameImpl::viewAuto - pG->setCursor(GR_Graphics::GR_CURSOR_WAIT); - pFrameImpl->_setCursor(GR_Graphics::GR_CURSOR_WAIT); - pFrameImpl->m_pFrame->setStatusMessage ( static_cast<const gchar *>(msg.c_str()) ); -+ pG->flush(); - return; - } - GR_Graphics * pG = pView->getGraphics(); -@@ -534,6 +535,7 @@ void /* static*/ XAP_FrameImpl::viewAuto - pView->updateScreen(); - } - } -+ pG->flush(); - } - - UT_RGBColor XAP_Frame::getColorSelBackground () const diff --git a/editors/abiword/patches/patch-src_text_fmt_xp_fl__SectionLayout.cpp b/editors/abiword/patches/patch-src_text_fmt_xp_fl__SectionLayout.cpp deleted file mode 100644 index 7fca6b9ef9b..00000000000 --- a/editors/abiword/patches/patch-src_text_fmt_xp_fl__SectionLayout.cpp +++ /dev/null @@ -1,16 +0,0 @@ -$NetBSD: patch-src_text_fmt_xp_fl__SectionLayout.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/text/fmt/xp/fl_SectionLayout.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/text/fmt/xp/fl_SectionLayout.cpp -@@ -1921,6 +1921,9 @@ void fl_DocSectionLayout::updateLayout(b - checkAndRemovePages(); - addValidPages(); - } -+ xxx_UT_DEBUGMSG(("Doing fl_DocSectionLayout::updateLayout here %p view %p \n",this, m_pLayout->getView())); -+ m_pLayout->getView()->getGraphics()->allCarets()->setPendingBlink(); // place caret after entry -+ m_pLayout->getView()->getGraphics()->flush(); // schedule redraw for Wayland - } - - void fl_DocSectionLayout::setNeedsSectionBreak(bool bSet, fp_Page * pPage) diff --git a/editors/abiword/patches/patch-src_text_fmt_xp_fv__View.cpp b/editors/abiword/patches/patch-src_text_fmt_xp_fv__View.cpp deleted file mode 100644 index 37337ee13fc..00000000000 --- a/editors/abiword/patches/patch-src_text_fmt_xp_fv__View.cpp +++ /dev/null @@ -1,43 +0,0 @@ -$NetBSD: patch-src_text_fmt_xp_fv__View.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/text/fmt/xp/fv_View.cpp.orig 2016-01-23 21:00:21.000000000 +0000 -+++ src/text/fmt/xp/fv_View.cpp -@@ -3105,11 +3105,15 @@ bool FV_View::isSelectionEmpty(void) con - { - if(m_FrameEdit.isActive() && m_FrameEdit.isImageWrapper() ) - { -- return false; -+ if (m_pG) -+ m_pG->allCarets()->disable(true); -+ return false; - } - if(m_FrameEdit.isActive() && (m_FrameEdit. getFrameEditMode() >= FV_FrameEdit_RESIZE_INSERT)) - { -- return false; -+ if (m_pG) -+ m_pG->allCarets()->disable(true); -+ return false; - } - if (!m_Selection.isSelected()) - { -@@ -3124,6 +3128,8 @@ bool FV_View::isSelectionEmpty(void) con - { - return true; - } -+ if (m_pG) -+ m_pG->allCarets()->disable(true); - return false; - } - PT_DocPosition curPos = getPoint(); -@@ -3131,7 +3137,8 @@ bool FV_View::isSelectionEmpty(void) con - { - return true; - } -- -+ if (m_pG) -+ m_pG->allCarets()->disable(true); - return false; - } - diff --git a/editors/abiword/patches/patch-src_text_fmt_xp_fv__ViewDoubleBuffering.cpp b/editors/abiword/patches/patch-src_text_fmt_xp_fv__ViewDoubleBuffering.cpp deleted file mode 100644 index cfcc0812b3d..00000000000 --- a/editors/abiword/patches/patch-src_text_fmt_xp_fv__ViewDoubleBuffering.cpp +++ /dev/null @@ -1,15 +0,0 @@ -$NetBSD: patch-src_text_fmt_xp_fv__ViewDoubleBuffering.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/text/fmt/xp/fv_ViewDoubleBuffering.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/text/fmt/xp/fv_ViewDoubleBuffering.cpp -@@ -27,7 +27,7 @@ - #include "ut_misc.h" - #include "ut_debugmsg.h" - --//#define DEACTIVATE_FV_VIEW_DOUBLE_BUFFERING -+//#define DEACTIVATE_FV_VIEW_DOUBLE_BUFFERING 1 - - FV_ViewDoubleBuffering::FV_ViewDoubleBuffering(FV_View *pView, bool suspendDirectDrawing, bool callDrawOnlyAtTheEnd) - : m_pView(pView), diff --git a/editors/abiword/patches/patch-src_text_fmt_xp_fv__View__protected.cpp b/editors/abiword/patches/patch-src_text_fmt_xp_fv__View__protected.cpp deleted file mode 100644 index 3d814937a11..00000000000 --- a/editors/abiword/patches/patch-src_text_fmt_xp_fv__View__protected.cpp +++ /dev/null @@ -1,51 +0,0 @@ -$NetBSD: patch-src_text_fmt_xp_fv__View__protected.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35476: Fix flicker and caret problems. - ---- src/text/fmt/xp/fv_View_protected.cpp.orig 2016-10-21 00:39:16.000000000 +0000 -+++ src/text/fmt/xp/fv_View_protected.cpp -@@ -4478,7 +4478,6 @@ void FV_View::_draw(UT_sint32 x, UT_sint - "\t\twith [yScrollOffset %d][windowHeight %d][bDirtyRunsOnly %d]\n", - x,y,width,height,bClip, - m_yScrollOffset,getWindowHeight(),bDirtyRunsOnly)); -- - if(m_pViewDoubleBufferingObject != NULL && m_pViewDoubleBufferingObject->getCallDrawOnlyAtTheEnd()) - { - // record this call's arguments and return -@@ -4727,12 +4726,19 @@ void FV_View::_draw(UT_sint32 x, UT_sint - // advance to the next page - pPage = pPage -> getNext(); - } -- - if (bClip) - { - m_pG->setClipRect(NULL); - } -- -+ // -+ // Look if we have to blink the caret -+ // -+ xxx_UT_DEBUGMSG(("Doing _draw bDirtyRunsOnly %d \n",bDirtyRunsOnly)); -+ -+ if(m_pG->allCarets()->doBlinkIfNeeded()) -+ { -+ xxx_UT_DEBUGMSG(("Pending blink drawn has bDirtyRunsOnly %d \n",bDirtyRunsOnly)); -+ } - xxx_UT_DEBUGMSG(("End _draw\n")); - } - -@@ -4816,6 +4822,14 @@ void FV_View::_setPoint(PT_DocPosition p - m_countDisable++; - } - } -+ -+ if(m_pG) -+ { -+ xxx_UT_DEBUGMSG(("Schedule redraw in _setPoint \n")); -+ m_pG->allCarets()->setPendingBlink(); -+ m_pG->flush(); // scedule a redraw for Wayland -+ } -+ - } - - diff --git a/editors/abiword/patches/patch-src_text_ptbl_xp_pd__DocumentRDF.cpp b/editors/abiword/patches/patch-src_text_ptbl_xp_pd__DocumentRDF.cpp deleted file mode 100644 index cc0c5d7834f..00000000000 --- a/editors/abiword/patches/patch-src_text_ptbl_xp_pd__DocumentRDF.cpp +++ /dev/null @@ -1,17 +0,0 @@ -$NetBSD: patch-src_text_ptbl_xp_pd__DocumentRDF.cpp,v 1.3 2018/11/24 19:14:09 nia Exp $ - -fix using modern libical - ---- src/text/ptbl/xp/pd_DocumentRDF.cpp.orig 2015-04-02 03:09:20.000000000 +0000 -+++ src/text/ptbl/xp/pd_DocumentRDF.cpp -@@ -2269,8 +2269,8 @@ PD_RDFEvent::exportToFile( const std::st - icalcomponent_set_uid( c, m_uid.c_str() ); - icalcomponent_set_location( c, m_location.c_str() ); - icalcomponent_set_description( c, m_desc.c_str() ); -- icalcomponent_set_dtstart( c, icaltime_from_timet( m_dtstart, 0 ) ); -- icalcomponent_set_dtend( c, icaltime_from_timet( m_dtend, 0 ) ); -+ icalcomponent_set_dtstart( c, icaltime_from_timet_with_zone( m_dtstart, 0, 0 ) ); -+ icalcomponent_set_dtend( c, icaltime_from_timet_with_zone( m_dtend, 0, 0 ) ); - - char* data = icalcomponent_as_ical_string( c ); - std::ofstream oss( filename.c_str() ); diff --git a/editors/abiword/patches/patch-src_wp_ap_gtk_ap__UnixFrameImpl.cpp b/editors/abiword/patches/patch-src_wp_ap_gtk_ap__UnixFrameImpl.cpp deleted file mode 100644 index d1c2d3e0815..00000000000 --- a/editors/abiword/patches/patch-src_wp_ap_gtk_ap__UnixFrameImpl.cpp +++ /dev/null @@ -1,20 +0,0 @@ -$NetBSD: patch-src_wp_ap_gtk_ap__UnixFrameImpl.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13791, SVN revision 35482: Disable double buffering on GTK3. - ---- src/wp/ap/gtk/ap_UnixFrameImpl.cpp.orig 2016-06-25 22:26:31.000000000 +0000 -+++ src/wp/ap/gtk/ap_UnixFrameImpl.cpp -@@ -219,11 +219,12 @@ GtkWidget * AP_UnixFrameImpl::_createDoc - GDK_FOCUS_CHANGE_MASK | - GDK_LEAVE_NOTIFY_MASK | - GDK_SCROLL_MASK)); -- gtk_widget_set_double_buffered(GTK_WIDGET(m_dArea), FALSE); - #if GTK_CHECK_VERSION(3,0,0) - g_signal_connect(G_OBJECT(m_dArea), "draw", - G_CALLBACK(XAP_UnixFrameImpl::_fe::draw), NULL); - #else -+ // We disable double buffering on Gtk3 because it doesn't work. -+ gtk_widget_set_double_buffered(GTK_WIDGET(m_dArea), FALSE); - g_signal_connect(G_OBJECT(m_dArea), "expose_event", - G_CALLBACK(XAP_UnixFrameImpl::_fe::expose), NULL); - #endif diff --git a/editors/abiword/patches/patch-src_wp_impexp_xp_ie__exp__DocRangeListener.cpp b/editors/abiword/patches/patch-src_wp_impexp_xp_ie__exp__DocRangeListener.cpp deleted file mode 100644 index 68b777de638..00000000000 --- a/editors/abiword/patches/patch-src_wp_impexp_xp_ie__exp__DocRangeListener.cpp +++ /dev/null @@ -1,15 +0,0 @@ -$NetBSD: patch-src_wp_impexp_xp_ie__exp__DocRangeListener.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13834, SVN revision 35392: Crash fixes. - ---- src/wp/impexp/xp/ie_exp_DocRangeListener.cpp.orig 2013-04-07 13:53:03.000000000 +0000 -+++ src/wp/impexp/xp/ie_exp_DocRangeListener.cpp -@@ -166,7 +166,7 @@ void IE_Exp_DocRangeListener::freeAtts( - UT_sint32 i=0; - while(sAtts[i]) - { -- delete [] (sAtts[i]); -+ g_free(const_cast<char*>(sAtts[i])); - i++; - } - delete [] sAtts; diff --git a/editors/abiword/patches/patch-src_wp_impexp_xp_ie__imp__RTF.cpp b/editors/abiword/patches/patch-src_wp_impexp_xp_ie__imp__RTF.cpp deleted file mode 100644 index 5bc90284b54..00000000000 --- a/editors/abiword/patches/patch-src_wp_impexp_xp_ie__imp__RTF.cpp +++ /dev/null @@ -1,36 +0,0 @@ -$NetBSD: patch-src_wp_impexp_xp_ie__imp__RTF.cpp,v 1.1 2018/12/28 22:24:53 gutteridge Exp $ - -Abiword bug 13826, SVN revisions 35377 & 35378: Fix RTF out-of-bounds accesses. - ---- src/wp/impexp/xp/ie_imp_RTF.cpp.orig 2014-07-14 04:07:47.000000000 +0000 -+++ src/wp/impexp/xp/ie_imp_RTF.cpp -@@ -12068,7 +12068,13 @@ bool IE_Imp_RTF::HandleStyleDefinition(v - // must not mix static and dynamically allocated strings in the same - // array, otherwise there is no way we can g_free it !!! - //attribs[attribsCount++] = g_strdup(static_cast<const char *>(m_styleTable[istyle])); -- attribs[attribsCount++] = m_styleTable[istyle].c_str(); -+ if (istyle >= 0 && static_cast<UT_uint32>(istyle) < m_styleTable.size()) { -+ attribs[attribsCount++] = m_styleTable[istyle].c_str(); -+ } else { -+ UT_WARNINGMSG(("RTF: basedon by style index out of bounds: %d. max %lu.\n", -+ istyle, m_styleTable.size())); -+ attribs[attribsCount++] = NULL; -+ } - UT_return_val_if_fail( attribsCount < PT_MAX_ATTRIBUTES * 2,false ); - } - else -@@ -12086,7 +12092,13 @@ bool IE_Imp_RTF::HandleStyleDefinition(v - // must not mix static and dynamically allocated strings in the same - // array, otherwise there is no way we can g_free it !!! - // attribs[attribsCount++] = g_strdup(static_cast<const char *>(m_styleTable[istyle])); -- attribs[attribsCount++] = m_styleTable[istyle].c_str(); -+ if (istyle >= 0 && static_cast<UT_uint32>(istyle) < m_styleTable.size()) { -+ attribs[attribsCount++] = m_styleTable[istyle].c_str(); -+ } else { -+ UT_WARNINGMSG(("RTF: followed by style index out of bounds: %d. max %lu.\n", -+ istyle, m_styleTable.size())); -+ attribs[attribsCount++] = NULL; -+ } - UT_return_val_if_fail( attribsCount < PT_MAX_ATTRIBUTES * 2,false ); - } - else |