GUAC-958: Simplify resize handling (use directive). Only install resize handler after object loads.

This commit is contained in:
Michael Jumper
2015-01-29 23:47:17 -08:00
parent 7b8846b786
commit 798e9d28c5
12 changed files with 160 additions and 90 deletions

View File

@@ -339,7 +339,7 @@ angular.module('client').directive('guacClient', [function guacClient() {
});
// If the element is resized, attempt to resize client
resizeSensor.contentDocument.defaultView.addEventListener('resize', function mainElementResized() {
$scope.mainElementResized = function mainElementResized() {
// Send new display size, if changed
if (client && display) {
@@ -355,7 +355,7 @@ angular.module('client').directive('guacClient', [function guacClient() {
$scope.$evalAsync(updateDisplayScale);
});
};
// Watch for changes to mouse emulation mode
// Send all received mouse events to the client

View File

@@ -89,18 +89,11 @@ angular.module('client').directive('guacThumbnail', [function guacThumbnail() {
*/
var main = $element[0];
/**
* The element which functions as a detector for size changes.
*
* @type Element
*/
var resizeSensor = $element.find('.resize-sensor')[0];
/**
* Updates the scale of the attached Guacamole.Client based on current window
* size and "auto-fit" setting.
*/
var updateDisplayScale = function updateDisplayScale() {
$scope.updateDisplayScale = function updateDisplayScale() {
if (!display) return;
@@ -159,15 +152,11 @@ angular.module('client').directive('guacThumbnail', [function guacThumbnail() {
thumbnail.height = height;
$scope.thumbnail = thumbnail.toDataURL("image/png");
$scope.$evalAsync(updateDisplayScale);
// Init display scale
$scope.$evalAsync($scope.updateDisplayScale);
});
// If the element is resized, attempt to resize client
resizeSensor.contentDocument.defaultView.addEventListener('resize', function mainElementResized() {
$scope.$apply(updateDisplayScale);
});
}]
};
}]);