diff options
-rw-r--r-- | user/atril/APKBUILD | 26 | ||||
-rw-r--r-- | user/atril/fix-autogen.patch | 18 | ||||
-rw-r--r-- | user/atril/optional-synctex.patch | 526 |
3 files changed, 561 insertions, 9 deletions
diff --git a/user/atril/APKBUILD b/user/atril/APKBUILD index 35640633f..a66295273 100644 --- a/user/atril/APKBUILD +++ b/user/atril/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Sheila Aman <sheila@vulpine.house> # Maintainer: Sheila Aman <sheila@vulpine.house> pkgname=atril -pkgver=1.22.3 +pkgver=1.24.1 pkgrel=0 pkgdesc="Document viewer for the MATE desktop environment" url="https://mate-desktop.org" @@ -9,12 +9,17 @@ arch="all" options="!check" # testsuite requires X and py3-dogtail license="GPL-2.0+ AND Afmparse AND Info-ZIP AND libtiff AND LGPL-2.0+ AND MIT AND LGPL-2.1+" depends="" +_regendepends="autoconf autoconf-archive-dev automake gtk-doc itstool mate-common + mate-common-dev yelp-tools yelp-tools-dev" makedepends="caja-dev djvulibre-dev gobject-introspection-dev gtk+3.0-dev - intltool itstool libgxps-dev libsecret-dev libsm-dev libspectre-dev - libxml2-dev libxml2-utils poppler-dev python3 tiff-dev" + intltool libgxps-dev libsecret-dev libsm-dev libspectre-dev + libxml2-dev libxml2-utils poppler-dev python3 tiff-dev + wayland-protocols $_regendepends" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" -source="https://pub.mate-desktop.org/releases/1.22/atril-$pkgver.tar.xz - CVE-2019-11459.patch" +source="https://pub.mate-desktop.org/releases/${pkgver%.*}/atril-$pkgver.tar.xz + fix-autogen.patch + optional-synctex.patch + " # secfixes: # 1.22.1-r1: @@ -23,7 +28,8 @@ source="https://pub.mate-desktop.org/releases/1.22/atril-$pkgver.tar.xz # - CVE-2019-11459 build() { - ./configure \ + ./autogen.sh \ + --disable-maintainer-mode \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ @@ -33,7 +39,8 @@ build() { --enable-introspection \ --enable-pixbuf \ --enable-comics \ - --enable-xps + --enable-xps \ + --disable-synctex make } @@ -45,5 +52,6 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="f4a83702818e1fb32279c67f1727c01480d27fe756f3fc0ff9dcd42584ce74ce10ac7ee81c0149f3756b6eb08f2a011ede28706ab54ff16a51c544a1af3b103f atril-1.22.3.tar.xz -ba4ec4b0e10d87f44f189a16cfe2419906e3776edc9bc14f7da9356a8953683e3f7efc441691df131497b08b892d3b291aab416310f259ee6bc0706cc4f02880 CVE-2019-11459.patch" +sha512sums="94a55e7699bdfc9368e20986664bd411c12f50f466874ebf20210df3de6ddb499866b505e157c56b58a8065aad2c24284b96afa8c547a6cd259eef413096a91a atril-1.24.1.tar.xz +91d46a43267c5668c6831c81a1ee213564f833e64d8297c372b9ddc5037ae2d13594829a25b2a8086c46aa85068ad7a5024db4f5853ab009d5cbca9013fc9cc9 fix-autogen.patch +cb4493eca4e0bc1bd4a9bdd4540033aad3318023f6101f5548c14c7c7134ce6a4618849df44573af39af7d561ebca4b9b549668e81c50c7432a525db7d0f620b optional-synctex.patch" diff --git a/user/atril/fix-autogen.patch b/user/atril/fix-autogen.patch new file mode 100644 index 000000000..d36a58073 --- /dev/null +++ b/user/atril/fix-autogen.patch @@ -0,0 +1,18 @@ +diff -Nurd atril-1.24.1/autogen.sh atril-1.24.1.new/autogen.sh +--- atril-1.24.1/autogen.sh 2021-03-22 16:22:43.000000000 +0000 ++++ atril-1.24.1.new/autogen.sh 2021-07-21 12:33:41.678910859 +0000 +@@ -12,12 +12,12 @@ + exit 1 + } + +-which mate-autogen || { ++command -v mate-autogen || { + echo "You need to install mate-common" + exit 1 + } + +-which yelp-build || { ++command -v yelp-build || { + echo "You need to install yelp-tools" + exit 1 + } diff --git a/user/atril/optional-synctex.patch b/user/atril/optional-synctex.patch new file mode 100644 index 000000000..7b2d3a9c3 --- /dev/null +++ b/user/atril/optional-synctex.patch @@ -0,0 +1,526 @@ +From ed650322792514d69ae54eef4cb105cac1dcb4b8 Mon Sep 17 00:00:00 2001 +From: Oz Tiram <oz.tiram@gmail.com> +Date: Fri, 7 Feb 2020 21:57:10 +0100 +Subject: [PATCH 1/5] Make synctex optional + +Not everyone who reads PDF's is necessarily a LaTeX user. +These changes allow users to install atril without the huge bagage +of tex-live on systems where synctex isn't provided as a stand alone +library. +--- + configure.ac | 25 +++++++++++++++++-------- + libdocument/ev-document.c | 16 ++++++++++++---- + libview/ev-view.c | 9 ++++++++- + shell/ev-window.c | 5 +++++ + 4 files changed, 42 insertions(+), 13 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6fee0ff6e..e7a63feed 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -361,15 +361,25 @@ AC_SUBST([GIRTYPELIBDIR]) + AM_CONDITIONAL([ENABLE_INTROSPECTION],[test "$enable_introspection" = "yes"]) + + dnl ================== libsynctex =========================================== ++AC_ARG_ENABLE([synctex], ++ [AS_HELP_STRING([--disable-synctex], [Disable support for synctex])], ++ [], ++ [enable_synctex=yes]) + +-PKG_CHECK_MODULES(SYNCTEX, [synctex >= $SYNCTEX_REQUIRED], has_synctex=yes, has_synctex=no) + +-dnl not found? use internal code copy. +-if test "x$has_synctex" = "xno"; then +- AC_MSG_ERROR("SyncTeX support is disabled since library version $SYNCTEX_REQUIRED or newer not found") ++if test "$enable_synctex" = "yes"; then ++ AC_DEFINE([ENABLE_SYNCTEX],[1],[Define if synctex support is enabled]) ++ PKG_CHECK_MODULES(SYNCTEX, [synctex >= $SYNCTEX_REQUIRED], has_synctex=yes, has_synctex=no) ++ dnl not found? use internal code copy. ++ if test "x$has_synctex" = "xno"; then ++ AC_MSG_ERROR("SyncTeX support is disabled since library version $SYNCTEX_REQUIRED or newer not found") ++ fi ++ AC_SUBST(SYNCTEX_LIBS) ++ AC_SUBST(SYNCTEX_CFLAGS) + fi +-AC_SUBST(SYNCTEX_LIBS) +-AC_SUBST(SYNCTEX_CFLAGS) ++ ++AM_CONDITIONAL([ENABLE_SYNCTEX], [test "$enable_synctex" = "yes"]) ++ + + dnl ================== portability checks =========================================== + +@@ -776,6 +786,7 @@ Configure summary: + Tests...............: $enable_tests + + PDF Backend.........: $enable_pdf ++ Synctex enabled.....: $enable_synctex + PostScript Backend..: $enable_ps + TIFF Backend........: $enable_tiff + DJVU Backend........: $enable_djvu +@@ -784,6 +795,4 @@ Configure summary: + Comics Backend......: $enable_comics + XPS Backend.........: $enable_xps + ePub Backend........: $have_webkit +- +- SyncTeX.............: $has_synctex + " +diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c +index b713a6717..be082aebb 100644 +--- a/libdocument/ev-document.c ++++ b/libdocument/ev-document.c +@@ -25,7 +25,9 @@ + #include <string.h> + + #include "ev-document.h" ++#ifdef ENABLE_SYNCTEX + #include "synctex_parser.h" ++#endif + #include "ev-file-helpers.h" + + typedef struct _EvPageSize +@@ -53,8 +55,9 @@ struct _EvDocumentPrivate + gchar **page_labels; + EvPageSize *page_sizes; + EvDocumentInfo *info; +- ++#ifdef ENABLE_SYNCTEX + synctex_scanner_p synctex_scanner; ++#endif + }; + + static gint _ev_document_get_n_pages (EvDocument *document); +@@ -124,12 +127,12 @@ ev_document_finalize (GObject *object) + ev_document_info_free (document->priv->info); + document->priv->info = NULL; + } +- ++#ifdef ENABLE_SYNCTEX + if (document->priv->synctex_scanner) { + synctex_scanner_free (document->priv->synctex_scanner); + document->priv->synctex_scanner = NULL; + } +- ++#endif + G_OBJECT_CLASS (ev_document_parent_class)->finalize (object); + } + +@@ -137,8 +140,9 @@ static void + ev_document_init (EvDocument *document) + { + document->priv = ev_document_get_instance_private (document); ++#ifdef ENABLE_SYNCTEX + document->synctex_version = SYNCTEX_VERSION_STRING; +- ++#endif + /* Assume all pages are the same size until proven otherwise */ + document->priv->uniform = TRUE; + /* Assume that the document is not a web document*/ +@@ -336,6 +340,7 @@ ev_document_load (EvDocument *document, + } + + priv->info = _ev_document_get_info (document); ++#ifdef ENABLE_SYNCTEX + if (_ev_document_support_synctex (document)) { + gchar *filename; + +@@ -346,6 +351,7 @@ ev_document_load (EvDocument *document, + g_free (filename); + } + } ++#endif + } + + return retval; +@@ -388,6 +394,7 @@ _ev_document_support_synctex (EvDocument *document) + return klass->support_synctex ? klass->support_synctex (document) : FALSE; + } + ++#ifdef ENABLE_SYNCTEX + gboolean + ev_document_has_synctex (EvDocument *document) + { +@@ -492,6 +499,7 @@ ev_document_synctex_forward_search (EvDocument *document, + + return result; + } ++#endif /* ENABLE_SYNCTEX */ + + static gint + _ev_document_get_n_pages (EvDocument *document) +diff --git a/libview/ev-view.c b/libview/ev-view.c +index a195ba21f..e98582d34 100644 +--- a/libview/ev-view.c ++++ b/libview/ev-view.c +@@ -3210,6 +3210,7 @@ ev_view_remove_annotation (EvView *view, + g_object_unref (annot); + } + ++#ifdef ENABLE_SYNCTEX + static gboolean + ev_view_synctex_backward_search (EvView *view, + gdouble x, +@@ -3235,6 +3236,7 @@ ev_view_synctex_backward_search (EvView *view, + + return FALSE; + } ++#endif + + /* Caret navigation */ + #define CURSOR_ON_MULTIPLIER 2 +@@ -4078,8 +4080,10 @@ ev_view_draw (GtkWidget *widget, + show_annotation_windows (view, i); + if (page_ready && view->focused_element) + draw_focus (view, cr, i, &clip_rect); ++#ifdef ENABLE_SYNCTEX + if (page_ready && view->synctex_result) + highlight_forward_search_results (view, cr, i); ++#endif + } + + if (GTK_WIDGET_CLASS (ev_view_parent_class)->draw) +@@ -4472,9 +4476,10 @@ ev_view_button_press_event (GtkWidget *widget, + EvFormField *field; + EvMapping *link; + gint page; +- ++#ifdef ENABLE_SYNCTEX + if (event->state & GDK_CONTROL_MASK) + return ev_view_synctex_backward_search (view, event->x , event->y); ++#endif + + if (EV_IS_SELECTION (view->document) && view->selection_info.selections) { + if (event->type == GDK_3BUTTON_PRESS) { +@@ -7522,6 +7527,7 @@ ev_view_find_cancel (EvView *view) + view->find_pages = NULL; + } + ++#ifdef ENABLE_SYNCTEX + /*** Synctex ***/ + void + ev_view_highlight_forward_search (EvView *view, +@@ -7549,6 +7555,7 @@ ev_view_highlight_forward_search (EvView *view, + ensure_rectangle_is_visible (view, &view_rect); + gtk_widget_queue_draw (GTK_WIDGET (view)); + } ++#endif /* ENABLE_SYNCTEX */ + + /*** Selections ***/ + static gboolean +diff --git a/shell/ev-window.c b/shell/ev-window.c +index e2dfbf727..bffc9a7f9 100644 +--- a/shell/ev-window.c ++++ b/shell/ev-window.c +@@ -7736,6 +7736,8 @@ ev_window_emit_doc_loaded (EvWindow *window) + ev_atril_window_emit_document_loaded (window->priv->skeleton, window->priv->uri); + } + ++ ++#ifdef ENABLE_SYNCTEX + static gboolean + handle_sync_view_cb (EvAtrilWindow *object, + GDBusMethodInvocation *invocation, +@@ -7756,6 +7758,7 @@ handle_sync_view_cb (EvAtrilWindow *object, + + return TRUE; + } ++#endif + #endif /* ENABLE_DBUS */ + + static gboolean +@@ -7816,9 +7819,11 @@ ev_window_init (EvWindow *ev_window) + ev_window->priv->dbus_object_path, + &error)) { + ev_window->priv->skeleton = skeleton; ++#ifdef ENABLE_SYNCTEX + g_signal_connect (skeleton, "handle-sync-view", + G_CALLBACK (handle_sync_view_cb), + ev_window); ++#endif + } else { + g_printerr ("Failed to register bus object %s: %s\n", + ev_window->priv->dbus_object_path, error->message); + +From c141d2c6ae0b4ce5824817f9aa2f98d5edbf7756 Mon Sep 17 00:00:00 2001 +From: Oz N Tiram <oz.tiram@gmail.com> +Date: Thu, 11 Jun 2020 09:15:28 +0200 +Subject: [PATCH 2/5] Fix -Wunused-function warnings caused by + --enable-synctex=no + +--- + libdocument/ev-document.c | 5 ++++- + libview/ev-view-private.h | 3 ++- + libview/ev-view.c | 10 ++++++++++ + 3 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c +index be082aebb..f7c878956 100644 +--- a/libdocument/ev-document.c ++++ b/libdocument/ev-document.c +@@ -68,7 +68,9 @@ static void _ev_document_get_page_size (EvDocument *document, + static gchar *_ev_document_get_page_label (EvDocument *document, + EvPage *page); + static EvDocumentInfo *_ev_document_get_info (EvDocument *document); ++#ifdef ENABLE_SYNCTEX + static gboolean _ev_document_support_synctex (EvDocument *document); ++#endif + + static GMutex ev_doc_mutex; + static GMutex ev_fc_mutex; +@@ -386,6 +388,8 @@ ev_document_get_page (EvDocument *document, + return klass->get_page (document, index); + } + ++ ++#ifdef ENABLE_SYNCTEX + static gboolean + _ev_document_support_synctex (EvDocument *document) + { +@@ -394,7 +398,6 @@ _ev_document_support_synctex (EvDocument *document) + return klass->support_synctex ? klass->support_synctex (document) : FALSE; + } + +-#ifdef ENABLE_SYNCTEX + gboolean + ev_document_has_synctex (EvDocument *document) + { +diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h +index f10593953..4f6179e4a 100644 +--- a/libview/ev-view-private.h ++++ b/libview/ev-view-private.h +@@ -125,8 +125,9 @@ struct _EvView { + GList **find_pages; + gint find_result; + gboolean jump_to_find_result; ++#ifdef ENABLE_SYNCTEX + gboolean highlight_find_results; +- ++#endif + EvDocumentModel *model; + EvPixbufCache *pixbuf_cache; + gsize pixbuf_cache_size; +diff --git a/libview/ev-view.c b/libview/ev-view.c +index e98582d34..7c9281cef 100644 +--- a/libview/ev-view.c ++++ b/libview/ev-view.c +@@ -177,12 +177,14 @@ static void ev_view_remove_all (EvView + static AtkObject *ev_view_get_accessible (GtkWidget *widget); + + /*** Drawing ***/ ++#if ENABLE_SYNCTEX + static void highlight_find_results (EvView *view, + cairo_t *cr, + int page); + static void highlight_forward_search_results (EvView *view, + cairo_t *cr, + int page); ++#endif + static void draw_one_page (EvView *view, + gint page, + cairo_t *cr, +@@ -4074,8 +4076,10 @@ ev_view_draw (GtkWidget *widget, + + if (page_ready && should_draw_caret_cursor (view, i)) + draw_caret_cursor (view, cr); ++#ifdef ENABLE_SYNCTEX + if (page_ready && view->find_pages && view->highlight_find_results) + highlight_find_results (view, cr, i); ++#endif + if (page_ready && EV_IS_DOCUMENT_ANNOTATIONS (view->document)) + show_annotation_windows (view, i); + if (page_ready && view->focused_element) +@@ -5654,6 +5658,7 @@ draw_rubberband (EvView *view, + } + + ++#ifdef ENABLE_SYNCTEX + static void + highlight_find_results (EvView *view, cairo_t *cr, int page) + { +@@ -5698,6 +5703,7 @@ highlight_forward_search_results (EvView *view, cairo_t *cr, int page) + cairo_stroke (cr); + cairo_restore (cr); + } ++#endif + + static void + draw_surface (cairo_t *cr, +@@ -6497,7 +6503,9 @@ ev_view_init (EvView *view) + view->page_layout = EV_PAGE_LAYOUT_SINGLE; + view->pending_scroll = SCROLL_TO_KEEP_POSITION; + view->jump_to_find_result = TRUE; ++#ifdef ENABLE_SYNCTEX + view->highlight_find_results = FALSE; ++#endif + view->caret_enabled = FALSE; + view->cursor_page = 0; + view->zoom_center_x = -1; +@@ -7517,7 +7525,9 @@ ev_view_find_search_changed (EvView *view) + void + ev_view_find_set_highlight_search (EvView *view, gboolean value) + { ++#ifdef ENABLE_SYNCTEX + view->highlight_find_results = value; ++#endif + gtk_widget_queue_draw (GTK_WIDGET (view)); + } + + +From f0054e7011c5cf6ac814ce1c6b42ce1713b25dba Mon Sep 17 00:00:00 2001 +From: Oz N Tiram <oz.tiram@gmail.com> +Date: Thu, 11 Jun 2020 10:21:00 +0200 +Subject: [PATCH 3/5] Improved detection of --enable/disable synctex option + +--- + configure.ac | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index e7a63feed..ee33f27d9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -362,9 +362,12 @@ AM_CONDITIONAL([ENABLE_INTROSPECTION],[test "$enable_introspection" = "yes"]) + + dnl ================== libsynctex =========================================== + AC_ARG_ENABLE([synctex], +- [AS_HELP_STRING([--disable-synctex], [Disable support for synctex])], +- [], +- [enable_synctex=yes]) ++ [--enable-synctex enable support for synctex)], ++ [case "${enableval}" in ++ yes) synctex=true ;; ++ no) synctex=false;; ++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-synctex]) ;; ++ esac],[enable_synctex=yes]) + + + if test "$enable_synctex" = "yes"; then + +From 37d80d4c862cbd03525fe4393f09b92d1dff8f56 Mon Sep 17 00:00:00 2001 +From: Oz N Tiram <oz.tiram@gmail.com> +Date: Thu, 11 Jun 2020 10:23:15 +0200 +Subject: [PATCH 4/5] Use ENABLE_SYNCTEX in libdocument/Makefile.am + +--- + libdocument/Makefile.am | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/libdocument/Makefile.am b/libdocument/Makefile.am +index f527f0a4a..d1db419c0 100644 +--- a/libdocument/Makefile.am ++++ b/libdocument/Makefile.am +@@ -102,11 +102,14 @@ libatrildocument_la_CPPFLAGS = \ + + libatrildocument_la_CFLAGS = \ + $(LIBDOCUMENT_CFLAGS) \ +- $(SYNCTEX_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + $(AM_CFLAGS) + ++if ENABLE_SYNCTEX ++libatrildocument_la_CFLAGS += $(SYNCTEX_CFLAGS) ++endif ++ + libatrildocument_la_LDFLAGS = \ + -version-info $(EV_DOCUMENT_LT_VERSION_INFO) \ + -no-undefined \ +@@ -116,9 +119,11 @@ libatrildocument_la_LDFLAGS = \ + libatrildocument_la_LIBADD = \ + $(LIBDOCUMENT_LIBS) \ + $(GMODULE_LIBS) \ +- $(SYNCTEX_LIBS) \ + $(ZLIB_LIBS) + ++if ENABLE_SYNCTEX ++libatrildocument_la_LIBADD += $(SYNCTEX_LIBS) ++endif + + BUILT_SOURCES = \ + ev-document-type-builtins.c \ + +From 87c8ee575d3ec50a278c5e428d066341ffd3295d Mon Sep 17 00:00:00 2001 +From: Oz N Tiram <oz.tiram@gmail.com> +Date: Sun, 14 Jun 2020 17:09:56 +0200 +Subject: [PATCH 5/5] Re-enable highlight_find_results + +--- + libview/ev-view-private.h | 2 -- + libview/ev-view.c | 9 +++------ + 2 files changed, 3 insertions(+), 8 deletions(-) + +diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h +index 4f6179e4a..e95157234 100644 +--- a/libview/ev-view-private.h ++++ b/libview/ev-view-private.h +@@ -125,9 +125,7 @@ struct _EvView { + GList **find_pages; + gint find_result; + gboolean jump_to_find_result; +-#ifdef ENABLE_SYNCTEX + gboolean highlight_find_results; +-#endif + EvDocumentModel *model; + EvPixbufCache *pixbuf_cache; + gsize pixbuf_cache_size; +diff --git a/libview/ev-view.c b/libview/ev-view.c +index 7c9281cef..29b06fbef 100644 +--- a/libview/ev-view.c ++++ b/libview/ev-view.c +@@ -177,10 +177,10 @@ static void ev_view_remove_all (EvView + static AtkObject *ev_view_get_accessible (GtkWidget *widget); + + /*** Drawing ***/ +-#if ENABLE_SYNCTEX + static void highlight_find_results (EvView *view, + cairo_t *cr, + int page); ++#if ENABLE_SYNCTEX + static void highlight_forward_search_results (EvView *view, + cairo_t *cr, + int page); +@@ -4076,10 +4076,8 @@ ev_view_draw (GtkWidget *widget, + + if (page_ready && should_draw_caret_cursor (view, i)) + draw_caret_cursor (view, cr); +-#ifdef ENABLE_SYNCTEX + if (page_ready && view->find_pages && view->highlight_find_results) + highlight_find_results (view, cr, i); +-#endif + if (page_ready && EV_IS_DOCUMENT_ANNOTATIONS (view->document)) + show_annotation_windows (view, i); + if (page_ready && view->focused_element) +@@ -5627,6 +5625,7 @@ ev_view_style_updated (GtkWidget *widget) + + /*** Drawing ***/ + ++ + static void + draw_rubberband (EvView *view, + cairo_t *cr, +@@ -5658,7 +5657,6 @@ draw_rubberband (EvView *view, + } + + +-#ifdef ENABLE_SYNCTEX + static void + highlight_find_results (EvView *view, cairo_t *cr, int page) + { +@@ -5683,6 +5681,7 @@ highlight_find_results (EvView *view, cairo_t *cr, int page) + } + } + ++#ifdef ENABLE_SYNCTEX + static void + highlight_forward_search_results (EvView *view, cairo_t *cr, int page) + { +@@ -7525,9 +7524,7 @@ ev_view_find_search_changed (EvView *view) + void + ev_view_find_set_highlight_search (EvView *view, gboolean value) + { +-#ifdef ENABLE_SYNCTEX + view->highlight_find_results = value; +-#endif + gtk_widget_queue_draw (GTK_WIDGET (view)); + } + |