aboutsummaryrefslogtreecommitdiff
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
parent9d4c91a795d2d39012f7d50dfa4796944987885b (diff)
Stuff
-rw-r--r--src/mainwindow.c18
-rw-r--r--tests/render_test.c2
2 files changed, 9 insertions, 11 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);
}
diff --git a/tests/render_test.c b/tests/render_test.c
index deaacca..67262e4 100644
--- a/tests/render_test.c
+++ b/tests/render_test.c
@@ -38,7 +38,7 @@
#include "../src/presentation.h"
-const char *sc = "\\demo{\\font[Sorts Mill Goudy 32]Lorem ipsum dolor sit amet, consect-etur adipiscing elit.\n\\font[Serif 17]Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. \\font[Edrip 32]{Nam tincidunt congue enim, ut porta lorem \\font[Edrip Bold 32]{lacinia} consectetur.} Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. \\wibble{Aenean} ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. \\font[Serif Bold 17]{Cum sociis natoque penatibus et magnis dis parturient} montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.}";
+const char *sc = "\\font[Sorts Mill Goudy 32]Lorem ipsum dolor sit amet, consect-etur adipiscing elit.\n\\font[Serif 17]Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. \\font[Edrip 32]{Nam tincidunt congue enim, ut porta lorem \\font[Edrip Bold 32]{lacinia} consectetur.} Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. \\wibble{Aenean} ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. \\font[Serif Bold 17]{Cum sociis natoque penatibus et magnis dis parturient} montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.";
static gint mw_destroy(GtkWidget *w, void *p)
{