diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2012-05-05 13:36:47 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2012-05-05 13:36:47 +0000 |
| commit | 66cea4322f914b25ae48d04c00a167a4bc74cc47 (patch) | |
| tree | 29fae5a8011b98ab74ace949a279094e4814b42f /src/Fl_Widget.cxx | |
| parent | 93fd842a5b1c6105c7960e79403984ab0f10f973 (diff) | |
Fix STR #2836: copy_label() with old label() value failed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9443 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Widget.cxx')
| -rw-r--r-- | src/Fl_Widget.cxx | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/Fl_Widget.cxx b/src/Fl_Widget.cxx index 79cafa2c4..50139cb22 100644 --- a/src/Fl_Widget.cxx +++ b/src/Fl_Widget.cxx @@ -303,13 +303,14 @@ Fl_Widget::label(const char *a) { void Fl_Widget::copy_label(const char *a) { - if (flags() & COPIED_LABEL) free((void *)(label_.value)); + // reassigning a copied label remains the same copied label + if ((flags() & COPIED_LABEL) && (label_.value == a)) + return; if (a) { + label(strdup(a)); set_flag(COPIED_LABEL); - label_.value=strdup(a); } else { - clear_flag(COPIED_LABEL); - label_.value=(char *)0; + label(0); } redraw_label(); } |
