< prev index next >
src/java.desktop/windows/native/libawt/windows/awt_DnDDT.cpp
Print this page
*** 125,134 ****
--- 125,144 ----
if ((refs = --m_refs) == 0) delete this;
return (ULONG)refs;
}
+ void ScaleDown(POINT &cp, HWND m_window) {
+ int screen = AwtWin32GraphicsDevice::DeviceIndexForWindow(m_window);
+ Devices::InstanceAccess devices;
+ AwtWin32GraphicsDevice* device = devices->GetDevice(screen);
+ if (device) {
+ cp.x = device->ScaleDownX(cp.x);
+ cp.y = device->ScaleDownY(cp.y);
+ }
+ }
+
/**
* DragEnter
*/
HRESULT __stdcall AwtDropTarget::DragEnter(IDataObject __RPC_FAR *pDataObj, DWORD grfKeyState, POINTL pt, DWORD __RPC_FAR *pdwEffect) {
*** 174,183 ****
--- 184,194 ----
::GetWindowRect(m_window, &wr);
cp.x = pt.x - wr.left;
cp.y = pt.y - wr.top;
+ ScaleDown(cp, m_window);
jint actions = call_dTCenter(env, m_dtcp, m_target,
(jint)cp.x, (jint)cp.y,
::convertDROPEFFECTToActions(mapModsToDROPEFFECT(*pdwEffect, grfKeyState)),
::convertDROPEFFECTToActions(*pdwEffect),
*** 235,244 ****
--- 246,256 ----
::GetWindowRect(m_window, &wr);
cp.x = pt.x - wr.left;
cp.y = pt.y - wr.top;
+ ScaleDown(cp, m_window);
actions = call_dTCmotion(env, m_dtcp, m_target,(jint)cp.x, (jint)cp.y,
::convertDROPEFFECTToActions(mapModsToDROPEFFECT(*pdwEffect, grfKeyState)),
::convertDROPEFFECTToActions(*pdwEffect),
m_cfFormats, (jlong)this);
*** 334,343 ****
--- 346,356 ----
::GetWindowRect(m_window, &wr);
cp.x = pt.x - wr.left;
cp.y = pt.y - wr.top;
+ ScaleDown(cp, m_window);
m_dropActions = java_awt_dnd_DnDConstants_ACTION_NONE;
call_dTCdrop(env, m_dtcp, m_target, (jint)cp.x, (jint)cp.y,
::convertDROPEFFECTToActions(mapModsToDROPEFFECT(*pdwEffect, grfKeyState)),
< prev index next >