summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorRick Pasetto <rick@lindenlab.com>2009-11-12 11:06:29 -0800
committerRick Pasetto <rick@lindenlab.com>2009-11-12 11:06:29 -0800
commitbf5ce0fcbd9a71ce1372db0f42395ba47747fd78 (patch)
tree10eca747caca961efcbcfa6f173f4118232b1929 /indra/newview
parent3dd79ad226bc8e0aec18dba87223a3f50ecf360b (diff)
Change 'handleDrop()' API to 'handleDragNDrop', which now takes a "drop" BOOL
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llviewerwindow.cpp39
-rw-r--r--indra/newview/llviewerwindow.h2
2 files changed, 24 insertions, 17 deletions
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 06d6819b5e..d2f81f21ac 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -819,8 +819,9 @@ BOOL LLViewerWindow::handleMiddleMouseDown(LLWindow *window, LLCoordGL pos, MAS
return TRUE;
}
-BOOL LLViewerWindow::handleDrop( LLWindow *window, LLCoordGL pos, MASK mask, std::string data )
+BOOL LLViewerWindow::handleDragNDrop( LLWindow *window, LLCoordGL pos, MASK mask, BOOL drop, std::string data )
{
+ BOOL result = FALSE;
if (gSavedSettings.getBOOL("PrimMediaDragNDrop"))
{
LLPickInfo pick_info = pickImmediate( pos.mX, pos.mY, TRUE /*BOOL pick_transparent*/ );
@@ -837,28 +838,34 @@ BOOL LLViewerWindow::handleDrop( LLWindow *window, LLCoordGL pos, MASK mask, st
LLTextureEntry *te = obj->getTE(object_face);
if (te)
{
- if (! te->hasMedia())
+ if (drop)
{
- // Create new media entry
- LLSD media_data;
- // XXX Should we really do Home URL too?
- media_data[LLMediaEntry::HOME_URL_KEY] = url;
- media_data[LLMediaEntry::CURRENT_URL_KEY] = url;
- media_data[LLMediaEntry::AUTO_PLAY_KEY] = true;
- obj->syncMediaData(object_face, media_data, true, true);
- // XXX This shouldn't be necessary, should it ?!?
- obj->getMediaImpl(object_face)->navigateReload();
- obj->sendMediaDataUpdate();
+ if (! te->hasMedia())
+ {
+ // Create new media entry
+ LLSD media_data;
+ // XXX Should we really do Home URL too?
+ media_data[LLMediaEntry::HOME_URL_KEY] = url;
+ media_data[LLMediaEntry::CURRENT_URL_KEY] = url;
+ media_data[LLMediaEntry::AUTO_PLAY_KEY] = true;
+ obj->syncMediaData(object_face, media_data, true, true);
+ // XXX This shouldn't be necessary, should it ?!?
+ obj->getMediaImpl(object_face)->navigateReload();
+ obj->sendMediaDataUpdate();
+ }
+ else {
+ // just navigate to the URL
+ obj->getMediaImpl(object_face)->navigateTo(url);
+ }
}
else {
- // just navigate to the URL
- obj->getMediaImpl(object_face)->navigateTo(url);
+ // XXX TODO: make object glow? Hard because how do we "unglow?"
}
+ result = TRUE;
}
}
}
- // Always handled as far as the OS is concerned.
- return TRUE;
+ return result;
}
BOOL LLViewerWindow::handleMiddleMouseUp(LLWindow *window, LLCoordGL pos, MASK mask)
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index cdc9eb4786..d7cfcff925 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -170,7 +170,7 @@ public:
/*virtual*/ BOOL handleRightMouseUp(LLWindow *window, LLCoordGL pos, MASK mask);
/*virtual*/ BOOL handleMiddleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask);
/*virtual*/ BOOL handleMiddleMouseUp(LLWindow *window, LLCoordGL pos, MASK mask);
- /*virtual*/ BOOL handleDrop(LLWindow *window, LLCoordGL pos, MASK mask, std::string data);
+ /*virtual*/ BOOL handleDragNDrop(LLWindow *window, LLCoordGL pos, MASK mask, BOOL drop, std::string data);
void handleMouseMove(LLWindow *window, LLCoordGL pos, MASK mask);
/*virtual*/ void handleMouseLeave(LLWindow *window);
/*virtual*/ void handleResize(LLWindow *window, S32 x, S32 y);