bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#18303: Drag and Drop fails when Emacs window/frame is above top


From: Jan Djärv
Subject: bug#18303: Drag and Drop fails when Emacs window/frame is above top
Date: Mon, 8 Sep 2014 07:04:54 +0200

Hello.

7 sep 2014 kl. 21:50 skrev Paul Eggert <eggert@cs.ucla.edu>:

> Thanks for the patch.  I noticed that '(v1 << 16) | v2' wouldn't work as 
> desired when v2 < 0, though, as v2's sign bits will bleed into v1's encoded 
> value.  I installed an attempt at a fix as trunk bzr 117836.

Thanks, but it does not look right.  We can assume v1 and v2 are 16 bit signed 
integers (X coordinates).  In general, when data is a CONS, it must be two 16 
bit numbers.
So (v1 << 16) | v2 is just a way of stuffing two signed 16 bits into 32 bits.
But when v2 is long,  (v2 & 0xffff) looses the sign bit, as the code is now.

I don't know why the range X_LONG_(MIN|MAX) >> 16 is relevant here, it is way 
too large.
Remember, val can only be 32 bit, so X_LONG_MAX >> 16 can in it self be 48 bits.
Maybe just convert v1 and v2 to two signed 16 bit numbers (int16_t?) and shift?

        Jan D.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]