@ -888,11 +888,7 @@ bpress(XEvent *e) {
gettimeofday ( & now , NULL ) ;
gettimeofday ( & now , NULL ) ;
/* Clear previous selection, logically and visually. */
/* Clear previous selection, logically and visually. */
if ( sel . ob . x ! = - 1 ) {
selclear ( NULL ) ;
sel . ob . x = - 1 ;
tsetdirt ( sel . nb . y , sel . ne . y ) ;
draw ( ) ;
}
sel . mode = 1 ;
sel . mode = 1 ;
sel . type = SEL_REGULAR ;
sel . type = SEL_REGULAR ;
sel . oe . x = sel . ob . x = x2col ( e - > xbutton . x ) ;
sel . oe . x = sel . ob . x = x2col ( e - > xbutton . x ) ;
@ -1108,7 +1104,7 @@ brelease(XEvent *e) {
selpaste ( NULL ) ;
selpaste ( NULL ) ;
} else if ( e - > xbutton . button = = Button1 ) {
} else if ( e - > xbutton . button = = Button1 ) {
if ( sel . mode < 2 ) {
if ( sel . mode < 2 ) {
sel . ob . x = - 1 ;
selclear ( NULL ) ;
} else {
} else {
getbuttoninfo ( e ) ;
getbuttoninfo ( e ) ;
selcopy ( ) ;
selcopy ( ) ;
@ -1441,7 +1437,7 @@ selscroll(int orig, int n) {
if ( BETWEEN ( sel . ob . y , orig , term . bot ) | | BETWEEN ( sel . oe . y , orig , term . bot ) ) {
if ( BETWEEN ( sel . ob . y , orig , term . bot ) | | BETWEEN ( sel . oe . y , orig , term . bot ) ) {
if ( ( sel . ob . y + = n ) > term . bot | | ( sel . oe . y + = n ) < term . top ) {
if ( ( sel . ob . y + = n ) > term . bot | | ( sel . oe . y + = n ) < term . top ) {
sel . ob . x = - 1 ;
selclear ( NULL ) ;
return ;
return ;
}
}
if ( sel . type = = SEL_RECTANGULAR ) {
if ( sel . type = = SEL_RECTANGULAR ) {
@ -1951,7 +1947,7 @@ csihandle(void) {
tputtab ( 1 ) ;
tputtab ( 1 ) ;
break ;
break ;
case ' J ' : /* ED -- Clear screen */
case ' J ' : /* ED -- Clear screen */
sel . ob . x = - 1 ;
selclear ( NULL ) ;
switch ( csiescseq . arg [ 0 ] ) {
switch ( csiescseq . arg [ 0 ] ) {
case 0 : /* below */
case 0 : /* below */
tclearregion ( term . c . x , term . c . y , term . col - 1 , term . c . y ) ;
tclearregion ( term . c . x , term . c . y , term . col - 1 , term . c . y ) ;
@ -2448,7 +2444,7 @@ tputc(char *c, int len) {
if ( control & & ! ( term . c . attr . mode & ATTR_GFX ) )
if ( control & & ! ( term . c . attr . mode & ATTR_GFX ) )
return ;
return ;
if ( sel . ob . x ! = - 1 & & BETWEEN ( term . c . y , sel . ob . y , sel . oe . y ) )
if ( sel . ob . x ! = - 1 & & BETWEEN ( term . c . y , sel . ob . y , sel . oe . y ) )
sel . ob . x = - 1 ;
selclear ( NULL ) ;
if ( IS_SET ( MODE_WRAP ) & & ( term . c . state & CURSOR_WRAPNEXT ) ) {
if ( IS_SET ( MODE_WRAP ) & & ( term . c . state & CURSOR_WRAPNEXT ) ) {
term . line [ term . c . y ] [ term . c . x ] . mode | = ATTR_WRAP ;
term . line [ term . c . y ] [ term . c . x ] . mode | = ATTR_WRAP ;
tnewline ( 1 ) ;
tnewline ( 1 ) ;