提交 e5ea1cef 编写于 作者: D dmeetry

6578041: Drag & Drop from Motif to Java does not work.

Summary: fixing java's interpretation of unsigned 32bit int as signed during an implicit conversion to 64bit int.
Reviewed-by: denis, chrisphi
上级 464fd3e0
/*
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -134,7 +134,8 @@ class MotifDnDDragSourceProtocol extends XDragSourceProtocol
if (swapNeeded) {
t = MotifDnDConstants.Swapper.swap(t);
}
long time = t;
long time = t & 0xffffffffL;
// with correction of (32-bit unsigned to 64-bit signed) implicit conversion.
/* Discard events from the previous receiver. */
if (targetEnterServerTime == XConstants.CurrentTime ||
......
/*
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -928,7 +928,9 @@ class MotifDnDDropTargetProtocol extends XDropTargetProtocol {
throw new IOException("Cannot get data: drag source property atom unavailable");
}
long time_stamp = MotifDnDConstants.Swapper.getInt(data + 4, eventByteOrder);
long time_stamp = MotifDnDConstants.Swapper.getInt(data + 4, eventByteOrder) & 0xffffffffL;
// with correction of (32-bit unsigned to 64-bit signed) implicit conversion.
XAtom selectionAtom = XAtom.get(selatom);
XSelection selection = XSelection.getSelection(selectionAtom);
......@@ -962,7 +964,9 @@ class MotifDnDDropTargetProtocol extends XDropTargetProtocol {
return false;
}
long time_stamp = MotifDnDConstants.Swapper.getInt(data + 4, eventByteOrder);
long time_stamp = MotifDnDConstants.Swapper.getInt(data + 4, eventByteOrder) & 0xffffffffL;
// with correction of (32-bit unsigned to 64-bit signed) implicit conversion.
long sel_atom = MotifDnDConstants.Swapper.getInt(data + 12, eventByteOrder);
long status_atom = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册