GUAC-807 Clipboard is working.

This commit is contained in:
James Muehlner
2014-11-11 20:59:59 -08:00
parent 6614c620fa
commit 8e2ac6660a
4 changed files with 36 additions and 14 deletions

View File

@@ -46,6 +46,11 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
// Hide menu by default
$scope.menuShown = false;
// Update the model when clipboard data received from client
$scope.$on('guacClientClipboard', function clipboardDataReceived(clipboardData) {
$scope.guacClipboard = clipboardData;
});
/*
* Parse the type, name, and id out of the url paramteres,
@@ -94,6 +99,17 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
return true;
}
$scope.$watch('menuShown', function setKeyboardEnabled(menuShown, menuShownPreviousState) {
// Send clipboard data if menu is hidden
if (!menuShown && menuShownPreviousState) {
$scope.$broadcast('guacClipboard', $scope.clipboardData);
}
// Disable client keyboard if the menu is shown
$scope.clientProperties.keyboardEnabled = !menuShown;
});
$scope.$on('guacKeydown', function keydownListener(event, keysym, keyboard) {
keysCurrentlyPressed[keysym] = true;

View File

@@ -114,12 +114,7 @@ angular.module('client').directive('guacClient', [function guacClient() {
"emulate_absolute" : true,
"touch" : null,
"touch_screen" : null,
"touch_pad" : null,
/* Clipboard */
"remote_clipboard" : "",
"clipboard_integration_enabled" : undefined
"touch_pad" : null
});
var CLIENT_PROPERTY_DEFAULTS = {
@@ -680,17 +675,21 @@ angular.module('client').directive('guacClient', [function guacClient() {
// Listen for broadcasted keydown events and fire the appropriate listeners
$scope.$on('guacKeydown', function keydownListener(event, keysym, keyboard) {
var preventDefault = $scope.keydown(keysym, keyboard);
if(preventDefault) {
event.preventDefault();
if ($scope.clientProperties.keyboardEnabled) {
var preventDefault = $scope.keydown(keysym, keyboard);
if (preventDefault) {
event.preventDefault();
}
}
});
// Listen for broadcasted keyup events and fire the appropriate listeners
$scope.$on('guacKeyup', function keyupListener(event, keysym, keyboard) {
var preventDefault = $scope.keyup(keysym, keyboard);
if(preventDefault) {
event.preventDefault();
if ($scope.clientProperties.keyboardEnabled) {
var preventDefault = $scope.keyup(keysym, keyboard);
if(preventDefault) {
event.preventDefault();
}
}
});

View File

@@ -61,6 +61,13 @@ angular.module('client').factory('clientProperties', [function clientProperties(
* @type Number
*/
this.maxScale = 3;
/**
* Whether or not the client should listen to keyboard events.
*
* @type Boolean
*/
this.keyboardEnabled = true;
};
}]);

View File

@@ -46,8 +46,8 @@
<h3>{{'client.clipboard' | translate}}</h3>
<div class="content" id="clipboard-settings">
<p class="description"></p>
<textarea rows="10" cols="40" id="clipboard">{{'client.copiedText' | translate}}</textarea>
<p class="description">{{'client.copiedText' | translate}}</p>
<textarea ng-model="clipboardData" rows="10" cols="40" id="clipboard"></textarea>
</div>
<h3></h3>