String scaleString =
options.scalingFactor.getSelectedItem().toString();
String oldScaleFactor = viewer.scalingFactor.getValue();
- if (scaleString.equalsIgnoreCase("Auto")) {
- if (!oldScaleFactor.equals(scaleString)) {
- viewer.scalingFactor.setParam("Auto");
- if (desktop != null && !(options.fullScreen.isSelected() && fullScreen))
- reconfigureViewport();
- }
- } else if(scaleString.equalsIgnoreCase("Fixed Aspect Ratio")) {
- if (!oldScaleFactor.equalsIgnoreCase("FixedRatio")) {
- viewer.scalingFactor.setParam("FixedRatio");
- if (desktop != null && !(options.fullScreen.isSelected() && fullScreen))
- reconfigureViewport();
- }
- } else {
+ if (scaleString.equalsIgnoreCase("Fixed Aspect Ratio")) {
+ scaleString = new String("FixedRatio");
+ } else if (scaleString.equalsIgnoreCase("Auto")) {
+ scaleString = new String("Auto");
+ } else {
scaleString=scaleString.substring(0, scaleString.length()-1);
- if (!oldScaleFactor.equals(scaleString)) {
- viewer.scalingFactor.setParam(scaleString);
- if ((desktop != null) && (!oldScaleFactor.equalsIgnoreCase("Auto") ||
- !oldScaleFactor.equalsIgnoreCase("FixedRatio"))) {
- if (!(options.fullScreen.isSelected() && fullScreen))
- reconfigureViewport();
- }
- }
+ }
+ if (oldScaleFactor != scaleString) {
+ viewer.scalingFactor.setParam(scaleString);
+ if ((options.fullScreen.isSelected() == fullScreen) &&
+ (desktop != null))
+ recreateViewport();
}
clipboardDialog.setSendingEnabled(viewer.sendClipboard.getValue());
public void toggleFullScreen() {
fullScreen = !fullScreen;
- if (!fullScreen) menu.fullScreen.setSelected(false);
+ menu.fullScreen.setSelected(fullScreen);
if (viewport != null)
recreateViewport();
}
hideLocalCursor();
- cursor.hotspot = hotspot;
+ cursor.hotspot = (hotspot != null) ? hotspot : new Point(0, 0);
cursor.setSize(w, h);
cursor.setPF(getPF());
g2.dispose();
srcImage.flush();
- int x = (int)Math.floor((float)hotspot.x * scaleWidthRatio);
- int y = (int)Math.floor((float)hotspot.y * scaleHeightRatio);
+ int x = (int)Math.floor((float)cursor.hotspot.x * scaleWidthRatio);
+ int y = (int)Math.floor((float)cursor.hotspot.y * scaleHeightRatio);
x = (int)Math.min(x, Math.max(bestSize.width-1, 0));
y = (int)Math.min(y, Math.max(bestSize.height-1, 0));
java.awt.Point hs = new java.awt.Point(x, y);
setVisible(false);
setFocusable(false);
setAlwaysOnTop(false);
+ fullScreenWindow = Viewport.getFullScreenWindow();
if (fullScreenWindow != null)
Viewport.setFullScreenWindow(fullScreenWindow);
}
});
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
- if ((getExtendedState() != JFrame.MAXIMIZED_BOTH) &&
- cc.fullScreen) {
- cc.toggleFullScreen();
- }
String scaleString = cc.viewer.scalingFactor.getValue();
if (scaleString.equalsIgnoreCase("Auto") ||
scaleString.equalsIgnoreCase("FixedRatio")) {
cc.desktop.scaledHeight));
sp.validate();
if (getExtendedState() != JFrame.MAXIMIZED_BOTH &&
- scaleString.equalsIgnoreCase("FixedRatio")) {
+ scaleString.equalsIgnoreCase("FixedRatio") &&
+ !cc.fullScreen) {
int w = cc.desktop.scaledWidth + getInsets().left + getInsets().right;
int h = cc.desktop.scaledHeight + getInsets().top + getInsets().bottom;
setSize(w, h);
}
- if (cc.desktop.cursor != null) {
- Cursor cursor = cc.desktop.cursor;
- cc.setCursor(cursor.width(),cursor.height(),cursor.hotspot,
- cursor.data, cursor.mask);
- }
}
} else {
int policy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
sp.setHorizontalScrollBarPolicy(policy);
sp.validate();
}
+ if (cc.desktop.cursor != null) {
+ Cursor cursor = cc.desktop.cursor;
+ cc.setCursor(cursor.width(),cursor.height(),cursor.hotspot,
+ cursor.data, cursor.mask);
+ }
}
});
}