mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-03-09 15:40:18 +00:00 
			
		
		
		
	Added server-side remote user input lock support
This commit is contained in:
		
							parent
							
								
									ab538b086f
								
							
						
					
					
						commit
						811611ab7a
					
				
					 8 changed files with 1685 additions and 1615 deletions
				
			
		| 
						 | 
				
			
			@ -47,6 +47,10 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
 | 
			
		|||
    obj.SwapMouse = false;
 | 
			
		||||
    obj.FirstDraw = false;
 | 
			
		||||
 | 
			
		||||
    // Remote user mouse and keyboard lock
 | 
			
		||||
    obj.onRemoteInputLockChanged = null;
 | 
			
		||||
    obj.RemoteInputLock = null;
 | 
			
		||||
 | 
			
		||||
    obj.ScreenWidth = 960;
 | 
			
		||||
    obj.ScreenHeight = 701;
 | 
			
		||||
    obj.width = 960;
 | 
			
		||||
| 
						 | 
				
			
			@ -193,6 +197,7 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
 | 
			
		|||
        while (obj.PendingOperations.length > 0) { obj.PendingOperations.shift(); }
 | 
			
		||||
        obj.SendCompressionLevel(1);
 | 
			
		||||
        obj.SendUnPause();
 | 
			
		||||
        obj.SendRemoteInputLock(2); // Query input lock state
 | 
			
		||||
        // No need to event the display size change now, it will be evented on first draw.
 | 
			
		||||
        if (obj.onScreenSizeChange != null) { obj.onScreenSizeChange(obj, obj.ScreenWidth, obj.ScreenHeight, obj.CanvasId); }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -266,6 +271,13 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
 | 
			
		|||
                    console.log('KVM: ' + str.substring(1));
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            case 87: // MNG_KVM_INPUT_LOCK
 | 
			
		||||
                if (cmdsize != 5) break;
 | 
			
		||||
                if (obj.RemoteInputLock != (view[4] != 0)) {
 | 
			
		||||
                    obj.RemoteInputLock = (view[4] != 0);
 | 
			
		||||
                    if (obj.onRemoteInputLockChanged) { obj.onRemoteInputLockChanged(obj, obj.RemoteInputLock); }
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            case 88: // MNG_KVM_MOUSE_CURSOR
 | 
			
		||||
                if ((cmdsize != 5) || (obj.stopInput)) break;
 | 
			
		||||
                var cursorNum = view[4];
 | 
			
		||||
| 
						 | 
				
			
			@ -385,6 +397,9 @@ var CreateAgentRemoteDesktop = function (canvasid, scrolldiv) {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Send remote input lock. 0 = Unlock, 1 = Lock, 2 = Query
 | 
			
		||||
    obj.SendRemoteInputLock = function (code) { obj.send(String.fromCharCode(0x00, obj.InputType.KEYUNICODE, 0x00, 0x05, code)); }
 | 
			
		||||
 | 
			
		||||
    obj.SendMessage = function (msg) {
 | 
			
		||||
        if (obj.State == 3) obj.send(String.fromCharCode(0x00, 0x11) + obj.shortToStr(4 + msg.length) + msg); // 0x11 = 17 MNG_KVM_MESSAGE
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue