Fixed Fl_Tabs selection border drawing, if tabs are at the bottom of

the widget (STR #2480). Thanks for the patch.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8053 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Albrecht Schlosser 2010-12-18 15:31:44 +00:00
parent 15e1ddf3c9
commit 403ee0ce23
3 changed files with 9 additions and 8 deletions

View File

@ -1,5 +1,7 @@
CHANGES IN FLTK 1.3.0 CHANGES IN FLTK 1.3.0
- Fixed Fl_Tabs selection border drawing, if tabs are at the bottom
of the widget (STR #2480)
- Much faster fl_read_image() for Windows (STR #2387). - Much faster fl_read_image() for Windows (STR #2387).
- Added general Options dialog (STR #2471) - Added general Options dialog (STR #2471)
- Fixed Compiling with mingw-w64 (STR #2308). - Fixed Compiling with mingw-w64 (STR #2308).

View File

@ -37,6 +37,7 @@ OTHER CONTRIBUTORS
Paul Chambers Paul Chambers
Stephen Davies Stephen Davies
Yuri D'Elia Yuri D'Elia
Domingo Alvarez Duarte
Greg Ercolano Greg Ercolano
Yuri Fedorchenko Yuri Fedorchenko
George Garvey George Garvey

View File

@ -40,6 +40,7 @@
#define BORDER 2 #define BORDER 2
#define EXTRASPACE 10 #define EXTRASPACE 10
#define SELECTION_BORDER 5
// return the left edges of each tab (plus a fake left edge for a tab // return the left edges of each tab (plus a fake left edge for a tab
// past the right-hand one). These position are actually of the left // past the right-hand one). These position are actually of the left
@ -311,14 +312,11 @@ void Fl_Tabs::draw() {
draw_box(box(), x(), y()+(H>=0?H:0), w(), h()-(H>=0?H:-H), c); draw_box(box(), x(), y()+(H>=0?H:0), w(), h()-(H>=0?H:-H), c);
if (selection_color() != c) { if (selection_color() != c) {
// Draw the top 5 lines of the tab pane in the selection color so // Draw the top or bottom SELECTION_BORDER lines of the tab pane in the
// that the user knows which tab is selected... // selection color so that the user knows which tab is selected...
if (H >= 0) fl_push_clip(x(), y() + H, w(), 5); int clip_y = (H >= 0) ? y() + H : y() + h() + H - SELECTION_BORDER;
else fl_push_clip(x(), y() + h() - H - 4, w(), 5); fl_push_clip(x(), clip_y, w(), SELECTION_BORDER);
draw_box(box(), x(), clip_y, w(), SELECTION_BORDER, selection_color());
draw_box(box(), x(), y()+(H>=0?H:0), w(), h()-(H>=0?H:-H),
selection_color());
fl_pop_clip(); fl_pop_clip();
} }
if (v) draw_child(*v); if (v) draw_child(*v);