6578041: Drag & Drop from Motif to Java does not work
Fixing java's interpretation of unsigned 32bit int as signed during an implicit conversion to 64bit int. Reviewed-by: denis, chrisphi
This commit is contained in:
parent
906b261821
commit
81df9d108c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* 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 ||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* 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;
|
||||
|
Loading…
Reference in New Issue
Block a user