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-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

Reply via email to