summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/vim/0001-Fix-widget-sizing-on-current-Gtk-3.22-branch.patch39
-rw-r--r--libre/vim/0002-Further-fix-widget-sizing.patch29
-rw-r--r--libre/vim/PKGBUILD17
3 files changed, 81 insertions, 4 deletions
diff --git a/libre/vim/0001-Fix-widget-sizing-on-current-Gtk-3.22-branch.patch b/libre/vim/0001-Fix-widget-sizing-on-current-Gtk-3.22-branch.patch
new file mode 100644
index 000000000..ea5df7ac3
--- /dev/null
+++ b/libre/vim/0001-Fix-widget-sizing-on-current-Gtk-3.22-branch.patch
@@ -0,0 +1,39 @@
+From 0060136ccbe78ff791e5bd732510cff12094bec9 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Sun, 23 Oct 2016 21:12:15 +0200
+Subject: [PATCH 1/2] Fix widget sizing on current Gtk+ 3.22 branch
+
+Gtk recently started emitting configure events when repositioning child
+windows[1]. Events for the form's child windows bubble up the widget
+hierarchy, get caught by our configure event handler, and treated as if
+they were reporting the size of the form window. As a result, the shell
+was sized using far too small dimensions[2][3]. This change will be part
+of Gtk+ 3.22.2.
+
+Solve this by checking whether the configure event we get is really for
+the form widget.
+
+[1]: https://git.gnome.org/browse/gtk+/commit/?h=gtk-3-22&id=12579fe71b3b8f79eb9c1b80e429443bcc437dd0
+[2]: https://bugs.archlinux.org/task/51509
+[3]: https://bugzilla.gnome.org/show_bug.cgi?id=773387
+---
+ src/gui_gtk_x11.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
+index 388464215fadc3b5..bf3c99ad9a043ad9 100644
+--- a/src/gui_gtk_x11.c
++++ b/src/gui_gtk_x11.c
+@@ -4429,6 +4429,9 @@ form_configure_event(GtkWidget *widget UNUSED,
+ {
+ int usable_height = event->height;
+
++ if (event->window != gtk_widget_get_window (gui.formwin))
++ return TRUE;
++
+ /* When in a GtkPlug, we can't guarantee valid heights (as a round
+ * no. of char-heights), so we have to manually sanitise them.
+ * Widths seem to sort themselves out, don't ask me why.
+--
+2.10.1
+
diff --git a/libre/vim/0002-Further-fix-widget-sizing.patch b/libre/vim/0002-Further-fix-widget-sizing.patch
new file mode 100644
index 000000000..31c67a52a
--- /dev/null
+++ b/libre/vim/0002-Further-fix-widget-sizing.patch
@@ -0,0 +1,29 @@
+From ba1eefe7a2f52e1d8d16b51f12c6aba57148fb19 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Mon, 24 Oct 2016 19:26:36 +0200
+Subject: [PATCH 2/2] Further fix widget sizing
+
+Follow-up by ofourdan in order to fix resizing on maximization. This
+makes the drawing area ignore configure events that weren't explicitly
+sent (such as from GtkForm).
+---
+ src/gui_gtk_x11.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
+index bf3c99ad9a043ad9..71dc08ff3dc99c19 100644
+--- a/src/gui_gtk_x11.c
++++ b/src/gui_gtk_x11.c
+@@ -3099,6 +3099,9 @@ drawarea_configure_event_cb(GtkWidget *widget,
+ if (event->width == cur_width && event->height == cur_height)
+ return TRUE;
+
++ if (event->send_event == FALSE)
++ return TRUE;
++
+ cur_width = event->width;
+ cur_height = event->height;
+
+--
+2.10.1
+
diff --git a/libre/vim/PKGBUILD b/libre/vim/PKGBUILD
index 0027643f5..98901a06b 100644
--- a/libre/vim/PKGBUILD
+++ b/libre/vim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 276977 2016-09-26 17:10:48Z anatolik $
+# $Id: PKGBUILD 279209 2016-10-24 17:49:35Z heftig $
# Maintainer (Arch): Anatol Pomozov <anatol.pomozov@gmail.com>
# Contributor (Arch): Thomas Dziedzic <gostrc@gmail.com>
# Contributor (Arch): Jan "heftig" Steffens <jan.steffens@gmail.com>
@@ -10,23 +10,32 @@
pkgbase=vim
pkgname=(vim gvim vim-runtime)
-pkgver=8.0.0013
+pkgver=8.0.0046
_versiondir=80
-pkgrel=1.parabola1
+pkgrel=2.parabola1
arch=(i686 x86_64 armv7h)
license=('custom:vim')
url='http://www.vim.org'
makedepends=(gpm python2 python ruby libxt gtk3 lua gawk tcl)
source=(vim-$pkgver.tar.gz::http://github.com/vim/vim/archive/v$pkgver.tar.gz
+ 0001-Fix-widget-sizing-on-current-Gtk-3.22-branch.patch
+ 0002-Further-fix-widget-sizing.patch
vimrc
parabola.vim)
-sha1sums=('605be1eddc4501aea7c83b72a63b9ade6da5d43b'
+sha1sums=('28b81536dfa01abd86f084dd6c02f5a2c47b7dec'
+ 'ca4a3bdf8b512336bff4af3ae93d95a8580e0eaf'
+ '04b86163bb379a7d42058d932aed3075ed49d2a9'
'1030d4be309802375832b8b2313c69e8fe9724b9'
'a72ca0f8d941ff221598091338d9c1bf75a3494b')
prepare() {
cd vim-$pkgver/src
+ # https://github.com/vim/vim/pull/1193
+ # drop these if the problematic commits on gtk3 get reverted...
+ patch -Np2 -i "$srcdir"/0001-Fix-widget-sizing-on-current-Gtk-3.22-branch.patch
+ patch -Np2 -i "$srcdir"/0002-Further-fix-widget-sizing.patch
+
# define the place for the global (g)vimrc file (set to /etc/vimrc)
sed -i 's|^.*\(#define SYS_.*VIMRC_FILE.*"\) .*$|\1|' feature.h
sed -i 's|^.*\(#define VIMRC_FILE.*"\) .*$|\1|' feature.h