clipboardHandler = handler;
};
- var readyCallback = null;
- var busyLayers = 0;
-
- function layerBusy() { busyLayers++; }
- function layerReady() {
- busyLayers--;
- if (readyCallback != null)
- readyCallback();
- }
-
- function sendReady() {
-
- // If ready, send ready message
- if (busyLayers == 0) {
- tunnel.sendMessage("ready;");
- }
-
- // If not ready, queue message for when ready
- else if (readyCallback == null) {
- readyCallback = function() {
- tunnel.sendMessage("ready;");
- readyCallback = null;
- }
- }
-
- }
-
- function getTrackedLayer(w, h) {
- var layer = new Layer(w, h);
-
- layer.setBusyHandler(layerBusy);
- layer.setReadyHandler(layerReady);
-
- return layer;
- }
-
// Layers
var displayWidth = 0;
var displayHeight = 0;
// Create buffer if necessary
if (buffer == null) {
- buffer = new Layer(0, 0); // Untracked
+ buffer = new Layer(0, 0);
buffer.setAutosize(1);
buffers[index] = buffer;
}
if (layer == null) {
// Add new layer
- layer = getTrackedLayer(displayWidth, displayHeight);
+ layer = new Layer(displayWidth, displayHeight);
layers[index] = layer;
// (Re)-add existing layers in order
if (errorHandler) errorHandler(tunnel.unescapeGuacamoleString(parameters[0]));
},
- "ready": function(parameters) {
- sendReady();
- },
-
"name": function(parameters) {
if (nameHandler) nameHandler(tunnel.unescapeGuacamoleString(parameters[0]));
},
var data = parameters[2];
if (cursor == null) {
- cursor = getTrackedLayer(displayWidth, displayHeight);
+ cursor = new Layer(displayWidth, displayHeight);
display.appendChild(cursor);
}
resize(width, height);
- var busyHandler = null;
var readyHandler = null;
-
var updates = new Array();
var autosize = 0;
readyHandler = handler;
};
- display.setBusyHandler = function(handler) {
- busyHandler = handler;
- };
-
display.drawImage = function(x, y, image) {
reserveJob(function() {
display.draw = function(x, y, url) {
-
- // If about to become busy, call busy handler
- if (display.isReady() && busyHandler != null)
- busyHandler();
-
var update = reserveJob(null);
var image = new Image();