*** rbgtk.c.orig	Fri Dec 10 06:58:48 1999
--- rbgtk.c	Fri Dec 24 10:26:24 1999
***************
*** 529,534 ****
--- 529,584 ----
  	    return;
  	}
      }
+     if (rb_obj_is_kind_of(obj, gEditable)) {
+ 	if (strcmp(signame, "insert_text") == 0) {
+ 	    rb_ary_push(args, rb_str_new(GTK_VALUE_STRING(params[0]), GTK_VALUE_INT(params[1])));
+ 	    rb_ary_push(args, rb_ary_new3(1, INT2NUM(*GTK_RETLOC_INT(params[2]))));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "delete_text") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0])));
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "set_editable") == 0) {
+ 	    rb_ary_push(args, GTK_VALUE_BOOL(params[0])? Qtrue: Qfalse);
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "move_cursor") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0])));
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "move_word") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "move_page") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[0])));
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "move_to_row") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "move_to_column") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "kill_char") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "kill_word") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+ 	if (strcmp(signame, "kill_line") == 0) {
+ 	    rb_ary_push(args, INT2NUM(GTK_VALUE_INT(params[1])));
+ 	    return;
+ 	}
+     }
      if (rb_obj_is_kind_of(obj, gEntry)) {
  	if (strcmp(signame, "insert_position") == 0) {
  	    rb_ary_push(args, INT2NUM(*GTK_RETLOC_INT(params[0])));
***************
*** 576,581 ****
--- 626,640 ----
  	if (strcmp(signame, "size_request") == 0) {
  	    memcpy(GTK_VALUE_POINTER(params[0]), get_grequisition(rb_ary_pop(args)),
  		   sizeof(GtkRequisition));
+ 	    return;
+ 	}
+     }
+     if (rb_obj_is_kind_of(obj, gEditable)) {
+ 	if (strcmp(signame, "insert_text") == 0) {
+ 	    VALUE x = RARRAY(rb_ary_pop(args))->ptr[0];
+ 	    VALUE str = rb_ary_pop(args);
+ 	    *GTK_RETLOC_INT(params[2]) = NUM2INT(x);
+ 	    strncpy(GTK_VALUE_STRING(params[0]), RSTRING(str)->ptr, RSTRING(str)->len);
  	    return;
  	}
      }

