aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2014-05-26 07:50:08 +0200
committerThomas White <taw@bitwiz.org.uk>2014-05-26 07:50:08 +0200
commit968e739012ca64e6be74074816f96f5b1d487422 (patch)
tree9b7c90ea58d752bf1c983ae80f7f03787d63184b /src
parent9d4c91a795d2d39012f7d50dfa4796944987885b (diff)
Stuff
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/mainwindow.c b/src/mainwindow.c
index 7fbf166..4706e15 100644
--- a/src/mainwindow.c
+++ b/src/mainwindow.c
@@ -1125,10 +1125,10 @@ static void insert_text(struct frame *fr, char *t, struct presentation *p)
static void do_backspace(struct frame *fr, struct presentation *p)
{
- size_t tlen, olen;
int nln, nbx;
size_t pos;
struct wrap_box *box;
+ glong ptr;
if ( fr == NULL ) return;
@@ -1143,25 +1143,23 @@ static void do_backspace(struct frame *fr, struct presentation *p)
if ( nbx == 0 ) {
if ( nln == 0 ) return;
nln--;
- nbx = fr->lines[nln]->n_boxes-1; /* The last box */
+ nbx = fr->lines[nln].n_boxes-1; /* The last box */
} else {
nbx--;
}
- pos = strlen(fr->lines[nln]->boxes[nbx].text)-1;
+ pos = strlen(fr->lines[nln].boxes[nbx].text)-1;
}
box = &fr->lines[nln].boxes[nbx];
- ptr = g_utf8_pointer_to_offset(box->text, pos);
-
- olen = strlen(fr->sc) - fr->pos + 1;
- tlen = 1; /* FIXME: Length of character before cursor */
+ p->cursor_line = nln;
+ p->cursor_box = nbx;
+ p->cursor_pos = pos;
- memmove(fr->sc+fr->pos-tlen, fr->sc+fr->pos, olen);
+ ptr = g_utf8_pointer_to_offset(box->text, box->text+pos);
- reshape_box(box);
+// reshape_box(box);
rerender_slide(p);
- p->cursor_pos = fr->pos;
redraw_editor(p);
}