mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 05:07:41 +00:00
Add support for DPI within size instruction and client info.
This commit is contained in:
@@ -149,7 +149,8 @@ public class ConfiguredGuacamoleSocket implements GuacamoleSocket {
|
||||
new GuacamoleInstruction(
|
||||
"size",
|
||||
Integer.toString(info.getOptimalScreenWidth()),
|
||||
Integer.toString(info.getOptimalScreenHeight())
|
||||
Integer.toString(info.getOptimalScreenHeight()),
|
||||
Integer.toString(info.getOptimalResolution())
|
||||
)
|
||||
);
|
||||
|
||||
|
@@ -59,14 +59,19 @@ public class GuacamoleClientInformation {
|
||||
private int optimalScreenHeight = 768;
|
||||
|
||||
/**
|
||||
* The list of audio mimetypes reported by the client to be supported.
|
||||
* The resolution of the optimal dimensions given, in DPI.
|
||||
*/
|
||||
private List<String> audioMimetypes = new ArrayList<String>();
|
||||
private int optimalResolution = 96;
|
||||
|
||||
/**
|
||||
* The list of audio mimetypes reported by the client to be supported.
|
||||
*/
|
||||
private List<String> videoMimetypes = new ArrayList<String>();
|
||||
private final List<String> audioMimetypes = new ArrayList<String>();
|
||||
|
||||
/**
|
||||
* The list of audio mimetypes reported by the client to be supported.
|
||||
*/
|
||||
private final List<String> videoMimetypes = new ArrayList<String>();
|
||||
|
||||
/**
|
||||
* Returns the optimal screen width requested by the client, in pixels.
|
||||
@@ -100,6 +105,26 @@ public class GuacamoleClientInformation {
|
||||
this.optimalScreenHeight = optimalScreenHeight;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the resolution of the screen if the optimal width and height are
|
||||
* used, in DPI.
|
||||
*
|
||||
* @return The optimal screen resolution.
|
||||
*/
|
||||
public int getOptimalResolution() {
|
||||
return optimalResolution;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the resolution of the screen if the optimal width and height are
|
||||
* used, in DPI.
|
||||
*
|
||||
* @param optimalResolution The optimal screen resolution in DPI.
|
||||
*/
|
||||
public void setOptimalResolution(int optimalResolution) {
|
||||
this.optimalResolution = optimalResolution;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of audio mimetypes supported by the client. To add or
|
||||
* removed supported mimetypes, the list returned by this function can be
|
||||
|
@@ -251,6 +251,11 @@ public class BasicTunnelRequestUtility {
|
||||
if (height != null)
|
||||
info.setOptimalScreenHeight(Integer.parseInt(height));
|
||||
|
||||
// Set resolution if provided
|
||||
String dpi = request.getParameter("dpi");
|
||||
if (dpi != null)
|
||||
info.setOptimalResolution(Integer.parseInt(dpi));
|
||||
|
||||
// Add audio mimetypes
|
||||
String[] audio_mimetypes = request.getParameterValues("audio");
|
||||
if (audio_mimetypes != null)
|
||||
|
@@ -105,8 +105,10 @@
|
||||
try {
|
||||
|
||||
// Calculate optimal width/height for display
|
||||
var optimal_width = window.innerWidth;
|
||||
var optimal_height = window.innerHeight;
|
||||
var pixel_density = window.devicePixelRatio || 1;
|
||||
var optimal_dpi = pixel_density * 96;
|
||||
var optimal_width = window.innerWidth * pixel_density;
|
||||
var optimal_height = window.innerHeight * pixel_density;
|
||||
|
||||
// Scale width/height to be at least 600x600
|
||||
if (optimal_width < 600 || optimal_height < 600) {
|
||||
@@ -123,7 +125,8 @@
|
||||
var connect_string =
|
||||
window.location.search.substring(1)
|
||||
+ "&width=" + optimal_width
|
||||
+ "&height=" + optimal_height;
|
||||
+ "&height=" + optimal_height
|
||||
+ "&dpi=" + optimal_dpi;
|
||||
|
||||
// Add audio mimetypes to connect_string
|
||||
GuacUI.Audio.supported.forEach(function(mimetype) {
|
||||
|
@@ -953,7 +953,11 @@ GuacUI.Client.attach = function(guac) {
|
||||
*/
|
||||
window.onresize = function() {
|
||||
|
||||
guac.sendSize(window.innerWidth, window.innerHeight);
|
||||
var pixel_density = window.devicePixelRatio || 1;
|
||||
var width = window.innerWidth * pixel_density;
|
||||
var height = window.innerHeight * pixel_density;
|
||||
|
||||
guac.sendSize(width, height);
|
||||
GuacUI.Client.updateDisplayScale();
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user