From cf672dba0db831679ba0cb5b9966a6dd1bbcb6e5 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Mon, 24 Dec 2012 11:45:07 +0000 Subject: Mac OS text input: defined a small API that user-defined text editing widgets can use to signal marked text. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9774 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Input_.cxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/Fl_Input_.cxx') diff --git a/src/Fl_Input_.cxx b/src/Fl_Input_.cxx index bf96bd4c9..644d954c3 100644 --- a/src/Fl_Input_.cxx +++ b/src/Fl_Input_.cxx @@ -339,8 +339,8 @@ void Fl_Input_::drawtext(int X, int Y, int W, int H) { int offset2; if (pp <= e) x2 = xpos + (float)expandpos(p, pp, buf, &offset2); else offset2 = (int) strlen(buf); -#ifdef __APPLE__ // Mac OS: underline marked ( = selected + Fl::compose_state != 0) text - if (Fl::compose_state) { +#ifdef __APPLE__ // Mac OS: underline marked ( = selected + Fl::marked_text_length() != 0) text + if (Fl::marked_text_length()) { fl_color(textcolor()); } else @@ -351,8 +351,8 @@ void Fl_Input_::drawtext(int X, int Y, int W, int H) { fl_color(fl_contrast(textcolor(), selection_color())); } fl_draw(buf+offset1, offset2-offset1, x1, (float)(Y+ypos+desc)); -#ifdef __APPLE__ // Mac OS: underline marked ( = selected + Fl::compose_state != 0) text - if (Fl::compose_state) { +#ifdef __APPLE__ // Mac OS: underline marked ( = selected + Fl::marked_text_length() != 0) text + if (Fl::marked_text_length()) { fl_color( fl_color_average(textcolor(), color(), 0.6) ); float width = fl_width(buf+offset1, offset2-offset1); fl_line(x1, Y+ypos+height-1, x1+width, Y+ypos+height-1); @@ -372,7 +372,11 @@ void Fl_Input_::drawtext(int X, int Y, int W, int H) { CONTINUE2: // draw the cursor: - if (Fl::focus() == this && (Fl::compose_state || selstart == selend) && + if (Fl::focus() == this && ( +#ifdef __APPLE__ + Fl::marked_text_length() || +#endif + selstart == selend) && position() >= p-value() && position() <= e-value()) { fl_color(cursor_color()); // cursor position may need to be recomputed (see STR #2486) -- cgit v1.2.3