summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2005-07-20 11:11:51 +0000
committerMatthias Melcher <fltk@matthiasm.com>2005-07-20 11:11:51 +0000
commita15e974676305949a2312dbafefdcb840cdad3a1 (patch)
treed49a4846c24c072dcdabf7a0da21ed18e5923958
parent069276646a467a0d936fb148763685f5a917db5d (diff)
- 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
-rw-r--r--CHANGES1
-rw-r--r--fluid/factory.cxx7
-rw-r--r--src/Fl_Input_.cxx2
3 files changed, 9 insertions, 1 deletions
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