summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2012-05-05 13:36:47 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2012-05-05 13:36:47 +0000
commit66cea4322f914b25ae48d04c00a167a4bc74cc47 (patch)
tree29fae5a8011b98ab74ace949a279094e4814b42f /src
parent93fd842a5b1c6105c7960e79403984ab0f10f973 (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')
-rw-r--r--src/Fl_Widget.cxx9
-rw-r--r--src/Fl_Window.cxx14
2 files changed, 9 insertions, 14 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();
}
diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx
index 7ca25a220..f5c295d77 100644
--- a/src/Fl_Window.cxx
+++ b/src/Fl_Window.cxx
@@ -139,22 +139,16 @@ void Fl_Window::draw() {
}
void Fl_Window::label(const char *name) {
- label(name, iconlabel());
+ label(name, iconlabel()); // platform dependent
}
void Fl_Window::copy_label(const char *a) {
- if (flags() & COPIED_LABEL) {
- free((void *)label());
- clear_flag(COPIED_LABEL);
- }
- if (a) a = strdup(a);
- label(a, iconlabel());
- set_flag(COPIED_LABEL);
+ Fl_Widget::copy_label(a);
+ label(label(), iconlabel()); // platform dependent
}
-
void Fl_Window::iconlabel(const char *iname) {
- label(label(), iname);
+ label(label(), iname); // platform dependent
}
// the Fl::atclose pointer is provided for back compatibility. You