This is the mail archive of the cygwin-xfree mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Running Java application with drag and drop support in cygwin


On Fri, Nov 13, 2009 at 8:26 PM, Jon TURNEY <jon.turney@dronecode.org.uk> wrote:
> On 30/10/2009 09:06, Dees wrote:
>>
>> Your reply is much appreciated Jon. I will try to be more specific
>> about the problem in further mails.
>>
>> On Thu, Oct 29, 2009 at 8:11 PM, Jon TURNEY<jon.turney@dronecode.org.uk>
>> Âwrote:
>>>
>>> On 28/10/2009 05:57, Dees wrote:
>>>>
>>>> I have developed a Java application involving jTree with extensive
>>>> drag and drop support, which runs correctly in my Linux box. However,
>>>> when I switch to a windows box and access the same Linux box using
>>>> cygwin x-server, the drag and drop in jTree stops working.
>>>> Interestingly, rest of the application still works fine. After
>>>> analyzing a bit I found that x-server is able to recognize the drag
>>>> event but fails to recognize a drop event.
>>>
>>> Details?
>>
>> OS : Suse Linux Enterprise Server 10 (i586)
>> Version : 10
>> Patch level : 3
>> Other version information:
>> Java : JDK 5
>> Cygwin setup-version: 2.573.2.3
>> Also tried using Xming 6.9.0.31 ssh same Linux setup from Windows, but
>> that also doesn't solve the problem.
>>
>>>
>>>> Is there any setting, which should be done prior to running the Java
>>>> swing applications?
>>>>
>>>> Here is a sample code which behaves in exactly same way.
>>>> http://www.java2s.com/Code/Java/Swing-JFC/TreeDragandDrop.htm
>>>
>>> I have no idea how to use that java code to reproduce the problem you are
>>> seeing.
>>
>> Using the above java code in Linux:
>> 1. Download and Install Java Development Toolkit on your Linux box
>> (Java sun download site:
>> http://java.sun.com/javase/downloads/index.jsp), if you do not have it
>> already.
>> 2. Save the sample code in the above link with the file name
>> TreeTester.java, say in /home/user/
>> 3. Navigate to TreeTester.java from shell, and compile the java code:
>> Â Â Â Â# cd /home/user/
>> Â Â Â Â# /usr/java/jdk1.5.0_14/bin/javac TreeTester.java
>> Â ÂIgnore any warnings of deprecated APIs.
>> 4. This will create a few .class files in /home/user/ directory. Final
>> step is to run the Java code, using:
>> Â Â Â Â# /usr/java/jdk1.5.0_14/bin/java -classpath . TreeTester
>> Â ÂThis will open up a GUI, with a jTree each on left and right pane.
>> You can drag and drop any of the leaf nodes from one jTree to the root
>> node of the other jTree and this should add a new node in the other
>> jTree. You will get messages on console for the operations being
>> performed. Now ssh the same box using cygwin/xming from any other
>> windows box, and run the application using command in step 4. You
>> should be able to drag (a small icon will come under cursor indicating
>> that something is being dragged) but when you will drop it, the new
>> node would not be added to the tree. Thats where lies my problem!!!
>
> Thanks for the test case and instructions, this makes it much easier for me
> to try it out.
>
> However, this testcase and your jar archive both work fine for me (using
> Xserver 1.7.1-3)!
>
>>>> May be my problem is related to some setting. Though, not sure.
>>>> Has anybody come across something similar? What should be done then?
>>>> Please let me know.
>>>
>>> No it's probably a bug in Cygwin/X. ÂBut you're going to need to be a lot
>>> more specific about the problem before any progress can be made on fixing
>>> it.
>
>> Also, putting some debug messages in the code lets me conclude that
>> it's the drop event which is not being recognized, as the main control
>> never reaches there.
>
> There is not really any drop event, as far as the X server is concerned,
> just mouse click and motion events, which are passed on to you application
> (which has a framework to interpret them as dragging and dropping an item).
>
> Now having a better idea of the problem, it seems less likely it is an
> Xserver bug at all. ÂThe only Xserver cause I can think of would be if it
> was somehow not sending the correct events to your applications window,
> which you could test using xev -id <your applications window id> (you can
> use xwininfo to find the window id)
>
I have tried this, but could not get any idea if any event is going wrong.
Here is the output of xev -id 0xe00021 (only for drag and drop event):

LeaveNotify event, serial 13, synthetic NO, window 0xe00021,
    root 0x5a, subw 0xe00025, time 3560250, (87,65), root:(91,95),
    mode NotifyGrab, detail NotifyVirtual, same_screen YES,
    focus YES, state 256

FocusOut event, serial 13, synthetic NO, window 0xe00021,
    mode NotifyGrab, detail NotifyAncestor

EnterNotify event, serial 13, synthetic NO, window 0xe00021,
    root 0x5a, subw 0xe00025, time 3565375, (212,48), root:(216,78),
    mode NotifyUngrab, detail NotifyVirtual, same_screen YES,
    focus YES, state 0

KeymapNotify event, serial 13, synthetic NO, window 0x0,
    keys:  90  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

FocusIn event, serial 13, synthetic NO, window 0xe00021,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 13, synthetic NO, window 0x0,
    keys:  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

LeaveNotify event, serial 13, synthetic NO, window 0xe00021,
    root 0x5a, subw 0xe00025, time 3569046, (205,211), root:(209,241),
    mode NotifyNormal, detail NotifyNonlinearVirtual, same_screen YES,
    focus YES, state 0

Does the window 0x0 in two events in the log(above) signify anything
misbehaving?
Your reply is much awaited and appreciated.


> --
> Jon TURNEY
> Volunteer Cygwin/X X Server maintainer
>

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]