diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2004-05-26 02:42:10 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2004-05-26 02:42:10 +0000 |
| commit | 888ca55da63f98ada70845420fc5aa950422b654 (patch) | |
| tree | d5162712d06ce4df66e4528fba2ad905c3ef3050 /src | |
| parent | 7b4c016ef9c78fe3177e93d6e45396877c045235 (diff) | |
The Fl_Text_Display widget did not redraw selections when focus
changed (STR #390)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3427 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Text_Display.cxx | 18 | ||||
| -rw-r--r-- | src/Fl_Text_Editor.cxx | 10 |
2 files changed, 15 insertions, 13 deletions
diff --git a/src/Fl_Text_Display.cxx b/src/Fl_Text_Display.cxx index ba664b30d..e5b2b1d49 100644 --- a/src/Fl_Text_Display.cxx +++ b/src/Fl_Text_Display.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Text_Display.cxx,v 1.12.2.53 2004/05/24 01:30:30 easysw Exp $" +// "$Id: Fl_Text_Display.cxx,v 1.12.2.54 2004/05/26 02:42:10 easysw Exp $" // // Copyright 2001-2004 by Bill Spitzak and others. // Original code Copyright Mark Edel. Permission to distribute under @@ -1645,7 +1645,11 @@ void Fl_Text_Display::clear_rect( int style, int X, int Y, return; if ( Fl::focus() != this ) { - fl_color( color() ); + if (style & (HIGHLIGHT_MASK | PRIMARY_MASK)) { + fl_color(fl_color_average(color(), selection_color(), 0.5f)); + } else { + fl_color( color() ); + } fl_rectf( X, Y, width, height ); } else if ( style & HIGHLIGHT_MASK ) { fl_color( fl_contrast(textcolor(), color()) ); @@ -2986,7 +2990,7 @@ int Fl_Text_Display::handle(int event) { // This isn't very elegant! if (!Fl::event_inside(text_area.x, text_area.y, text_area.w, text_area.h) && !dragging && event != FL_LEAVE && event != FL_ENTER && - event != FL_MOVE) { + event != FL_MOVE && event != FL_FOCUS && event != FL_UNFOCUS) { return Fl_Group::handle(event); } @@ -3073,9 +3077,9 @@ int Fl_Text_Display::handle(int event) { case FL_FOCUS: case FL_UNFOCUS: - if (buffer()->primary_selection()->start() != - buffer()->primary_selection()->end()) redraw(); // Redraw selections... - break; + if (buffer()->selected()) redraw(); + + return 1; } return 0; @@ -3083,5 +3087,5 @@ int Fl_Text_Display::handle(int event) { // -// End of "$Id: Fl_Text_Display.cxx,v 1.12.2.53 2004/05/24 01:30:30 easysw Exp $". +// End of "$Id: Fl_Text_Display.cxx,v 1.12.2.54 2004/05/26 02:42:10 easysw Exp $". // diff --git a/src/Fl_Text_Editor.cxx b/src/Fl_Text_Editor.cxx index 0b14258b8..6454bfc8a 100644 --- a/src/Fl_Text_Editor.cxx +++ b/src/Fl_Text_Editor.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Text_Editor.cxx,v 1.9.2.18 2004/04/11 04:38:58 easysw Exp $" +// "$Id: Fl_Text_Editor.cxx,v 1.9.2.19 2004/05/26 02:42:10 easysw Exp $" // // Copyright 2001-2004 by Bill Spitzak and others. // Original code Copyright Mark Edel. Permission to distribute under @@ -451,15 +451,13 @@ int Fl_Text_Editor::handle(int event) { switch (event) { case FL_FOCUS: show_cursor(mCursorOn); // redraws the cursor - if (buffer()->primary_selection()->start() != - buffer()->primary_selection()->end()) redraw(); // Redraw selections... + if (buffer()->selected()) redraw(); // Redraw selections... Fl::focus(this); return 1; case FL_UNFOCUS: show_cursor(mCursorOn); // redraws the cursor - if (buffer()->primary_selection()->start() != - buffer()->primary_selection()->end()) redraw(); // Redraw selections... + if (buffer()->selected()) redraw(); // Redraw selections... case FL_HIDE: if (when() & FL_WHEN_RELEASE) maybe_do_callback(); return 1; @@ -490,5 +488,5 @@ int Fl_Text_Editor::handle(int event) { } // -// End of "$Id: Fl_Text_Editor.cxx,v 1.9.2.18 2004/04/11 04:38:58 easysw Exp $". +// End of "$Id: Fl_Text_Editor.cxx,v 1.9.2.19 2004/05/26 02:42:10 easysw Exp $". // |
