EXP-1588 FIX Floaters do not snap to edge

made non-movable floaters not use auto-follow logic
toasts will now use own layout logic
meow-7.2.2
Richard Linden 2011-11-15 16:40:31 -08:00
parent a787e1bb7a
commit 30beda590a
2 changed files with 13 additions and 2 deletions

View File

@ -1951,6 +1951,12 @@ void LLFloater::setCanDrag(BOOL can_drag)
}
}
bool LLFloater::getCanDrag()
{
return mDragHandle->getEnabled();
}
void LLFloater::updateTitleButtons()
{
static LLUICachedControl<S32> floater_close_box_size ("UIFloaterCloseBoxSize", 0);
@ -2181,7 +2187,7 @@ void LLFloaterView::reshape(S32 width, S32 height, BOOL called_from_parent)
LLFloater* floaterp = (LLFloater*)viewp;
if (floaterp->isDependent())
{
// dependents use same follow flags as their "dependee"
// dependents are moved with their "dependee"
continue;
}
@ -2209,7 +2215,11 @@ void LLFloaterView::reshape(S32 width, S32 height, BOOL called_from_parent)
translate_y = new_top - old_top;
}
floaterp->translate(translate_x, translate_y);
// don't reposition immovable floaters
if (floaterp->getCanDrag())
{
floaterp->translate(translate_x, translate_y);
}
BOOST_FOREACH(LLHandle<LLFloater> dependent_floater, floaterp->mDependents)
{
if (dependent_floater.get())

View File

@ -234,6 +234,7 @@ public:
void setCanTearOff(BOOL can_tear_off);
virtual void setCanResize(BOOL can_resize);
void setCanDrag(BOOL can_drag);
bool getCanDrag();
void setHost(LLMultiFloater* host);
BOOL isResizable() const { return mResizable; }
void setResizeLimits( S32 min_width, S32 min_height );