diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-04-29 04:05:57 +0000 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-04-29 04:05:57 +0000 |
commit | 88f9886de50562f083fa45359821567b0a880ea0 (patch) | |
tree | 9d6e6861bee113342e27578c9024b17a3d4ceb5f /extra/vte | |
parent | 84fbb975eaab5e85082b96147a85031f1912646e (diff) |
Tue Apr 29 04:01:38 UTC 2014
Diffstat (limited to 'extra/vte')
-rw-r--r-- | extra/vte/PKGBUILD | 21 | ||||
-rw-r--r-- | extra/vte/make_alt_work.patch | 63 | ||||
-rw-r--r-- | extra/vte/scroll_region.patch | 67 |
3 files changed, 126 insertions, 25 deletions
diff --git a/extra/vte/PKGBUILD b/extra/vte/PKGBUILD index 95324bdf3..825f38a1b 100644 --- a/extra/vte/PKGBUILD +++ b/extra/vte/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 198479 2013-10-30 15:06:54Z allan $ +# $Id: PKGBUILD 211847 2014-04-28 08:17:57Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=vte pkgver=0.28.2 -pkgrel=3 +pkgrel=4 pkgdesc="Virtual Terminal Emulator widget for use with GTK2" arch=('i686' 'x86_64') license=('LGPL') @@ -12,17 +12,22 @@ depends=('gtk2' 'vte-common') makedepends=('pygtk' 'intltool' 'gobject-introspection' 'pygobject2-devel') url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/GNOME/sources/vte/0.28/vte-$pkgver.tar.xz - make_alt_work.patch) + make_alt_work.patch + scroll_region.patch) sha256sums=('86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae' - '978c989fb63884289068bcee05a92614a3a2be9e5d9386ab789dfb87163b92c8') + '2cd58ffffd42a9d59e05369c2efa1e70b7d32bfb5c8cdbd67b3b95ae3c3e6d61' + '9a99c486b1c0377a4b8c6fae25067c68913bded2988fafea2c86f5adf6a49c81') +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i ../make_alt_work.patch + patch -Np1 -i ../scroll_region.patch +} build() { - cd "$srcdir/$pkgname-$pkgver" + cd $pkgname-$pkgver #warning: type-punning to incomplete type might break strict-aliasing rules export CFLAGS="$CFLAGS -fno-strict-aliasing" - patch -Np1 -R -i "$srcdir/make_alt_work.patch" - PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \ --libexecdir=/usr/lib/vte \ --localstatedir=/var --disable-static \ @@ -31,7 +36,7 @@ build() { } package(){ - cd "$srcdir/$pkgname-$pkgver" + cd $pkgname-$pkgver make DESTDIR="$pkgdir" install rm "$pkgdir/usr/lib/vte/gnome-pty-helper" diff --git a/extra/vte/make_alt_work.patch b/extra/vte/make_alt_work.patch index 8e6e3fcad..65c3ddf1f 100644 --- a/extra/vte/make_alt_work.patch +++ b/extra/vte/make_alt_work.patch @@ -1,21 +1,50 @@ -From b73782a28894e25ed146271f9d6c6775a6836199 Mon Sep 17 00:00:00 2001 -From: Behdad Esfahbod <behdad@behdad.org> -Date: Fri, 04 Jun 2010 18:36:45 +0000 -Subject: Bug 601926 - Don't hardcode meta to alt +From a9d6a34708f846952f423d078397352858f7b1a4 Mon Sep 17 00:00:00 2001 +From: Christian Persch <chpe@gnome.org> +Date: Sat, 12 May 2012 18:48:05 +0200 +Subject: [PATCH] keymap: Treat ALT as META +https://bugzilla.gnome.org/show_bug.cgi?id=663779 --- -diff --git a/src/keymap.h b/src/keymap.h -index 3a4cefe..243e22e 100644 ---- a/src/keymap.h -+++ b/src/keymap.h -@@ -27,7 +27,7 @@ - - G_BEGIN_DECLS + src/vte.c | 23 ++++++++++++++--------- + 1 files changed, 14 insertions(+), 9 deletions(-) + +diff --git a/src/vte.c b/src/vte.c +index dd27e9a..0657921 100644 +--- a/src/vte.c ++++ b/src/vte.c +@@ -5170,19 +5170,24 @@ static void + vte_terminal_read_modifiers (VteTerminal *terminal, + GdkEvent *event) + { ++ GdkKeymap *keymap; + GdkModifierType modifiers; --#define VTE_META_MASK GDK_MOD1_MASK -+#define VTE_META_MASK GDK_META_MASK - #define VTE_NUMLOCK_MASK GDK_MOD2_MASK + /* Read the modifiers. */ +- if (gdk_event_get_state((GdkEvent*)event, &modifiers)) { +- GdkKeymap *keymap; +-#if GTK_CHECK_VERSION (2, 90, 8) +- keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window)); +-#else +- keymap = gdk_keymap_get_for_display(gdk_drawable_get_display(((GdkEventAny*)event)->window)); ++ if (!gdk_event_get_state((GdkEvent*)event, &modifiers)) ++ return; ++ ++ keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window)); ++ ++ gdk_keymap_add_virtual_modifiers (keymap, &modifiers); ++ ++#if 1 ++ /* HACK! Treat ALT as META; see bug #663779. */ ++ if (modifiers & GDK_MOD1_MASK) ++ modifiers |= VTE_META_MASK; + #endif +- gdk_keymap_add_virtual_modifiers (keymap, &modifiers); +- terminal->pvt->modifiers = modifiers; +- } ++ ++ terminal->pvt->modifiers = modifiers; + } - /* Map the specified keyval/modifier setup, dependent on the mode, to either --- -cgit v0.9.2 + /* Read and handle a keypress event. */ +-- +1.7.5.1.217.g4e3aa.dirty
\ No newline at end of file diff --git a/extra/vte/scroll_region.patch b/extra/vte/scroll_region.patch new file mode 100644 index 000000000..9e3e83b12 --- /dev/null +++ b/extra/vte/scroll_region.patch @@ -0,0 +1,67 @@ +Index: vte-0.26.0/src/vte.c +=================================================================== +--- vte-0.26.0.orig/src/vte.c 2010-11-30 23:04:53.000000000 -0800 ++++ vte-0.26.0/src/vte.c 2010-12-07 20:05:07.865548000 -0800 +@@ -3862,6 +3862,7 @@ vte_terminal_process_incoming(VteTermina + long wcount, start, delta; + gboolean leftovers, modified, bottom, again; + gboolean invalidated_text; ++ gboolean in_scroll_region; + GArray *unichars; + struct _vte_incoming_chunk *chunk, *next_chunk, *achunk = NULL; + +@@ -3881,6 +3882,10 @@ vte_terminal_process_incoming(VteTermina + cursor = screen->cursor_current; + cursor_visible = terminal->pvt->cursor_visible; + ++ in_scroll_region = screen->scrolling_restricted ++ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start)) ++ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end)); ++ + /* We should only be called when there's data to process. */ + g_assert(terminal->pvt->incoming || + (terminal->pvt->pending->len > 0)); +@@ -3979,6 +3984,8 @@ skip_chunk: + * points to the first character which isn't part of this + * sequence. */ + if ((match != NULL) && (match[0] != '\0')) { ++ gboolean new_in_scroll_region; ++ + /* Call the right sequence handler for the requested + * behavior. */ + _vte_terminal_handle_sequence(terminal, +@@ -3989,12 +3996,20 @@ skip_chunk: + start = (next - wbuf); + modified = TRUE; + +- /* if we have moved during the sequence handler, restart the bbox */ ++ new_in_scroll_region = screen->scrolling_restricted ++ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start)) ++ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end)); ++ ++ delta = screen->scroll_delta; /* delta may have changed from sequence. */ ++ ++ /* if we have moved greatly during the sequence handler, or moved into a scroll_region ++ * from outside it, restart the bbox */ + if (invalidated_text && +- (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK || +- screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK || +- screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK || +- screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK)) { ++ ((new_in_scroll_region && !in_scroll_region) || ++ (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK || ++ screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK || ++ screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK || ++ screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK))) { + /* Clip off any part of the box which isn't already on-screen. */ + bbox_topleft.x = MAX(bbox_topleft.x, 0); + bbox_topleft.y = MAX(bbox_topleft.y, delta); +@@ -4014,6 +4029,8 @@ skip_chunk: + bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT; + bbox_topleft.x = bbox_topleft.y = G_MAXINT; + } ++ ++ in_scroll_region = new_in_scroll_region; + } else + /* Second, we have a NULL match, and next points to the very + * next character in the buffer. Insert the character which |