diff options
author | Thomas White <taw@bitwiz.org.uk> | 2011-05-26 23:01:13 +0200 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2011-05-26 23:01:13 +0200 |
commit | 91c2dcb3509f13c2f8aed925ebcec2381af692da (patch) | |
tree | 16a0355fcb3c43db8f9d5f9fa44af031a2d1f508 /src/mainwindow.c | |
parent | 8bcb4aa14d5e02b8c7ccab0ceb03f8876bb61e5b (diff) |
Add caret and basic keyboard editing
Diffstat (limited to 'src/mainwindow.c')
-rw-r--r-- | src/mainwindow.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/mainwindow.c b/src/mainwindow.c index df5fd59..63b78f7 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -168,10 +168,23 @@ static gboolean key_press_sig(GtkWidget *da, GdkEventKey *event, if ( r ) return FALSE; /* IM ate it */ - if ( event->keyval == GDK_KEY_BackSpace ) { - if ( (p->editing_object != NULL) - && (p->editing_object->type == TEXT) ) { + if ( (p->editing_object != NULL) + && (p->editing_object->type == TEXT) ) + { + switch ( event->keyval ) { + + case GDK_KEY_BackSpace : handle_text_backspace(p->editing_object); + break; + + case GDK_KEY_Left : + move_cursor_left(p->editing_object); + break; + + case GDK_KEY_Right : + move_cursor_right(p->editing_object); + break; + } } @@ -231,11 +244,13 @@ static void draw_editing_box(cairo_t *cr, double xmin, double ymin, static void draw_editing_bits(cairo_t *cr, struct object *o) { + draw_editing_box(cr, o->x, o->y, o->bb_width, o->bb_height); + switch ( o->type ) { case TEXT : - draw_editing_box(cr, o->x, o->y, o->bb_width, o->bb_height); + draw_caret(cr, o); break; } |