summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerwindow.cpp
diff options
context:
space:
mode:
authorRick Pasetto <rick@lindenlab.com>2009-12-03 11:51:15 -0800
committerRick Pasetto <rick@lindenlab.com>2009-12-03 11:51:15 -0800
commit57195ccd74d5873f4b861afe4bf56ccee78a87a2 (patch)
tree1290559a10464692e780d13e5711d90ce07b14da /indra/newview/llviewerwindow.cpp
parente0a7b7608f087b7d3a4b91ba7868e0a5c04aaa86 (diff)
parentc272582ab78d43c595eefb843126c999c09dfd4f (diff)
Automated merge with ssh://rick@hg.lindenlab.com/rick/viewer-2-0-rickcallum
Diffstat (limited to 'indra/newview/llviewerwindow.cpp')
-rw-r--r--indra/newview/llviewerwindow.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 31b30344be..1dcccf41c1 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -823,19 +823,19 @@ BOOL LLViewerWindow::handleMiddleMouseDown(LLWindow *window, LLCoordGL pos, MAS
return TRUE;
}
-BOOL LLViewerWindow::handleDragNDrop( LLWindow *window, LLCoordGL pos, MASK mask, BOOL drop, std::string data, BOOL slurl )
+LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *window, LLCoordGL pos, MASK mask, BOOL drop, std::string data)
{
- BOOL result = FALSE;
+ LLWindowCallbacks::DragNDropResult result = LLWindowCallbacks::DND_NONE;
if (gSavedSettings.getBOOL("PrimMediaDragNDrop"))
{
// special case SLURLs
- if ( drop && slurl )
+ if ( drop && std::string::npos != data.find("slurl.com") )
{
LLURLDispatcher::dispatch( data, NULL, true );
LLURLSimString::setString( LLSLURL::stripProtocol( data ) );
LLPanelLogin::refreshLocation( true );
LLPanelLogin::updateLocationUI();
- return TRUE;
+ return LLWindowCallbacks::DND_MOVE;
};
LLPickInfo pick_info = pickImmediate( pos.mX, pos.mY, TRUE /*BOOL pick_transparent*/ );
@@ -867,24 +867,30 @@ BOOL LLViewerWindow::handleDragNDrop( LLWindow *window, LLCoordGL pos, MASK mas
// XXX This shouldn't be necessary, should it ?!?
obj->getMediaImpl(object_face)->navigateReload();
obj->sendMediaDataUpdate();
+
+ result = LLWindowCallbacks::DND_COPY;
}
else {
// just navigate to the URL
obj->getMediaImpl(object_face)->navigateTo(url);
+
+ result = LLWindowCallbacks::DND_LINK;
}
LLSelectMgr::getInstance()->unhighlightObjectOnly(mDragHoveredObject);
mDragHoveredObject = NULL;
+
}
else {
mDragHoveredObject = obj;
// Highlight the dragged object
LLSelectMgr::getInstance()->highlightObjectOnly(mDragHoveredObject);
+
+ result = (! te->hasMedia()) ? LLWindowCallbacks::DND_COPY : LLWindowCallbacks::DND_LINK;
}
- result = TRUE;
}
}
- if (!result && !mDragHoveredObject.isNull())
+ if (result == LLWindowCallbacks::DND_NONE && !mDragHoveredObject.isNull())
{
LLSelectMgr::getInstance()->unhighlightObjectOnly(mDragHoveredObject);
mDragHoveredObject = NULL;
@@ -3316,8 +3322,8 @@ LLPickInfo LLViewerWindow::pickImmediate(S32 x, S32 y_from_bot, BOOL pick_trans
}
else
{
- llwarns << "List of last picks is empty" << llendl;
- llwarns << "Using stub pick" << llendl;
+ lldebugs << "List of last picks is empty" << llendl;
+ lldebugs << "Using stub pick" << llendl;
mLastPick = LLPickInfo();
}