From e57f6a5cee1cf03df2bf43cd7a8b2c42c3918f8b Mon Sep 17 00:00:00 2001
From: Callum Prentice <callum@lindenlab.com>
Date: Thu, 7 Jan 2010 14:21:57 -0800
Subject: [PATCH] Fix drag and drop for windows. Makes Win32 state machine
 behave more like Mac.

---
 indra/llwindow/lldragdropwin32.cpp | 2 +-
 indra/newview/llviewerwindow.cpp   | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/indra/llwindow/lldragdropwin32.cpp b/indra/llwindow/lldragdropwin32.cpp
index 4865570f07d..1e10626e8a0 100644
--- a/indra/llwindow/lldragdropwin32.cpp
+++ b/indra/llwindow/lldragdropwin32.cpp
@@ -189,7 +189,7 @@ class LLDragDropWin32Target:
 					MASK mask = gKeyboard->currentMask(TRUE);
 
 					LLWindowCallbacks::DragNDropResult result = window_imp->completeDragNDropRequest( gl_coord, mask, 
-						LLWindowCallbacks::DNDA_TRACK, std::string( "" ) );
+						LLWindowCallbacks::DNDA_TRACK, mDropUrl );
 					
 					switch (result)
 					{
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 02b81581886..81fcfc13c2d 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -835,6 +835,7 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
 			// Much of the handling for these two cases is the same.
 			case LLWindowCallbacks::DNDA_TRACK:
 			case LLWindowCallbacks::DNDA_DROPPED:
+			case LLWindowCallbacks::DNDA_START_TRACKING:
 			{
 				bool drop = (LLWindowCallbacks::DNDA_DROPPED == action);
 					
@@ -925,10 +926,6 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
 			}
 			break;
 			
-			case LLWindowCallbacks::DNDA_START_TRACKING:
-				// No special handling here yet -- we'll actually start tracking on the first DNDA_TRACK event.
-			break;
-			
 			case LLWindowCallbacks::DNDA_STOP_TRACKING:
 				// The cleanup case below will make sure things are unhilighted if necessary.
 			break;
-- 
GitLab