mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
Reverse pinch zooming direction in resource viewer
Fixes #43138 **Bug** Pinch opening should zoom in. Pinch close shoud zoom out. This is currently reversed **Fix** Invert the pinch direction. Only inverts pinches. Scrollwhell events should remain as-is: scroll up to zoom in scroll back to zoom out
This commit is contained in:
parent
c2ffb2a737
commit
e327a218eb
|
@ -91,10 +91,6 @@ export interface IResourceDescriptor {
|
|||
mime: string;
|
||||
}
|
||||
|
||||
enum ScaleDirection {
|
||||
IN, OUT,
|
||||
}
|
||||
|
||||
class BinarySize {
|
||||
public static readonly KB = 1024;
|
||||
public static readonly MB = BinarySize.KB * BinarySize.KB;
|
||||
|
@ -391,7 +387,9 @@ class InlineImageView {
|
|||
|
||||
const cacheKey = descriptor.resource.toString();
|
||||
|
||||
let scaleDirection = ScaleDirection.IN;
|
||||
let ctrlPressed = false;
|
||||
let altPressed = false;
|
||||
|
||||
const initialState: ImageState = InlineImageView.imageStateCache.get(cacheKey) || { scale: 'fit', offsetX: 0, offsetY: 0 };
|
||||
let scale = initialState.scale;
|
||||
let img: Builder | null = null;
|
||||
|
@ -455,9 +453,10 @@ class InlineImageView {
|
|||
if (!img) {
|
||||
return;
|
||||
}
|
||||
ctrlPressed = e.ctrlKey;
|
||||
altPressed = e.altKey;
|
||||
|
||||
if (platform.isMacintosh ? e.altKey : e.ctrlKey) {
|
||||
scaleDirection = ScaleDirection.OUT;
|
||||
if (platform.isMacintosh ? altPressed : ctrlPressed) {
|
||||
c.removeClass('zoom-in').addClass('zoom-out');
|
||||
}
|
||||
})
|
||||
|
@ -466,8 +465,10 @@ class InlineImageView {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!(platform.isMacintosh ? e.altKey : e.ctrlKey)) {
|
||||
scaleDirection = ScaleDirection.IN;
|
||||
ctrlPressed = e.ctrlKey;
|
||||
altPressed = e.altKey;
|
||||
|
||||
if (!(platform.isMacintosh ? altPressed : ctrlPressed)) {
|
||||
c.removeClass('zoom-out').addClass('zoom-in');
|
||||
}
|
||||
})
|
||||
|
@ -485,7 +486,7 @@ class InlineImageView {
|
|||
firstZoom();
|
||||
}
|
||||
|
||||
if (scaleDirection === ScaleDirection.IN) {
|
||||
if (!(platform.isMacintosh ? altPressed : ctrlPressed)) { // zoom in
|
||||
let i = 0;
|
||||
for (; i < InlineImageView.zoomLevels.length; ++i) {
|
||||
if (InlineImageView.zoomLevels[i] > scale) {
|
||||
|
@ -507,8 +508,9 @@ class InlineImageView {
|
|||
if (!img) {
|
||||
return;
|
||||
}
|
||||
// pinching is reported as scroll wheel + ctrl
|
||||
if (!e.ctrlKey) {
|
||||
|
||||
const isScrollWhellKeyPressed = platform.isMacintosh ? altPressed : ctrlPressed;
|
||||
if (!isScrollWhellKeyPressed && !e.ctrlKey) { // pinching is reported as scroll wheel + ctrl
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -519,8 +521,12 @@ class InlineImageView {
|
|||
firstZoom();
|
||||
}
|
||||
|
||||
// scrolling up, pinching out should increase the scale
|
||||
const delta = e.deltaY < 0 ? 1 : -1;
|
||||
let delta = e.deltaY < 0 ? 1 : -1;
|
||||
|
||||
// Pinching should increase the scale
|
||||
if (e.ctrlKey && !isScrollWhellKeyPressed) {
|
||||
delta *= -1;
|
||||
}
|
||||
updateScale(scale as number * (1 - delta * InlineImageView.SCALE_PINCH_FACTOR));
|
||||
})
|
||||
.on(DOM.EventType.SCROLL, () => {
|
||||
|
|
Loading…
Reference in a new issue