Browse Source

git subrepo clone gitea@gitea.artixlinux.org:packagesV/vte.git

subrepo:
  subdir:   "vte"
  merged:   "f31ada1"
upstream:
  origin:   "gitea@gitea.artixlinux.org:packagesV/vte.git"
  branch:   "master"
  commit:   "f31ada1"
git-subrepo:
  version:  "0.4.0"
  origin:   "???"
  commit:   "???"
master
artoo 2 years ago
parent
commit
0e0ebd29cb
Signed by: artoo GPG Key ID: 3292CD0BB0DB310B
  1. 5
      vte/.artixlinux/agent.yaml
  2. 33
      vte/.gitignore
  3. 12
      vte/.gitrepo
  4. 3
      vte/Jenkinsfile
  5. 2
      vte/README.md
  6. 46
      vte/repos/extra-x86_64/PKGBUILD
  7. 83
      vte/repos/extra-x86_64/bracketed_paste_mode_fix.patch
  8. 50
      vte/repos/extra-x86_64/make_alt_work.patch
  9. 67
      vte/repos/extra-x86_64/scroll_region.patch
  10. 46
      vte/trunk/PKGBUILD
  11. 83
      vte/trunk/bracketed_paste_mode_fix.patch
  12. 50
      vte/trunk/make_alt_work.patch
  13. 67
      vte/trunk/scroll_region.patch

5
vte/.artixlinux/agent.yaml

@ -0,0 +1,5 @@
%YAML 1.2
---
label: master

33
vte/.gitignore

@ -0,0 +1,33 @@
# ---> ArchLinuxPackages
*.tar
*.tar.*
*.jar
*.exe
*.msi
*.zip
*.tgz
*.log
*.log.*
*.sig
pkg/
src/
# ---> Archives
*.7z
*.rar
*.gz
*.bzip
*.bz2
*.xz
*.lzma
*.cab
# ---> systemd
*.service
*.socket
*.timer
# ---> snap
*.snap

12
vte/.gitrepo

@ -0,0 +1,12 @@
; DO NOT EDIT (unless you know what you are doing)
;
; This subdirectory is a git "subrepo", and this file is maintained by the
; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
;
[subrepo]
remote = gitea@gitea.artixlinux.org:packagesV/vte.git
branch = master
commit = f31ada163d4dfbecff3e8d16346fec5754397222
parent = db0d8a994bb5014a976b5e024079e2b6df0bf757
method = merge
cmdver = 0.4.0

3
vte/Jenkinsfile

@ -0,0 +1,3 @@
@Library('artix-ci') import org.artixlinux.RepoPackage
PackagePipeline(new RepoPackage(this))

2
vte/README.md

@ -0,0 +1,2 @@
# vte

46
vte/repos/extra-x86_64/PKGBUILD

@ -0,0 +1,46 @@
# $Id$
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=vte
pkgver=0.28.2
pkgrel=8
pkgdesc="Virtual Terminal Emulator widget for use with GTK2"
arch=('i686' 'x86_64')
license=('LGPL')
options=('!emptydirs')
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
scroll_region.patch
bracketed_paste_mode_fix.patch)
sha256sums=('86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae'
'2cd58ffffd42a9d59e05369c2efa1e70b7d32bfb5c8cdbd67b3b95ae3c3e6d61'
'9a99c486b1c0377a4b8c6fae25067c68913bded2988fafea2c86f5adf6a49c81'
'634d4526efdff9fac0e75cb056afb0a886354cd52c5dc98f5a70bef282631724')
prepare() {
cd $pkgname-$pkgver
patch -Np1 -i ../make_alt_work.patch
patch -Np1 -i ../scroll_region.patch
patch -Np1 -i ../bracketed_paste_mode_fix.patch
rm -r doc/reference/html
}
build() {
cd $pkgname-$pkgver
#warning: type-punning to incomplete type might break strict-aliasing rules
export CFLAGS="$CFLAGS -fno-strict-aliasing"
PYTHON=/usr/bin/python2 ./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 $pkgname-$pkgver
make DESTDIR="$pkgdir" install
}

83
vte/repos/extra-x86_64/bracketed_paste_mode_fix.patch

@ -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/repos/extra-x86_64/make_alt_work.patch

@ -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/repos/extra-x86_64/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

46
vte/trunk/PKGBUILD

@ -0,0 +1,46 @@
# $Id$
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=vte
pkgver=0.28.2
pkgrel=8
pkgdesc="Virtual Terminal Emulator widget for use with GTK2"
arch=('x86_64')
license=('LGPL')
options=('!emptydirs')
depends=('gtk2' 'vte-common')
makedepends=('pygtk' 'intltool' 'gobject-introspection' 'pygobject2-devel')
url="https://www.gnome.org"
source=(https://download.gnome.org/sources/vte/0.28/vte-$pkgver.tar.xz
make_alt_work.patch
scroll_region.patch
bracketed_paste_mode_fix.patch)
sha256sums=('86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae'
'2cd58ffffd42a9d59e05369c2efa1e70b7d32bfb5c8cdbd67b3b95ae3c3e6d61'
'9a99c486b1c0377a4b8c6fae25067c68913bded2988fafea2c86f5adf6a49c81'
'634d4526efdff9fac0e75cb056afb0a886354cd52c5dc98f5a70bef282631724')
prepare() {
cd $pkgname-$pkgver
patch -Np1 -i ../make_alt_work.patch
patch -Np1 -i ../scroll_region.patch
patch -Np1 -i ../bracketed_paste_mode_fix.patch
rm -r doc/reference/html
}
build() {
cd $pkgname-$pkgver
#warning: type-punning to incomplete type might break strict-aliasing rules
export CFLAGS="$CFLAGS -fno-strict-aliasing"
PYTHON=/usr/bin/python2 ./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 $pkgname-$pkgver
make DESTDIR="$pkgdir" install
}

83
vte/trunk/bracketed_paste_mode_fix.patch

@ -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/trunk/make_alt_work.patch

@ -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/trunk/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
Loading…
Cancel
Save