office/abiword: fix screen flicker with gtk+3 >= 3.22.x

Thanks to pomfland for the report and patch link.

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Robby Workman 2018-02-19 01:06:29 -06:00 committed by Willy Sudiarto Raharjo
parent 7142f96c14
commit 2ad6c67dd6
2 changed files with 53 additions and 1 deletions

View file

@ -30,7 +30,7 @@ PRGNAM=abiword
VERSION=${VERSION:-3.0.2}
DOCSVER=$VERSION # version of abiword-docs
DOCTAR=3.0.1 # sigh, the tarball contains abiword-docs-3.0.1 still
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@ -77,6 +77,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# https://bugs.archlinux.org/task/46659
patch -p1 < $CWD/bug13815.patch
CPPFLAGS="-I$TMP/$PRGNAM-$VERSION" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS -std=c++11" \

View file

@ -0,0 +1,49 @@
commit 2ee38d1881aeea27bb49acc450631d813d1f28ba
Author: Hubert Figuière <hub@figuiere.net>
Date: Wed Dec 7 09:44:01 2016 -0500
Bug 13815 - draw event should return TRUE
This fix the black drawing regression witj Gtk3.22
diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.cpp b/src/af/xap/gtk/xap_UnixFrameImpl.cpp
index 780000e..10f8e00 100644
--- a/src/af/xap/gtk/xap_UnixFrameImpl.cpp
+++ b/src/af/xap/gtk/xap_UnixFrameImpl.cpp
@@ -1208,9 +1208,9 @@ gint XAP_UnixFrameImpl::_fe::delete_event(GtkWidget * w, GdkEvent * /*event*/, g
}
#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"));
@@ -1243,7 +1243,7 @@ gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent)
pView->draw(&rClip);
#endif
}
- return FALSE;
+ return TRUE;
}
static bool bScrollWait = false;
diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.h b/src/af/xap/gtk/xap_UnixFrameImpl.h
index 30ee5d8..a0ff57f 100644
--- a/src/af/xap/gtk/xap_UnixFrameImpl.h
+++ b/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*/);