[X2Go-Commits] [mteleplayer] 01/01: Experimetal event forwarding from client mtp to client nxproxy window

git-admin at x2go.org git-admin at x2go.org
Fri Sep 5 08:59:38 CEST 2014


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


More information about the x2go-commits mailing list