Automated merge with ssh://angela@hg.lindenlab.com/james/gooey

meow-7.2.2
angela 2009-12-04 13:23:20 +08:00
commit 29ed5c88c0
10 changed files with 59 additions and 9 deletions

View File

@ -3717,7 +3717,18 @@
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>0.15</real>
<real>0.5</real>
</map>
<key>InspectorShowTime</key>
<map>
<key>Comment</key>
<string>Stay timing for inspectors</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>3.0</real>
</map>
<key>InstallLanguage</key>
<map>

View File

@ -50,16 +50,16 @@ LLInspect::~LLInspect()
void LLInspect::draw()
{
static LLCachedControl<F32> FADE_TIME(*LLUI::sSettingGroups["config"], "InspectorFadeTime", 1.f);
static LLCachedControl<F32> STAY_TIME(*LLUI::sSettingGroups["config"], "InspectorShowTime", 1.f);
if (mOpenTimer.getStarted())
{
F32 alpha = clamp_rescale(mOpenTimer.getElapsedTimeF32(), 0.f, FADE_TIME, 0.f, 1.f);
LLViewDrawContext context(alpha);
LLFloater::draw();
if (alpha == 1.f)
if (mOpenTimer.getElapsedTimeF32() > STAY_TIME)
{
mOpenTimer.stop();
mCloseTimer.start();
}
}
else if (mCloseTimer.getStarted())
{
@ -95,3 +95,16 @@ void LLInspect::onFocusLost()
mCloseTimer.start();
mOpenTimer.stop();
}
// virtual
BOOL LLInspect::handleHover(S32 x, S32 y, MASK mask)
{
mOpenTimer.pause();
return LLView::handleHover(x, y, mask);
}
// virtual
void LLInspect::onMouseLeave(S32 x, S32 y, MASK mask)
{
mOpenTimer.unpause();
}

View File

@ -46,6 +46,9 @@ public:
/// Inspectors have a custom fade-in/fade-out animation
/*virtual*/ void draw();
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
/*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
/// Start open animation
/*virtual*/ void onOpen(const LLSD& avatar_id);

View File

@ -1696,6 +1696,7 @@ void LLPanelObjectInventory::updateInventory()
mFolders->requestArrange();
mInventoryNeedsUpdate = FALSE;
LLEditMenuHandler::gEditMenuHandler = mFolders;
}
// *FIX: This is currently a very expensive operation, because we have
@ -1940,3 +1941,22 @@ void LLPanelObjectInventory::idle(void* user_data)
self->updateInventory();
}
}
void LLPanelObjectInventory::onFocusLost()
{
// inventory no longer handles cut/copy/paste/delete
if (LLEditMenuHandler::gEditMenuHandler == mFolders)
{
LLEditMenuHandler::gEditMenuHandler = NULL;
}
LLPanel::onFocusLost();
}
void LLPanelObjectInventory::onFocusReceived()
{
// inventory now handles cut/copy/paste/delete
LLEditMenuHandler::gEditMenuHandler = mFolders;
LLPanel::onFocusReceived();
}

View File

@ -74,6 +74,9 @@ public:
virtual void deleteAllChildren();
virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string& tooltip_msg);
/*virtual*/ void onFocusLost();
/*virtual*/ void onFocusReceived();
static void idle(void* user_data);
protected:

View File

@ -32,10 +32,10 @@
function="Edit.EnablePaste" />
</menu_item_call>
<menu_item_call
label="Delete"
layout="topleft"
name="Delete"
shortcut="Del">
label="Delete"
layout="topleft"
name="Delete"
shortcut="Del">
<menu_item_call.on_click
function="Edit.Delete" />
<menu_item_call.on_enable