summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Fl_Text_Editor.cxx5
-rw-r--r--src/Fl_cocoa.mm2
2 files changed, 4 insertions, 3 deletions
diff --git a/src/Fl_Text_Editor.cxx b/src/Fl_Text_Editor.cxx
index 723f2bac7..d13fd7139 100644
--- a/src/Fl_Text_Editor.cxx
+++ b/src/Fl_Text_Editor.cxx
@@ -514,8 +514,9 @@ int Fl_Text_Editor::handle_key() {
int del = 0;
if (Fl::compose(del)) {
if (del) {
- int dp = insert_position(), di = del;
- while (di--) dp = buffer()->prev_char_clipped(dp);
+ // del is a number of bytes
+ int dp = insert_position() - del;
+ if ( dp < 0 ) dp = 0;
buffer()->select(dp, insert_position());
}
kill_selection(this);
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index bb2ab9662..9bd0cbfa4 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -1958,7 +1958,7 @@ static void q_set_window_title(NSWindow *nsw, const char * name, const char *mi
received, newSelection.location, newSelection.length, Fl::e_length, Fl::compose_state, [received length]);*/
Fl_Window *target = [(FLWindow*)[self window] getFl_Window];
Fl::handle(FL_KEYBOARD, target);
- Fl::compose_state = [received length];
+ Fl::compose_state = Fl::e_length;
fl_unlock_function();
}