[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