From b5a73c78e61c18f4d08aec39a6edf5b19b1dbfd4 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Sat, 30 Oct 2010 21:32:15 +0000 Subject: Fixed label alignment (STR #2436) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7782 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Group.cxx | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/Fl_Group.cxx') diff --git a/src/Fl_Group.cxx b/src/Fl_Group.cxx index a84cd2d7e..c25e7fffc 100644 --- a/src/Fl_Group.cxx +++ b/src/Fl_Group.cxx @@ -789,38 +789,44 @@ void Fl_Group::draw_outside_label(const Fl_Widget& widget) const { int Y = widget.y(); int W = widget.w(); int H = widget.h(); + int wx, wy; + if (const_cast(this)->as_window()) { + wx = wy = 0; + } else { + wx = x(); wy = y(); + } if ( (a & 0x0f) == FL_ALIGN_LEFT_TOP ) { a = (a &~0x0f ) | FL_ALIGN_TOP_RIGHT; - X = x(); + X = wx; W = widget.x()-X-3; } else if ( (a & 0x0f) == FL_ALIGN_LEFT_BOTTOM ) { a = (a &~0x0f ) | FL_ALIGN_BOTTOM_RIGHT; - X = x(); + X = wx; W = widget.x()-X-3; } else if ( (a & 0x0f) == FL_ALIGN_RIGHT_TOP ) { a = (a &~0x0f ) | FL_ALIGN_TOP_LEFT; X = X+W+3; - W = x()+this->w()-X; + W = wx+this->w()-X; } else if ( (a & 0x0f) == FL_ALIGN_RIGHT_BOTTOM ) { a = (a &~0x0f ) | FL_ALIGN_BOTTOM_LEFT; X = X+W+3; - W = x()+this->w()-X; + W = wx+this->w()-X; } else if (a & FL_ALIGN_TOP) { a ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP); - Y = y(); + Y = wy; H = widget.y()-Y; } else if (a & FL_ALIGN_BOTTOM) { a ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP); Y = Y+H; - H = y()+h()-Y; + H = wy+h()-Y; } else if (a & FL_ALIGN_LEFT) { a ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT); - X = x(); + X = wx; W = widget.x()-X-3; } else if (a & FL_ALIGN_RIGHT) { a ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT); X = X+W+3; - W = x()+this->w()-X; + W = wx+this->w()-X; } widget.draw_label(X,Y,W,H,(Fl_Align)a); } -- cgit v1.2.3