This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository mteleplayer. commit d4ff6ce620a6d1efec3c5097740513825734fbb1 Author: gznget <opensource@gznianguan.com> Date: Thu Sep 4 16:45:27 2014 +0200 Experimetal event forwarding from client mtp to client nxproxy window --- .../mteleplayer/bin/mteleplayer_clientside | 36 +++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside b/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside index c039e5c..9c99fe4 100755 --- a/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside +++ b/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside @@ -50,7 +50,9 @@ use Gtk2; use Gtk2::Helper; use FileHandle; use POSIX qw(mkfifo); - +use X11::Protocol; +use X11::Keyboard; +my $X11 = X11::Protocol->new; ################################################################################################## # Do directory stuff here our %TeKiPaths = getTeKiPaths("C"); @@ -735,9 +737,41 @@ sub windowEvent { my ($mw, $event) = @_; if ($event->state =~ /button\d\-mask/) { doOverlayMagic('dodgemouse',1); + } elsif ($event->type =~ /key.*/) { + my $type = $event->type; + my $keyval = $event->keyval(); + appDBugLog("=== === KEY EVENT: $type ($keyval) === ==="); + sendKeyToWin($X2GoCliWinID,$keyval,$type); } } +sub sendKeyToWin { + my $X11 = X11::Protocol->new; + my $X11K = X11::Keyboard->new($X11); + my $toWin = $_[0]; + my $theKey = $_[1]; + my $type = "KeyPress"; + if ($_[2] eq "key-release") { + $type = "KeyRelease"; + } + my $keyCode = $X11K->KeysymToKeycode($theKey); + print "$theKey $keyCode\n"; + + my $event = $X11->pack_event( + name => $type, + detail => $keyCode, + state => 0, + time => time(), + root => $X11->root(), + same_screen => 1, + event => 'Normal', + ); + + my $mask = $X11->pack_event_mask("KeyPress"); + $X11->SendEvent($toWin , 1, $mask, $event) or die("FAIL!"); + return 0; +} + ################################################################################################################################# # This sub, supposedly try to do a clean termination of the application... sub doSelfTerminate { -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/mteleplayer.git