diff options
-rw-r--r-- | libre/vim/0001-Fix-widget-sizing-on-current-Gtk-3.22-branch.patch | 39 | ||||
-rw-r--r-- | libre/vim/0002-Further-fix-widget-sizing.patch | 29 | ||||
-rw-r--r-- | libre/vim/PKGBUILD | 17 |
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 |