Feature Request Tracker item #3482254, was opened at 2012-01-31 08:47 Message generated for change (Comment added) made by bphinz You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126849&aid=3482254&group_id=254363
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Albert Fluegel (afluegel) Assigned to: Nobody/Anonymous (nobody) Summary: Several enhancements of the Java Viewer of 1.1.0 Initial Comment: The attached patch implements several enhancements to the Java Viewer * Fullscreen mode (real fullscreen in the root window, not just maximize the managed window) * Keepalive mode (to work around certain firewall issues when idle) * Mouse Wheel events supported * Copy/Paste from / to the host system without needing the clipboard window * Handle different keycode sequences on windows 7 correctly * Some rework of the Makefile to really build a working jar by running make in the vncviewer directory The patched version will be incorporated into the webtop software http://sourceforge.net/projects/weblogin soon. ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-02-06 10:03 Message: > As far as i remember i ran into issues with the swing timer class with > older Java. However, if it works now ... All the more reason to hold it back from 1.2 I guess. I did not see any issues in the (limited) testing that I performed however. The timer was clearly sending the dummy framebuffer update requests at the specified interval in the absence of application data, and the dummy requests did not seem to present any issues for the server. > e.g. Alt-F3 or Alt-Tab. It requires exclusive mode to get them effective Are you sure? ALT+TAB works for me. There are keycodes that do get grabbed by the window manager (like the one in WindowsXP that opens the windows desktop manager, or whatever it's called). I was under the impression that some of those could not be bypassed, but if exclusive mode does that it would be great. I will try to look at this some more ASAP but it probably won't be for a few days. ---------------------------------------------------------------------- Comment By: Albert Fluegel (afluegel) Date: 2012-02-06 08:41 Message: As far as i remember i ran into issues with the swing timer class with older Java. However, if it works now ... Full screen: the unconvenient thing is, that keyboard shortcuts regarding window management are caught by the outside window manager and processed e.g. Alt-F3 or Alt-Tab. It requires exclusive mode to get them effective inside the viewer Applet Code: Ok it works. The Server parameter must be set and the port parameter left unset. Thanks so far !!! Hope i find the time to check the keyboard related stuff tomorrow. ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-02-05 20:56 Message: I patched the trunk version to add keepalives support, but I'm going to hold on committing it until 1.2 is branched (I would attach a patch file here if I could...). It's a slightly different implementation using a javax.swing.Timer and restarting the timer whenever a framebufferUpdate, keyEvent, or mouseEvent occurs. I tested it out and it seems to work as expected. The timing here is somewhat unfortunate because it's probably just a little too late for this to make it into the 1.2 release and the trunk may be a little too unstable for your purposes. So you might have to back-port into 1.2 or continue on with 1.1 and your original patch, at least for the short term. As for the remaining issues: * Mouse wheel events and cut/copy/paste are already supported in the 1.2+ viewer * CMake is our build system of choice, so I don't anticipate changes in that regard. * Please try out fullscreen mode with the new viewer. I realize that it's not true fullscreen-exclusive mode, but it may be sufficient for now. * Applet mode - I have not had a chance to look at this yet, but have you tried the -server parameter specified as server::port? * Key modifiers - AFAIK the CTRL+SHIFT+... modifiers are all working, although I cannot say either way about the German keyboard issue. ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-02-03 05:00 Message: It's no problem. Thanks. The keepalives should be very easy to implement and I'll try to get to that this weekend. I only use applet mode very rarely, but it should honor the parameters supplied via the html request. I will try to duplicate the problem and correct as necessary. ---------------------------------------------------------------------- Comment By: Albert Fluegel (afluegel) Date: 2012-02-03 03:09 Message: Sorry sorry sorry Mr. Hinz i misunderstood you. Please forgive me, i'm not a native speaker. And of course there's no problem that things take time when volunteering. Same happens to me now: won't find the time this week to merge into 1.1.90. The changes seem to be bigger then to 1.1.0. I'd really like to know, whether the impossibility to change the VNC server when running as applet is my fault or some kind of bug. ---------------------------------------------------------------------- Comment By: D. R. Commander (dcommander) Date: 2012-02-02 20:44 Message: I'm having the same problem with downloading SourceForge tracker attachments. I think it's a SF bug, as it magically started happening a week or so ago, and I haven't changed anything in my browser. The same bug seems to happen whenever I try to wget the attachment as well. However, for me, it works when I use Safari rather than Firefox. ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-02-02 20:40 Message: > ... I smell what > this is going to be again as usual: Maintainer: "Why is that needed ? I > think it's not needed. I won't implement that". So i'll have to apply my > local patch forever or let the implementation die ... Huh? I said that I have no problem with it at all. I don't get paid to do this. If it takes me a couple days to get it done then that's the price of free software. I would think that as a FOSS project maintainer yourself that you would understand. As for the patch file, I tried downloading it three times last night and got nothing but some kind of html as well. If you want, you can email it to my sourceforge users account (bphinz). ---------------------------------------------------------------------- Comment By: Albert Fluegel (afluegel) Date: 2012-02-02 19:07 Message: Keepalives: Sure it should be optional and is a parameter "Keepalive" to be given in seconds. The rate of the normal TCP keepalive is afaik a system wide setting and by default once in 2 hours, what is far too long for our case and normally one does not want to change such a system wide setting. So i did not see an alternative to an application level keepalive. I smell what this is going to be again as usual: Maintainer: "Why is that needed ? I think it's not needed. I won't implement that". So i'll have to apply my local patch forever or let the implementation die ... Regarding 1.1.90: When running it as applet in a browser, i did not manage to change the VNC server. It's seems to be always the loopback address. Neither the parameter "host" nor "server" did help. Shortly looking at the code it seems to me (not sure), that after evaluating the parameter, the server is later unconditionally set. When trying to download the uploaded file i observed a strange thing: Had to do it several times to receive the correct file contents. Most times i get some HTML data containing java script to download statistics or what. Clicking the checkbox on the left seems to help somewhat, but not sure. I guess this is a sourceforge bug. ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-02-01 07:48 Message: I haven't looked at the patch yet but will do so tonight. Thanks. Regarding keepalive: Shouldn't be a problem, we're already disabling Nagle's algorithm and keepalive is set the same way. Unlike TcpNoDelay, I'd like keepalives to be a runtime option rather than the default. Regarding the keycodes: I don't think this is the case with the new viewer, I use CTRL+SHIFT+t to open tabs in Gnome all the time. However, I think that internationalization in general is a major deficiency with the java client. Unfortunately I have zero experience with it and tend to allocate my time towards issues that directly affect me, so all that I can say for now is that it's on the radar... (I'll gladly accept patches though) ---------------------------------------------------------------------- Comment By: Albert Fluegel (afluegel) Date: 2012-02-01 02:00 Message: Uploaded the patch again. Looks better now. Regarding keepalive: We have partners working through a web proxy, firewall and DMZ with the mentioned weblogin implementation. Their firewall drops a connection after few minutes of inactivity. This is not crucial as the session persists, but annoying and can be avoided switching on the keepalive. It regularly sends requests for almost empty screen updates, so the additional overhead is small. Regarding the keycodes: Unlike on older windows versions it turned out, that with combinations of Ctrl + Shift + a character key on windows 7 a lowercase VNC key event is sent to the VNC server. The server sees the lowercase character and thus adds a key release event of the shift key before sending the character key event to the X11 client application. So the Shift key has no effect (bad e.g. for gnome-terminal to open a new tab with Ctrl+Shift+t or paste using Ctrl+Shift+v). The solution is to send an uppercase character VNC key event to the VNC server. And the ill AltGr combinations on German keyboards did not work. ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-01-31 14:32 Message: The 1.1.90 client does build on RHEL4 and RHEL5, but probably not with gcj. It should build fine against openjdk or Sun jdk, but as you mention, it does require a JDK version >= 1.5. The primary reason for the generics arrays is simply for code symmetry between the java and C clients, so no they are almost certainly not required, but with the emergence of openjdk I would question the value of changing things just to support gcj. The command line arguments have changed, ideally they are all consistent with the new FLTK viewer. Can you elaborate on the keepalive and keycode issues? Please do post the patch, I would definitely be interested in true fullscreen exclusive mode support. ---------------------------------------------------------------------- Comment By: Albert Fluegel (afluegel) Date: 2012-01-31 12:32 Message: I plan to do the merge into 1.1.90 later this week. Unfortunately i don't have access to the patch right now, have to re-post it tomorrow when at work. I shortly looked into the 1.1.90 and found, that the mouse wheel is working now. On the other side, a special make (cmake) is required, so i built manually. I plan to add a standard makefile to be able to build on vanilla Linux with javac or GNU gcj. gcc-4.4 is required, so at least Redhat-6. On Redhat-5 it does not build and surely not on other a bit older linuxes. I'd like to check, whether it's really necessary to use a generics list array, cause this is the blocking point to compile with gcc-4.1. Fullscreen mode in 1.1.90 is as far as i've seen, when running the program, actually just a maximize of the window and not really fullscreen mode with global focus. Furthermore the commandline arguments have changed. I hope that when calling from HTML things work like before. I haven't seen a hint, that keepalives are supported in 1.1.90. I guess the problems with the keycodes on windows 7 are fixed, but i did not try yet. Will upload the 1.1.0 patch tomorrow. Anyway thanks for your support ! Though i'm posting changes since years regarding many programs this is the first time, that i get the feedback, that someone is willing to incorporate a change. Thank you ! ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-01-31 12:02 Message: I didn't notice at first that this is against 1.1. Have you looked at the new viewer in trunk? I think many of these features are implemented, but I'd still be interested in seeing your patch and merging what we can. ---------------------------------------------------------------------- Comment By: Brian Hinz (bphinz) Date: 2012-01-31 09:05 Message: Can you re-attach that patch file, it doesn't seem to have uploaded correctly. Thanks. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=1126849&aid=3482254&group_id=254363 ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ Tigervnc-devel mailing list Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel