… | |
… | |
2678 | |
2678 | |
2679 | void |
2679 | void |
2680 | rxvt_term::selection_changed () NOTHROW |
2680 | rxvt_term::selection_changed () NOTHROW |
2681 | { |
2681 | { |
2682 | line_t &r1 = ROW (selection.beg.row); |
2682 | line_t &r1 = ROW (selection.beg.row); |
2683 | while (selection.beg.col > 0 && r1.t [selection.beg.col] == NOCHAR) |
2683 | while (selection.beg.col < r1.l && r1.t [selection.beg.col] == NOCHAR) |
2684 | --selection.beg.col; |
2684 | ++selection.beg.col; |
2685 | |
2685 | |
2686 | line_t &r2 = ROW (selection.end.row); |
2686 | line_t &r2 = ROW (selection.end.row); |
2687 | while (selection.end.col < r2.l && r2.t [selection.end.col] == NOCHAR) |
2687 | while (selection.end.col < r2.l && r2.t [selection.end.col] == NOCHAR) |
2688 | ++selection.end.col; |
2688 | ++selection.end.col; |
2689 | |
2689 | |
… | |
… | |
3072 | break; |
3072 | break; |
3073 | } |
3073 | } |
3074 | |
3074 | |
3075 | if (dirn == DN) |
3075 | if (dirn == DN) |
3076 | col++; /* put us on one past the end */ |
3076 | col++; /* put us on one past the end */ |
3077 | else |
|
|
3078 | { |
|
|
3079 | // if the delimiter on the left has width > 1 col points to the |
|
|
3080 | // first NOCHAR in the delimiter cell and so we must move it to the |
|
|
3081 | // beginning of the next cell. |
|
|
3082 | while (ROW(row).t[col] == NOCHAR) |
|
|
3083 | col++; |
|
|
3084 | } |
|
|
3085 | |
3077 | |
3086 | /* Poke the values back in */ |
3078 | /* Poke the values back in */ |
3087 | ret->row = row; |
3079 | ret->row = row; |
3088 | ret->col = col; |
3080 | ret->col = col; |
3089 | } |
3081 | } |