diff options
Diffstat (limited to 'src/Fl_Group.cxx')
| -rw-r--r-- | src/Fl_Group.cxx | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/Fl_Group.cxx b/src/Fl_Group.cxx index 7b10dc9f3..b4ef6d91c 100644 --- a/src/Fl_Group.cxx +++ b/src/Fl_Group.cxx @@ -793,36 +793,40 @@ void Fl_Group::draw_outside_label(const Fl_Widget& widget) const { } else { wx = x(); wy = y(); } - if ( (a & 0x0f) == FL_ALIGN_LEFT_TOP ) { - a = (a &~0x0f ) | FL_ALIGN_TOP_RIGHT; + if ( (a & FL_ALIGN_POSITION_MASK) == FL_ALIGN_LEFT_TOP ) { + a = (a &(~FL_ALIGN_POSITION_MASK) ) | FL_ALIGN_TOP_RIGHT; X = wx; W = widget.x()-X-3; - } else if ( (a & 0x0f) == FL_ALIGN_LEFT_BOTTOM ) { - a = (a &~0x0f ) | FL_ALIGN_BOTTOM_RIGHT; + } else if ( (a & FL_ALIGN_POSITION_MASK) == FL_ALIGN_LEFT_BOTTOM ) { + a = (a &(~FL_ALIGN_POSITION_MASK) ) | FL_ALIGN_BOTTOM_RIGHT; X = wx; W = widget.x()-X-3; - } else if ( (a & 0x0f) == FL_ALIGN_RIGHT_TOP ) { - a = (a &~0x0f ) | FL_ALIGN_TOP_LEFT; + } else if ( (a & FL_ALIGN_POSITION_MASK) == FL_ALIGN_RIGHT_TOP ) { + a = (a &(~FL_ALIGN_POSITION_MASK) ) | FL_ALIGN_TOP_LEFT; X = X+W+3; W = wx+this->w()-X; - } else if ( (a & 0x0f) == FL_ALIGN_RIGHT_BOTTOM ) { - a = (a &~0x0f ) | FL_ALIGN_BOTTOM_LEFT; + } else if ( (a & FL_ALIGN_POSITION_MASK) == FL_ALIGN_RIGHT_BOTTOM ) { + a = (a &(~FL_ALIGN_POSITION_MASK) ) | FL_ALIGN_BOTTOM_LEFT; X = X+W+3; W = wx+this->w()-X; } else if (a & FL_ALIGN_TOP) { - a ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP); + a ^= FL_ALIGN_TOP; + a |= FL_ALIGN_BOTTOM; Y = wy; H = widget.y()-Y; } else if (a & FL_ALIGN_BOTTOM) { - a ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP); + a ^= FL_ALIGN_BOTTOM; + a |= FL_ALIGN_TOP; Y = Y+H; H = wy+h()-Y; } else if (a & FL_ALIGN_LEFT) { - a ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT); + a ^= FL_ALIGN_LEFT; + a |= FL_ALIGN_RIGHT; X = wx; W = widget.x()-X-3; } else if (a & FL_ALIGN_RIGHT) { - a ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT); + a ^= FL_ALIGN_RIGHT; + a |= FL_ALIGN_LEFT; X = X+W+3; W = wx+this->w()-X; } |
