summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Arabadji <aarabadji@productengine.com>2009-11-18 11:35:11 +0200
committerAlexei Arabadji <aarabadji@productengine.com>2009-11-18 11:35:11 +0200
commit215b95eb64ebea58d6f2bda5f90e307836aca093 (patch)
treead655f4b231eed07b163db8f07911755cf287b09
parentc76ab6c4b7384e34a4f32f2fa820b46f6373cdc3 (diff)
related to EXT-2515 "Docked floaters should be resizeable"
avoid undock floater when resize initiated not by user --HG-- branch : product-engine
-rw-r--r--indra/llui/lldockablefloater.cpp10
-rw-r--r--indra/llui/lldockablefloater.h1
-rw-r--r--indra/llui/llresizehandle.cpp6
3 files changed, 6 insertions, 11 deletions
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index 9a2f2ab4d3..9c69e4f2b6 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -206,16 +206,6 @@ void LLDockableFloater::draw()
LLFloater::draw();
}
-void LLDockableFloater::reshape(S32 width, S32 height, BOOL called_from_parent)
-{
- if (isDocked())
- {
- setDocked(false);
- }
-
- LLFloater::reshape(width, height, called_from_parent);
-}
-
void LLDockableFloater::setDockControl(LLDockControl* dockControl)
{
mDockControl.reset(dockControl);
diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h
index e5f94dca91..46491d8a29 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -65,7 +65,6 @@ public:
/* virtula */BOOL postBuild();
/* virtual */void setDocked(bool docked, bool pop_on_undock = true);
/* virtual */void draw();
- /* virtual */void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
/**
* If descendant class overrides setVisible() then it must still invoke its
diff --git a/indra/llui/llresizehandle.cpp b/indra/llui/llresizehandle.cpp
index 7449c339a0..6239a8f721 100644
--- a/indra/llui/llresizehandle.cpp
+++ b/indra/llui/llresizehandle.cpp
@@ -135,6 +135,12 @@ BOOL LLResizeHandle::handleHover(S32 x, S32 y, MASK mask)
LLView* resizing_view = getParent();
if( resizing_view )
{
+ // undock floater when user resize it
+ if (((LLFloater*)getParent())->isDocked())
+ {
+ ((LLFloater*)getParent())->setDocked(false, false);
+ }
+
// Resize the parent
LLRect orig_rect = resizing_view->getRect();
LLRect scaled_rect = orig_rect;