diff --git a/src/Fl_Widget.cxx b/src/Fl_Widget.cxx index 321a39a..a8be544 100644 --- a/src/Fl_Widget.cxx +++ b/src/Fl_Widget.cxx @@ -282,11 +282,11 @@ Fl_Widget::label(const char *a) { void Fl_Widget::copy_label(const char *a) { - if (flags() & COPIED_LABEL) free((void *)(label_.value)); - if ( ( !a || !label_.value ) || strcmp( a, label_.value ) ) redraw_label(); + if (flags() & COPIED_LABEL) free((void *)(label_.value)); + if (a) { set_flag(COPIED_LABEL); label_.value=strdup(a); @@ -294,6 +294,7 @@ Fl_Widget::copy_label(const char *a) { clear_flag(COPIED_LABEL); label_.value=(char *)0; } + } /** Calls the widget callback.