initial import
This commit is contained in:
49
vte-legacy/PKGBUILD
Normal file
49
vte-legacy/PKGBUILD
Normal file
@@ -0,0 +1,49 @@
|
||||
# Maintainer: Jesus E. <heckyel@riseup.net>
|
||||
|
||||
pkgname=vte-legacy
|
||||
pkgver=0.28.2
|
||||
pkgrel=2
|
||||
pkgdesc="Virtual Terminal Emulator widget for use with GTK+2"
|
||||
arch=('i686' 'x86_64')
|
||||
license=('LGPL-2')
|
||||
url='https://www.gnome.org'
|
||||
options=('!emptydirs')
|
||||
provides=('vte')
|
||||
conflicts=('vte')
|
||||
depends=('gtk2' 'vte-common')
|
||||
makedepends=('tauthon-pygtk' 'intltool' 'gobject-introspection' 'gettext-tiny')
|
||||
source=(https://ftp.gnome.org/pub/GNOME/sources/vte/0.28/vte-$pkgver.tar.xz
|
||||
make_alt_work.patch
|
||||
scroll_region.patch
|
||||
bracketed_paste_mode_fix.patch)
|
||||
sha512sums=('d6a50481aaa8946cca3779e0b328fef551be534d70366a75385d1f8ead3fcddec57bed85c7d4bc2d9f34546532129e63083aafa33cbb0efcbc7dc9d66e7c45f6'
|
||||
'b3a99a4d0c2d8c7612f564bf6f935e4257c4279f9705bce194f09f5448fee488fbfe0e7b15d59d26884dcc4ad440a0111f603c3d8fc6212ef3ab66ef051c0044'
|
||||
'af158fa03d2ac54f7f547635ea3ba201e1e4c75048d2ff944d67792b06c8510a0c28ba417afb3c9730e504086605cd231415a7129dff14c1cb25423c984931b0'
|
||||
'94f140876be9cfe7b62dcd609ebb0e289445641ef3ec5009275aad34e5716ab64d019a304cc7bdd3228d397e2e57a3cb9c5e9b34e8cfadcbf996b87785d844ab')
|
||||
|
||||
prepare() {
|
||||
cd vte-$pkgver
|
||||
patch -Np1 -i $srcdir/make_alt_work.patch
|
||||
patch -Np1 -i $srcdir/scroll_region.patch
|
||||
patch -Np1 -i $srcdir/bracketed_paste_mode_fix.patch
|
||||
rm -r doc/reference/html
|
||||
}
|
||||
build() {
|
||||
cd vte-$pkgver
|
||||
|
||||
#warning: type-punning to incomplete type might break strict-aliasing rules
|
||||
export CFLAGS="$CFLAGS -fno-strict-aliasing"
|
||||
|
||||
PYTHON=/usr/bin/tauthon ./configure --prefix=/usr --sysconfdir=/etc \
|
||||
--libexecdir=/usr/lib/vte \
|
||||
--localstatedir=/var --disable-static \
|
||||
--enable-introspection --with-gtk=2.0 --disable-gnome-pty-helper
|
||||
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
|
||||
make
|
||||
}
|
||||
|
||||
package(){
|
||||
cd vte-$pkgver
|
||||
make DESTDIR="$pkgdir" install
|
||||
install -Dm644 COPYING -t "${pkgdir}/usr/share/licenses/$pkgname"
|
||||
}
|
||||
83
vte-legacy/bracketed_paste_mode_fix.patch
Normal file
83
vte-legacy/bracketed_paste_mode_fix.patch
Normal file
@@ -0,0 +1,83 @@
|
||||
commit 7206376160aac2743a93f70a4726bad4f34fa688
|
||||
Author: Fuujuhi <fuujuhi-ml1@noekeon.org>
|
||||
Date: Wed Jul 30 15:52:52 2014 +0200
|
||||
|
||||
backporting vte bracked paste mode bug patch on v0.28.2-5ubuntu1
|
||||
|
||||
See https://bugzilla.gnome.org/show_bug.cgi?id=729533
|
||||
Patch at https://bugzilla.gnome.org/attachment.cgi?id=279320
|
||||
|
||||
diff --git a/src/vte-private.h b/src/vte-private.h
|
||||
index 65d5022..ac1f2d8 100644
|
||||
--- a/src/vte-private.h
|
||||
+++ b/src/vte-private.h
|
||||
@@ -219,7 +219,6 @@ struct _VteTerminalPrivate {
|
||||
gboolean sendrecv_mode; /* sendrecv mode */
|
||||
gboolean insert_mode; /* insert mode */
|
||||
gboolean linefeed_mode; /* linefeed mode */
|
||||
- gboolean bracketed_paste_mode;
|
||||
struct vte_scrolling_region {
|
||||
int start, end;
|
||||
} scrolling_region; /* the region we scroll in */
|
||||
@@ -274,6 +273,7 @@ struct _VteTerminalPrivate {
|
||||
gboolean text_modified_flag;
|
||||
gboolean text_inserted_flag;
|
||||
gboolean text_deleted_flag;
|
||||
+ gboolean bracketed_paste_mode;
|
||||
|
||||
/* Scrolling options. */
|
||||
gboolean scroll_background;
|
||||
diff --git a/src/vte.c b/src/vte.c
|
||||
index c20ee78..dbab6de 100644
|
||||
--- a/src/vte.c
|
||||
+++ b/src/vte.c
|
||||
@@ -5823,10 +5823,10 @@ static void mark_output_source_invalid(VteTerminal *terminal)
|
||||
p++;
|
||||
}
|
||||
}
|
||||
- if (terminal->pvt->screen->bracketed_paste_mode)
|
||||
+ if (terminal->pvt->bracketed_paste_mode)
|
||||
vte_terminal_feed_child(terminal, "\e[200~", -1);
|
||||
vte_terminal_feed_child(terminal, paste, length);
|
||||
- if (terminal->pvt->screen->bracketed_paste_mode)
|
||||
+ if (terminal->pvt->bracketed_paste_mode)
|
||||
vte_terminal_feed_child(terminal, "\e[201~", -1);
|
||||
g_free(paste);
|
||||
}
|
||||
@@ -14106,14 +14106,12 @@ static void mark_output_source_invalid(VteTerminal *terminal)
|
||||
pvt->normal_screen.linefeed_mode = FALSE;
|
||||
pvt->normal_screen.origin_mode = FALSE;
|
||||
pvt->normal_screen.reverse_mode = FALSE;
|
||||
- pvt->normal_screen.bracketed_paste_mode = FALSE;
|
||||
pvt->alternate_screen.scrolling_restricted = FALSE;
|
||||
pvt->alternate_screen.sendrecv_mode = TRUE;
|
||||
pvt->alternate_screen.insert_mode = FALSE;
|
||||
pvt->alternate_screen.linefeed_mode = FALSE;
|
||||
pvt->alternate_screen.origin_mode = FALSE;
|
||||
pvt->alternate_screen.reverse_mode = FALSE;
|
||||
- pvt->alternate_screen.bracketed_paste_mode = FALSE;
|
||||
pvt->cursor_visible = TRUE;
|
||||
/* Reset the encoding. */
|
||||
vte_terminal_set_encoding(terminal, NULL);
|
||||
@@ -14143,6 +14141,8 @@ static void mark_output_source_invalid(VteTerminal *terminal)
|
||||
pvt->mouse_last_y = 0;
|
||||
/* Clear modifiers. */
|
||||
pvt->modifiers = 0;
|
||||
+ /* Reset miscellaneous stuff. */
|
||||
+ pvt->bracketed_paste_mode = FALSE;
|
||||
/* Cause everything to be redrawn (or cleared). */
|
||||
vte_terminal_maybe_scroll_to_bottom(terminal);
|
||||
_vte_invalidate_all(terminal);
|
||||
diff --git a/src/vteseq.c b/src/vteseq.c
|
||||
index 209522f..8c8d43c 100644
|
||||
--- a/src/vteseq.c
|
||||
+++ b/src/vteseq.c
|
||||
@@ -737,7 +737,7 @@
|
||||
GINT_TO_POINTER(TRUE),
|
||||
NULL, NULL},
|
||||
/* 2004: Bracketed paste mode. */
|
||||
- {2004, &terminal->pvt->screen->bracketed_paste_mode, NULL, NULL,
|
||||
+ {2004, &terminal->pvt->bracketed_paste_mode, NULL, NULL,
|
||||
GINT_TO_POINTER(FALSE),
|
||||
GINT_TO_POINTER(TRUE),
|
||||
NULL, NULL,},
|
||||
50
vte-legacy/make_alt_work.patch
Normal file
50
vte-legacy/make_alt_work.patch
Normal file
@@ -0,0 +1,50 @@
|
||||
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
|
||||
---
|
||||
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;
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
||||
/* Read and handle a keypress event. */
|
||||
--
|
||||
1.7.5.1.217.g4e3aa.dirty
|
||||
67
vte-legacy/scroll_region.patch
Normal file
67
vte-legacy/scroll_region.patch
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user