From 443e93a3c26a565da0774d2d2e9bd4727ead1332 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 9 Feb 2016 14:05:48 -0800 Subject: [PATCH] GUAC-1480: Consume 'guacClipboard' events ONLY in guacClient directive. Use 'guacClipboard' events as the sole source of clipboard data - do not scope watch. --- .../main/webapp/app/client/controllers/clientController.js | 5 ----- .../src/main/webapp/app/client/directives/guacClient.js | 6 ++++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/guacamole/src/main/webapp/app/client/controllers/clientController.js b/guacamole/src/main/webapp/app/client/controllers/clientController.js index e1b5c991b..2e7fe0de4 100644 --- a/guacamole/src/main/webapp/app/client/controllers/clientController.js +++ b/guacamole/src/main/webapp/app/client/controllers/clientController.js @@ -379,11 +379,6 @@ angular.module('client').controller('clientController', ['$scope', '$routeParams }); - // Update remote clipboard if local clipboard changes - $scope.$on('guacClipboard', function onClipboard(event, mimetype, data) { - $scope.client.clipboardData = data; - }); - $scope.$on('guacKeydown', function keydownListener(event, keysym, keyboard) { keysCurrentlyPressed[keysym] = true; diff --git a/guacamole/src/main/webapp/app/client/directives/guacClient.js b/guacamole/src/main/webapp/app/client/directives/guacClient.js index 31f17fd03..e23eb7913 100644 --- a/guacamole/src/main/webapp/app/client/directives/guacClient.js +++ b/guacamole/src/main/webapp/app/client/directives/guacClient.js @@ -413,9 +413,11 @@ angular.module('client').directive('guacClient', [function guacClient() { }; // Update remote clipboard if local clipboard changes - $scope.$watch('client.clipboardData', function clipboardChanged(data) { - if (client) + $scope.$on('guacClipboard', function onClipboard(event, mimetype, data) { + if (client) { client.setClipboard(data); + $scope.client.clipboardData = data; + } }); // Translate local keydown events to remote keydown events if keyboard is enabled