Mercurial > hg > Members > riono > TreeVNC_ja_comment
comparison src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java @ 346:89c41f9870ba
get singleDisplay size from retina display (HiDPI).
author | oc |
---|---|
date | Wed, 11 Feb 2015 21:52:14 +0900 |
parents | 1d9a4099ad44 |
children | 024ac6e457f4 |
comparison
equal
deleted
inserted
replaced
345:47e351909227 | 346:89c41f9870ba |
---|---|
851 | 851 |
852 JButton screenButton = buttonsBar.createButton("share", "Share my screen", new ActionListener() { | 852 JButton screenButton = buttonsBar.createButton("share", "Share my screen", new ActionListener() { |
853 @Override | 853 @Override |
854 public void actionPerformed(ActionEvent e) { | 854 public void actionPerformed(ActionEvent e) { |
855 viewer.setVisible(false); | 855 viewer.setVisible(false); |
856 | |
857 float scaleFactor = getMyDisplayScaleFactor(); | |
856 ArrayList<Rectangle> rectangles = viewer.getScreenRectangles(); | 858 ArrayList<Rectangle> rectangles = viewer.getScreenRectangles(); |
857 int leftScreenNumber = 0; | 859 int leftScreenNumber = 0; |
858 int singleWidth = (int) rectangles.get(leftScreenNumber).getWidth(); | 860 int singleWidth = (int) (rectangles.get(leftScreenNumber).getWidth() * scaleFactor); |
859 int singleHeight = (int) rectangles.get(leftScreenNumber).getHeight(); | 861 int singleHeight = (int) (rectangles.get(leftScreenNumber).getHeight() * scaleFactor); |
860 viewer.getRfb().setSingleDisplaySize(singleWidth, singleHeight); | 862 viewer.getRfb().setSingleDisplaySize(singleWidth, singleHeight); |
863 | |
861 if (viewer.getRfb().isTreeManager()) { | 864 if (viewer.getRfb().isTreeManager()) { |
862 if (viewer.getRfb().hasParent()) { | 865 if (viewer.getRfb().hasParent()) { |
863 String adr = viewer.getRfb().getMyAddress(); | 866 String adr = viewer.getRfb().getMyAddress(); |
864 context.sendMessage(new ScreenChangeRequest(adr, ConnectionParams.DEFAULT_VNC_ROOT, viewer.getRfb().getId(), singleWidth, singleHeight)); | 867 context.sendMessage(new ScreenChangeRequest(adr, ConnectionParams.DEFAULT_VNC_ROOT, viewer.getRfb().getId(), singleWidth, singleHeight)); |
865 } | 868 } |
925 } | 928 } |
926 }).setAlignmentX(JComponent.RIGHT_ALIGNMENT); | 929 }).setAlignmentX(JComponent.RIGHT_ALIGNMENT); |
927 | 930 |
928 setButtonsBarVisible(true, container); | 931 setButtonsBarVisible(true, container); |
929 } | 932 } |
930 | 933 |
934 private float getMyDisplayScaleFactor() { | |
935 final String CONTENT_SCALE_FACTOR = "java.awt.contentScaleFactor"; | |
936 Float scaleFactor = (Float) Toolkit.getDefaultToolkit().getDesktopProperty(CONTENT_SCALE_FACTOR); | |
937 | |
938 return scaleFactor == null ? 1.0f : scaleFactor; | |
939 } | |
940 | |
931 public void fitScreen() { | 941 public void fitScreen() { |
932 ArrayList<Rectangle> rectangles = viewer.getScreenRectangles(); | 942 ArrayList<Rectangle> rectangles = viewer.getScreenRectangles(); |
933 int leftScreenNumber = 0; | 943 int leftScreenNumber = 0; |
934 int thisScreenWidth = (int) rectangles.get(leftScreenNumber).getWidth(); | 944 int thisScreenWidth = (int) rectangles.get(leftScreenNumber).getWidth(); |
935 int thisScreenHeight = (int) rectangles.get(leftScreenNumber).getHeight(); | 945 int thisScreenHeight = (int) rectangles.get(leftScreenNumber).getHeight(); |