aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2011-05-26 23:01:13 +0200
committerThomas White <taw@bitwiz.org.uk>2011-05-26 23:01:13 +0200
commit91c2dcb3509f13c2f8aed925ebcec2381af692da (patch)
tree16a0355fcb3c43db8f9d5f9fa44af031a2d1f508 /src/mainwindow.c
parent8bcb4aa14d5e02b8c7ccab0ceb03f8876bb61e5b (diff)
Add caret and basic keyboard editing
Diffstat (limited to 'src/mainwindow.c')
-rw-r--r--src/mainwindow.c23
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;
}