[gimp] libgimpwidgets: Introduce GIMP_ZOOM_PINCH
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimpwidgets: Introduce GIMP_ZOOM_PINCH
- Date: Thu, 22 Apr 2021 18:21:55 +0000 (UTC)
commit 51d1ab9bce70eccd0210c8040a7d8787e76474cb
Author: Povilas Kanapickas <povilas radix lt>
Date: Tue Jan 26 22:14:44 2021 +0200
libgimpwidgets: Introduce GIMP_ZOOM_PINCH
This zoom mode is handled pretty much the same as GIMP_ZOOM_SMOOTH
except that we do not apply adjustments for the scaling delta. Pinch
zooming is ultimately a different physical activity than smooth
scrolling and users likely expect different sensitivity.
libgimpwidgets/gimpwidgetsenums.h | 4 +++-
libgimpwidgets/gimpzoommodel.c | 8 ++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
---
diff --git a/libgimpwidgets/gimpwidgetsenums.h b/libgimpwidgets/gimpwidgetsenums.h
index 3544afc6a3..ef6d935607 100644
--- a/libgimpwidgets/gimpwidgetsenums.h
+++ b/libgimpwidgets/gimpwidgetsenums.h
@@ -216,6 +216,7 @@ typedef enum
* @GIMP_ZOOM_OUT_MAX: zoom out as far as possible
* @GIMP_ZOOM_TO: zoom to a specific zoom factor
* @GIMP_ZOOM_SMOOTH: zoom smoothly from a smooth scroll event
+ * @GIMP_ZOOM_PINCH: zoom smoothly from a touchpad pinch gesture
*
* the zoom types for #GimpZoomModel.
**/
@@ -232,7 +233,8 @@ typedef enum
GIMP_ZOOM_IN_MAX, /*< skip >*/
GIMP_ZOOM_OUT_MAX, /*< skip >*/
GIMP_ZOOM_TO, /*< skip >*/
- GIMP_ZOOM_SMOOTH /*< skip >*/
+ GIMP_ZOOM_SMOOTH, /*< skip >*/
+ GIMP_ZOOM_PINCH, /*< skip >*/
} GimpZoomType;
diff --git a/libgimpwidgets/gimpzoommodel.c b/libgimpwidgets/gimpzoommodel.c
index 6d12aba7c0..e4b772eacc 100644
--- a/libgimpwidgets/gimpzoommodel.c
+++ b/libgimpwidgets/gimpzoommodel.c
@@ -705,6 +705,14 @@ gimp_zoom_model_zoom_step (GimpZoomType zoom_type,
new_scale = scale;
break;
+ case GIMP_ZOOM_PINCH:
+ if (delta > 0.0)
+ new_scale = scale * (1.0 + delta);
+ else if (delta < 0.0)
+ new_scale = scale / (1.0 + -delta);
+ else
+ new_scale = scale;
+ break;
}
return CLAMP (new_scale, ZOOM_MIN, ZOOM_MAX);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]