summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAlexei Arabadji <aarabadji@productengine.com>2009-11-17 14:33:07 +0200
committerAlexei Arabadji <aarabadji@productengine.com>2009-11-17 14:33:07 +0200
commitd43e33400a2ef9d89ed6d13067055b5b1edbde78 (patch)
treefbe8c90595e6b629723fb2cde6d682eb21dbb9a4 /indra
parent4b80c9978c48b6a9eaac2ed358e81cf06f3e2cb5 (diff)
implemented EXT-2515 "Docked floaters should be resizeable";
--HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/lldockablefloater.cpp10
-rw-r--r--indra/llui/lldockablefloater.h1
-rw-r--r--indra/llui/lldockcontrol.cpp5
-rw-r--r--indra/llui/lldockcontrol.h1
-rw-r--r--indra/newview/llimfloater.cpp2
-rw-r--r--indra/newview/llnearbychat.cpp11
-rw-r--r--indra/newview/llnearbychat.h2
-rw-r--r--indra/newview/llsyswellwindow.cpp4
-rw-r--r--indra/newview/skins/default/xui/en/floater_nearby_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_sys_well.xml2
10 files changed, 23 insertions, 17 deletions
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index c3dd4ae647..9be3d49023 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -217,6 +217,16 @@ 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 46491d8a29..e5f94dca91 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -65,6 +65,7 @@ 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/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp
index 045505af5b..456a2925a3 100644
--- a/indra/llui/lldockcontrol.cpp
+++ b/indra/llui/lldockcontrol.cpp
@@ -266,6 +266,11 @@ void LLDockControl::off()
mEnabled = false;
}
+void LLDockControl::forceRecalculatePosition()
+{
+ mRecalculateDocablePosition = true;
+}
+
void LLDockControl::drawToungue()
{
if (mEnabled)
diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h
index eaedb4c307..30a45bedc7 100644
--- a/indra/llui/lldockcontrol.h
+++ b/indra/llui/lldockcontrol.h
@@ -63,6 +63,7 @@ public:
public:
void on();
void off();
+ void forceRecalculatePosition();
void setDock(LLView* dockWidget);
LLView* getDock()
{
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index e3121fbc7a..b56e858086 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -367,8 +367,6 @@ void LLIMFloater::setDocked(bool docked, bool pop_on_undock)
LLNotificationsUI::LLScreenChannel* channel = dynamic_cast<LLNotificationsUI::LLScreenChannel*>
(LLNotificationsUI::LLChannelManager::getInstance()->
findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
-
- setCanResize(!docked);
LLTransientDockableFloater::setDocked(docked, pop_on_undock);
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 029019a8dc..6cac5385b6 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -89,8 +89,6 @@ BOOL LLNearbyChat::postBuild()
mChatHistory = getChild<LLChatHistory>("chat_history");
- setCanResize(true);
-
if(!LLDockableFloater::postBuild())
return false;
@@ -98,7 +96,7 @@ BOOL LLNearbyChat::postBuild()
{
setDockControl(new LLDockControl(
LLBottomTray::getInstance()->getNearbyChatBar(), this,
- getDockTongue(), LLDockControl::LEFT, boost::bind(&LLNearbyChat::getAllowedRect, this, _1)));
+ getDockTongue(), LLDockControl::TOP, boost::bind(&LLNearbyChat::getAllowedRect, this, _1)));
}
return true;
@@ -187,13 +185,6 @@ void LLNearbyChat::onOpen(const LLSD& key )
}
}
-void LLNearbyChat::setDocked (bool docked, bool pop_on_undock)
-{
- LLDockableFloater::setDocked(docked, pop_on_undock);
-
- setCanResize(!docked);
-}
-
void LLNearbyChat::setRect (const LLRect &rect)
{
LLDockableFloater::setRect(rect);
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 1f4e57cf89..2f72d65720 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -51,8 +51,6 @@ public:
void onNearbyChatContextMenuItemClicked(const LLSD& userdata);
bool onNearbyChatCheckContextMenuItem(const LLSD& userdata);
- void setDocked (bool docked, bool pop_on_undock = true);
-
/*virtual*/ void onOpen (const LLSD& key);
virtual void setRect (const LLRect &rect);
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index eada387945..04ecf769d5 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -332,7 +332,9 @@ void LLSysWellWindow::reshapeWindow()
new_window_height = MAX_WINDOW_HEIGHT;
}
S32 newY = curRect.mTop + new_window_height - curRect.getHeight();
- curRect.setLeftTopAndSize(curRect.mLeft, newY, MIN_WINDOW_WIDTH, new_window_height);
+ S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH
+ : curRect.getWidth();
+ curRect.setLeftTopAndSize(curRect.mLeft, newY, newWidth, new_window_height);
reshape(curRect.getWidth(), curRect.getHeight(), TRUE);
setRect(curRect);
diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
index 7f58ea132e..84e549f773 100644
--- a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
@@ -3,7 +3,7 @@
legacy_header_height="18"
can_minimize="true"
can_tear_off="false"
- can_resize="false"
+ can_resize="true"
can_drag_on_left="false"
can_close="false"
can_dock="true"
diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml
index e1f07a49e7..be6d63716c 100644
--- a/indra/newview/skins/default/xui/en/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml
@@ -15,7 +15,7 @@
height="23"
can_minimize="true"
can_tear_off="false"
- can_resize="false"
+ can_resize="true"
can_drag_on_left="false"
can_close="false"
can_dock="true"