Изображение SWT DragSourceEvent неправильно привязано к указателю мыши

У меня возникает следующая проблема при перетаскивании из средства просмотра дерева в SWT. Я устанавливаю атрибут изображения dragSourceEvent, например.

event.image = _dragImage 

который отлично работает, ЗА ИСКЛЮЧЕНИЕМ тех случаев, когда у меня есть длинная метка на моем узле просмотра дерева. Если у меня длинная строка и я начинаю событие перетаскивания с дальнего правого края заголовка на узле, я замечаю, что изображение перетаскивания неправильно закреплено и фактически смещено на X пикселей в соответствии с расстоянием от начала узла дерева строка до конца строки узла дерева.

Есть какие-нибудь предложения? Йи, вероятно, потребуется демо, чтобы понять это. Кто-нибудь это видел?


person Forrie    schedule 13.12.2013    source источник
comment
Не могли бы вы добавить снимок экрана (хотя бы ссылку на один) и SSCCE, чтобы мы могли воспроизвести вашу проблему?   -  person Baz    schedule 16.12.2013
comment
Вот снимок экрана, на котором начинается операция перетаскивания из крайнего правого угла метки элемента дерева (показано) - вы увидите фантомное изображение оборудования, которое я перетаскиваю и НЕ правильно привязано к указателю мыши. Отличие от XOffset указателя - это примерно начальная точка метки до конца метки. См. Ссылку: s28.postimg.org/qzf41xxzx/screenshot.png   -  person Forrie    schedule 17.12.2013


Ответы (1)


Если вы установите для полей event.offsetX и event.offsetY значение 0, левый верхний угол изображения будет помещен точно на указатель мыши.

Если вы установите для них значение 100, он поместит верхний левый угол изображения на 100 пикселей влево и над указателем мыши.

SWT предварительно подставляет эти числа, пытаясь выровнять изображение со смещением исходного клика. Не уверен, почему это не работает в вашем случае.

person Ned Twigg    schedule 28.04.2014