From 7b4556946db5f70b47e91484aac08f05ff32029c Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 22 Nov 2007 19:26:20 +0000 Subject: [PATCH] Make C-space toggle. Fix sel on same line. --- screen.c | 23 +++++++++++++++++++---- window-copy.c | 4 ++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/screen.c b/screen.c index c829d062..b9ddf319 100644 --- a/screen.c +++ b/screen.c @@ -1,4 +1,4 @@ -/* $Id: screen.c,v 1.38 2007-11-22 19:17:01 nicm Exp $ */ +/* $Id: screen.c,v 1.39 2007-11-22 19:26:20 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -126,7 +126,10 @@ screen_resize(struct screen *s, u_int sx, u_int sy) * X dimension. */ if (sx != ox) { - /* If getting smaller, nuke any data in lines over the new size. */ + /* + * If getting smaller, nuke any data in lines over the new + * size. + */ if (sx < ox) { for (i = s->hsize; i < s->hsize + oy; i++) { if (s->grid_size[i] > sx) @@ -305,11 +308,23 @@ screen_check_selection(struct screen_draw_ctx *ctx, u_int px, u_int py) sel->ex = xx; sel->ey = yy; } + if (sel->sy == sel->ey && sel->ex < sel->sx) { + xx = sel->sx; + sel->sx = sel->ex; + sel->ex = xx; + } if (py < sel->sy || py > sel->ey) return (0); - if ((py == sel->sy && px < sel->sx) || (py == sel->ey && px > sel->ex)) - return (0); + if (py == sel->sy && py == sel->ey) { + if (px < sel->sx || px > sel->ex) + return (0); + } else { + if (py == sel->sy && px < sel->sx) + return (0); + if (py == sel->ey && px > sel->ex) + return (0); + } return (1); } diff --git a/window-copy.c b/window-copy.c index 983bbac2..98bf7223 100644 --- a/window-copy.c +++ b/window-copy.c @@ -1,4 +1,4 @@ -/* $Id: window-copy.c,v 1.2 2007-11-22 19:17:01 nicm Exp $ */ +/* $Id: window-copy.c,v 1.3 2007-11-22 19:26:20 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -184,7 +184,7 @@ window_copy_key(struct window *w, int key) data->oy -= sy; break; case '\000': /* C-space */ - data->sel.flag = 1; + data->sel.flag = !data->sel.flag; data->sel.sx = data->cx + data->ox; data->sel.sy = data->size + data->cy - data->oy; oy = -1; /* XXX */