|
|
@ -653,16 +653,14 @@ selected(int x, int y) { |
|
|
|
return BETWEEN(x, bx, ex); |
|
|
|
} |
|
|
|
|
|
|
|
switch(sel.type) { |
|
|
|
case SEL_REGULAR: |
|
|
|
return ((sel.b.y < y && y < sel.e.y) |
|
|
|
|| (y == sel.e.y && x <= sel.e.x)) |
|
|
|
|| (y == sel.b.y && x >= sel.b.x |
|
|
|
&& (x <= sel.e.x || sel.b.y != sel.e.y)); |
|
|
|
case SEL_RECTANGULAR: |
|
|
|
if(sel.type == SEL_RECTANGULAR) { |
|
|
|
return ((sel.b.y <= y && y <= sel.e.y) |
|
|
|
&& (sel.b.x <= x && x <= sel.e.x)); |
|
|
|
}; |
|
|
|
} |
|
|
|
return ((sel.b.y < y && y < sel.e.y) |
|
|
|
|| (y == sel.e.y && x <= sel.e.x)) |
|
|
|
|| (y == sel.b.y && x >= sel.b.x |
|
|
|
&& (x <= sel.e.x || sel.b.y != sel.e.y)); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
@ -1254,8 +1252,12 @@ selscroll(int orig, int n) { |
|
|
|
sel.bx = -1; |
|
|
|
return; |
|
|
|
} |
|
|
|
switch(sel.type) { |
|
|
|
case SEL_REGULAR: |
|
|
|
if(sel.type == SEL_RECTANGULAR) { |
|
|
|
if(sel.by < term.top) |
|
|
|
sel.by = term.top; |
|
|
|
if(sel.ey > term.bot) |
|
|
|
sel.ey = term.bot; |
|
|
|
} else { |
|
|
|
if(sel.by < term.top) { |
|
|
|
sel.by = term.top; |
|
|
|
sel.bx = 0; |
|
|
@ -1264,14 +1266,7 @@ selscroll(int orig, int n) { |
|
|
|
sel.ey = term.bot; |
|
|
|
sel.ex = term.col; |
|
|
|
} |
|
|
|
break; |
|
|
|
case SEL_RECTANGULAR: |
|
|
|
if(sel.by < term.top) |
|
|
|
sel.by = term.top; |
|
|
|
if(sel.ey > term.bot) |
|
|
|
sel.ey = term.bot; |
|
|
|
break; |
|
|
|
}; |
|
|
|
} |
|
|
|
sel.b.y = sel.by, sel.b.x = sel.bx; |
|
|
|
sel.e.y = sel.ey, sel.e.x = sel.ex; |
|
|
|
} |
|
|
|