From a15e974676305949a2312dbafefdcb840cdad3a1 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Wed, 20 Jul 2005 11:11:51 +0000 Subject: - I enlarged the 'minimal update' area in Fl_Input_, so that characters that overlap the font box will be correctly erased during minimal redraw. The original code assumes that character fin in a box from 0,0 to charcter width/height. However, many newer fonts overlap that box and leave traces when redrawn. See 'j' and 'W' in Helvetica on Mac and Windows. - added textsize etc. support for Fluid Live Mode for Fl_Input type. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4436 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- CHANGES | 1 + fluid/factory.cxx | 7 +++++++ src/Fl_Input_.cxx | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index f7b2b12a2..4f1440737 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ CHANGES IN FLTK 1.1.7 - Documentation fixes (STR #648, STR #692, STR #730, STR #744, STR #745, STR #942) + - Fixed left overhang of large chracters in Fl_Input_ (STR #941) - Fixed button resizing in File Chooser (STR #884) - Fixed Fluid redraw issue (STR #912) - Added 32bit BMP Image file format support (STR #918) diff --git a/fluid/factory.cxx b/fluid/factory.cxx index aedaaa1c7..7eaf5dc87 100644 --- a/fluid/factory.cxx +++ b/fluid/factory.cxx @@ -444,6 +444,13 @@ public: } Fl_Widget_Type *_make() {return new Fl_Input_Type();} int pixmapID() { return 14; } + virtual void copy_properties() { + Fl_Widget_Type::copy_properties(); + Fl_Input_ *d = (Fl_Input_*)live_widget, *s = (Fl_Input_*)o; + d->textfont(s->textfont()); + d->textsize(s->textsize()); + d->textcolor(s->textcolor()); + } }; static Fl_Input_Type Fl_Input_type; diff --git a/src/Fl_Input_.cxx b/src/Fl_Input_.cxx index d41f840f7..d851cba94 100644 --- a/src/Fl_Input_.cxx +++ b/src/Fl_Input_.cxx @@ -253,7 +253,7 @@ void Fl_Input_::drawtext(int X, int Y, int W, int H) { else if (readonly()) xx -= 3; } // clip to and erase it: - fl_push_clip((int)xx, Y+ypos, (int)(r-xx+1), height); + fl_push_clip((int)xx-1-height/8, Y+ypos, (int)(r-xx+2+height/4), height); draw_box(box(), X-Fl::box_dx(box()), Y-Fl::box_dy(box()), W+Fl::box_dw(box()), H+Fl::box_dh(box()), color()); // it now draws entire line over it -- cgit v1.2.3