forked from 1b-agent/opencadstudio-upstream
feat(viewport): optional touchpad pan for wheel-scrolling touchpads
Outside macOS a touchpad's two-finger drag arrives as wheel scrolls that nothing tells from a wheel. A new option (Options, off by default) makes every scroll pan and Ctrl+scroll — what a pinch sends there — zoom. Fixes #1560 Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
17d2954098
commit
69057c55da
29 files changed
+83
-11
No files matched your search
@@ -1449,6 +1449,7 @@ common =
|
|||||||
.user-preferences = تفضيلات المستخدم
|
.user-preferences = تفضيلات المستخدم
|
||||||
.zoom = التكبير
|
.zoom = التكبير
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = عكس التكبير بعجلة الفأرة (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = عكس التكبير بعجلة الفأرة (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = لوحة اللمس: التمرير يحرك العرض، Ctrl+تمرير أو القرص يكبّر
|
||||||
.zoom-factor = معامل التكبير
|
.zoom-factor = معامل التكبير
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = مقدار التكبير لكل درجة من العجلة (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = مقدار التكبير لكل درجة من العجلة (ZOOMFACTOR).
|
||||||
.text-and-dimensions = النص والأبعاد
|
.text-and-dimensions = النص والأبعاد
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = Потребителски предпочитания
|
.user-preferences = Потребителски предпочитания
|
||||||
.zoom = Мащабиране
|
.zoom = Мащабиране
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Обръщане на мащабирането с колелцето (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Обръщане на мащабирането с колелцето (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Тъчпад: превъртането мести изгледа, Ctrl+превъртане или щипване мащабира
|
||||||
.zoom-factor = Коефициент на мащабиране
|
.zoom-factor = Коефициент на мащабиране
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Колко мащабира едно щракване на колелцето (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Колко мащабира едно щракване на колелцето (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Текст и размери
|
.text-and-dimensions = Текст и размери
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = Předvolby uživatele
|
.user-preferences = Předvolby uživatele
|
||||||
.zoom = Zoom
|
.zoom = Zoom
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Obrátit zoom kolečkem myši (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Obrátit zoom kolečkem myši (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Touchpad: posun posouvá pohled, Ctrl+posun nebo sevření zvětšuje
|
||||||
.zoom-factor = Faktor zoomu
|
.zoom-factor = Faktor zoomu
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = O kolik přiblíží jeden zub kolečka (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = O kolik přiblíží jeden zub kolečka (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Text a kóty
|
.text-and-dimensions = Text a kóty
|
||||||
|
|||||||
@@ -1437,6 +1437,7 @@ common =
|
|||||||
.user-preferences = Benutzereinstellungen
|
.user-preferences = Benutzereinstellungen
|
||||||
.zoom = Zoom
|
.zoom = Zoom
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Mausradzoom umkehren (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Mausradzoom umkehren (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Touchpad: Scrollen verschiebt, Strg+Scrollen oder Zusammenziehen zoomt
|
||||||
.zoom-factor = Zoomfaktor
|
.zoom-factor = Zoomfaktor
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Wie weit eine Radrastung zoomt (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Wie weit eine Radrastung zoomt (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Text und Bemaßung
|
.text-and-dimensions = Text und Bemaßung
|
||||||
|
|||||||
@@ -1438,6 +1438,7 @@ common =
|
|||||||
.user-preferences = Προτιμήσεις χρήστη
|
.user-preferences = Προτιμήσεις χρήστη
|
||||||
.zoom = Ζουμ
|
.zoom = Ζουμ
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Αντιστροφή ζουμ με τον τροχό (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Αντιστροφή ζουμ με τον τροχό (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Επιφάνεια αφής: η κύλιση μετακινεί, Ctrl+κύλιση ή τσίμπημα κάνει ζουμ
|
||||||
.zoom-factor = Συντελεστής ζουμ
|
.zoom-factor = Συντελεστής ζουμ
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Πόσο ζουμάρει ένα σκαλί του τροχού (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Πόσο ζουμάρει ένα σκαλί του τροχού (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Κείμενο και διαστάσεις
|
.text-and-dimensions = Κείμενο και διαστάσεις
|
||||||
|
|||||||
@@ -1438,6 +1438,7 @@ common =
|
|||||||
.user-preferences = User Preferences
|
.user-preferences = User Preferences
|
||||||
.zoom = Zoom
|
.zoom = Zoom
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Reverse mouse wheel zoom (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Reverse mouse wheel zoom (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Touchpad: scroll pans, Ctrl+scroll or pinch zooms
|
||||||
.zoom-factor = Zoom factor
|
.zoom-factor = Zoom factor
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = How far one wheel notch zooms (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = How far one wheel notch zooms (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Text and Dimensions
|
.text-and-dimensions = Text and Dimensions
|
||||||
|
|||||||
@@ -1437,6 +1437,7 @@ common =
|
|||||||
.user-preferences = Preferencias de usuario
|
.user-preferences = Preferencias de usuario
|
||||||
.zoom = Zoom
|
.zoom = Zoom
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Invertir el zoom de la rueda del ratón (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Invertir el zoom de la rueda del ratón (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Panel táctil: el desplazamiento encuadra, Ctrl+desplazamiento o pellizco hace zoom
|
||||||
.zoom-factor = Factor de zoom
|
.zoom-factor = Factor de zoom
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Cuánto amplía un paso de la rueda (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Cuánto amplía un paso de la rueda (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Texto y acotación
|
.text-and-dimensions = Texto y acotación
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = Käyttäjäasetukset
|
.user-preferences = Käyttäjäasetukset
|
||||||
.zoom = Zoomaus
|
.zoom = Zoomaus
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Käännä hiiren rullan zoomaus (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Käännä hiiren rullan zoomaus (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Kosketuslevy: vieritys panoroi, Ctrl+vieritys tai nipistys zoomaa
|
||||||
.zoom-factor = Zoomauskerroin
|
.zoom-factor = Zoomauskerroin
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Kuinka paljon yksi rullan pykälä zoomaa (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Kuinka paljon yksi rullan pykälä zoomaa (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Teksti ja mitoitus
|
.text-and-dimensions = Teksti ja mitoitus
|
||||||
|
|||||||
@@ -1437,6 +1437,7 @@ common =
|
|||||||
.user-preferences = Préférences utilisateur
|
.user-preferences = Préférences utilisateur
|
||||||
.zoom = Zoom
|
.zoom = Zoom
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Inverser le zoom à la molette (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Inverser le zoom à la molette (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Pavé tactile : le défilement déplace, Ctrl+défilement ou pincement zoome
|
||||||
.zoom-factor = Facteur de zoom
|
.zoom-factor = Facteur de zoom
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = De combien zoome un cran de molette (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = De combien zoome un cran de molette (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Texte et cotation
|
.text-and-dimensions = Texte et cotation
|
||||||
|
|||||||
@@ -1425,6 +1425,7 @@ common =
|
|||||||
.user-preferences = उपयोगकर्ता प्राथमिकताएँ
|
.user-preferences = उपयोगकर्ता प्राथमिकताएँ
|
||||||
.zoom = ज़ूम
|
.zoom = ज़ूम
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = माउस व्हील ज़ूम उलटें (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = माउस व्हील ज़ूम उलटें (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = टचपैड: स्क्रॉल पैन करता है, Ctrl+स्क्रॉल या पिंच ज़ूम करता है
|
||||||
.zoom-factor = ज़ूम गुणक
|
.zoom-factor = ज़ूम गुणक
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = व्हील का एक पायदान कितना ज़ूम करता है (ZOOMFACTOR)।
|
.how-far-one-wheel-notch-zooms-zoomfactor = व्हील का एक पायदान कितना ज़ूम करता है (ZOOMFACTOR)।
|
||||||
.text-and-dimensions = पाठ और आयाम
|
.text-and-dimensions = पाठ और आयाम
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = Felhasználói beállítások
|
.user-preferences = Felhasználói beállítások
|
||||||
.zoom = Nagyítás
|
.zoom = Nagyítás
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Egérgörgős nagyítás megfordítása (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Egérgörgős nagyítás megfordítása (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Érintőpad: a görgetés mozgat, a Ctrl+görgetés vagy csippentés nagyít
|
||||||
.zoom-factor = Nagyítási tényező
|
.zoom-factor = Nagyítási tényező
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Mennyit nagyít egy görgőkattanás (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Mennyit nagyít egy görgőkattanás (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Szöveg és méretezés
|
.text-and-dimensions = Szöveg és méretezés
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = Preferenze utente
|
.user-preferences = Preferenze utente
|
||||||
.zoom = Zoom
|
.zoom = Zoom
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Inverti lo zoom con la rotellina (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Inverti lo zoom con la rotellina (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Touchpad: lo scorrimento sposta la vista, Ctrl+scorrimento o pizzico esegue lo zoom
|
||||||
.zoom-factor = Fattore di zoom
|
.zoom-factor = Fattore di zoom
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Di quanto ingrandisce uno scatto della rotellina (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Di quanto ingrandisce uno scatto della rotellina (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Testo e quote
|
.text-and-dimensions = Testo e quote
|
||||||
|
|||||||
@@ -1427,6 +1427,7 @@ common =
|
|||||||
.user-preferences = ユーザー設定
|
.user-preferences = ユーザー設定
|
||||||
.zoom = ズーム
|
.zoom = ズーム
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = マウス ホイールのズーム方向を反転 (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = マウス ホイールのズーム方向を反転 (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = タッチパッド: スクロールで画面移動、Ctrl+スクロールまたはピンチでズーム
|
||||||
.zoom-factor = ズーム倍率
|
.zoom-factor = ズーム倍率
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = ホイール 1 ノッチのズーム量 (ZOOMFACTOR)。
|
.how-far-one-wheel-notch-zooms-zoomfactor = ホイール 1 ノッチのズーム量 (ZOOMFACTOR)。
|
||||||
.text-and-dimensions = 文字と寸法
|
.text-and-dimensions = 文字と寸法
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = 사용자 환경설정
|
.user-preferences = 사용자 환경설정
|
||||||
.zoom = 줌
|
.zoom = 줌
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = 마우스 휠 줌 방향 반전 (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = 마우스 휠 줌 방향 반전 (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = 터치패드: 스크롤은 화면 이동, Ctrl+스크롤 또는 핀치는 확대/축소
|
||||||
.zoom-factor = 줌 배율
|
.zoom-factor = 줌 배율
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = 휠 한 칸이 확대하는 정도 (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = 휠 한 칸이 확대하는 정도 (ZOOMFACTOR).
|
||||||
.text-and-dimensions = 문자 및 치수
|
.text-and-dimensions = 문자 및 치수
|
||||||
|
|||||||
@@ -1435,6 +1435,7 @@ common =
|
|||||||
.user-preferences = Gebruikersvoorkeuren
|
.user-preferences = Gebruikersvoorkeuren
|
||||||
.zoom = Zoomen
|
.zoom = Zoomen
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Muiswielzoom omkeren (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Muiswielzoom omkeren (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Touchpad: scrollen verschuift, Ctrl+scrollen of knijpen zoomt
|
||||||
.zoom-factor = Zoomfactor
|
.zoom-factor = Zoomfactor
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Hoeveel één wielklik zoomt (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Hoeveel één wielklik zoomt (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Tekst en maatvoering
|
.text-and-dimensions = Tekst en maatvoering
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = Preferencje użytkownika
|
.user-preferences = Preferencje użytkownika
|
||||||
.zoom = Powiększenie
|
.zoom = Powiększenie
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Odwróć powiększanie kółkiem myszy (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Odwróć powiększanie kółkiem myszy (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Touchpad: przewijanie przesuwa widok, Ctrl+przewijanie lub szczypanie powiększa
|
||||||
.zoom-factor = Współczynnik powiększenia
|
.zoom-factor = Współczynnik powiększenia
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = O ile powiększa jedno kliknięcie kółka (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = O ile powiększa jedno kliknięcie kółka (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Tekst i wymiary
|
.text-and-dimensions = Tekst i wymiary
|
||||||
|
|||||||
@@ -1437,6 +1437,7 @@ common =
|
|||||||
.user-preferences = Preferências do usuário
|
.user-preferences = Preferências do usuário
|
||||||
.zoom = Zoom
|
.zoom = Zoom
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Inverter o zoom da roda do mouse (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Inverter o zoom da roda do mouse (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Touchpad: rolar move a vista, Ctrl+rolar ou pinçar aplica zoom
|
||||||
.zoom-factor = Fator de zoom
|
.zoom-factor = Fator de zoom
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Quanto um passo da roda amplia (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Quanto um passo da roda amplia (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Texto e cotas
|
.text-and-dimensions = Texto e cotas
|
||||||
|
|||||||
@@ -1440,6 +1440,7 @@ common =
|
|||||||
.user-preferences = Пользовательские настройки
|
.user-preferences = Пользовательские настройки
|
||||||
.zoom = Зумирование
|
.zoom = Зумирование
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Обратить зумирование колесом мыши (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Обратить зумирование колесом мыши (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Тачпад: прокрутка панорамирует, Ctrl+прокрутка или щипок масштабирует
|
||||||
.zoom-factor = Коэффициент зумирования
|
.zoom-factor = Коэффициент зумирования
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Насколько приближает один щелчок колеса (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Насколько приближает один щелчок колеса (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Текст и размеры
|
.text-and-dimensions = Текст и размеры
|
||||||
|
|||||||
@@ -1423,6 +1423,7 @@ common =
|
|||||||
.user-preferences = Kullanıcı tercihleri
|
.user-preferences = Kullanıcı tercihleri
|
||||||
.zoom = Yakınlaştırma
|
.zoom = Yakınlaştırma
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = Fare tekerleği yakınlaştırmasını ters çevir (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = Fare tekerleği yakınlaştırmasını ters çevir (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = Dokunmatik yüzey: kaydırma kaydırır, Ctrl+kaydırma veya sıkıştırma yakınlaştırır
|
||||||
.zoom-factor = Yakınlaştırma çarpanı
|
.zoom-factor = Yakınlaştırma çarpanı
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = Bir tekerlek adımının ne kadar yakınlaştıracağı (ZOOMFACTOR).
|
.how-far-one-wheel-notch-zooms-zoomfactor = Bir tekerlek adımının ne kadar yakınlaştıracağı (ZOOMFACTOR).
|
||||||
.text-and-dimensions = Metin ve ölçülendirme
|
.text-and-dimensions = Metin ve ölçülendirme
|
||||||
|
|||||||
@@ -1424,6 +1424,7 @@ common =
|
|||||||
.user-preferences = 用户首选项
|
.user-preferences = 用户首选项
|
||||||
.zoom = 缩放
|
.zoom = 缩放
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = 反转鼠标滚轮缩放方向 (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = 反转鼠标滚轮缩放方向 (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = 触控板:滚动平移,Ctrl+滚动或捏合缩放
|
||||||
.zoom-factor = 缩放系数
|
.zoom-factor = 缩放系数
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = 滚轮每格的缩放幅度 (ZOOMFACTOR)。
|
.how-far-one-wheel-notch-zooms-zoomfactor = 滚轮每格的缩放幅度 (ZOOMFACTOR)。
|
||||||
.text-and-dimensions = 文字和标注
|
.text-and-dimensions = 文字和标注
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ common =
|
|||||||
.user-preferences = 使用者偏好設定
|
.user-preferences = 使用者偏好設定
|
||||||
.zoom = 縮放
|
.zoom = 縮放
|
||||||
.reverse-mouse-wheel-zoom-zoomwheel = 反轉滑鼠滾輪縮放方向 (ZOOMWHEEL)
|
.reverse-mouse-wheel-zoom-zoomwheel = 反轉滑鼠滾輪縮放方向 (ZOOMWHEEL)
|
||||||
|
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = 觸控板:捲動平移,Ctrl+捲動或捏合縮放
|
||||||
.zoom-factor = 縮放係數
|
.zoom-factor = 縮放係數
|
||||||
.how-far-one-wheel-notch-zooms-zoomfactor = 滾輪每一格的縮放幅度 (ZOOMFACTOR)。
|
.how-far-one-wheel-notch-zooms-zoomfactor = 滾輪每一格的縮放幅度 (ZOOMFACTOR)。
|
||||||
.text-and-dimensions = 文字與標註
|
.text-and-dimensions = 文字與標註
|
||||||
|
|||||||
@@ -559,6 +559,8 @@ pub(super) struct OpenCADStudio {
|
|||||||
polar_increment_deg: f32,
|
polar_increment_deg: f32,
|
||||||
/// Reverse the mouse-wheel zoom direction when true (ZOOMWHEEL = 1).
|
/// Reverse the mouse-wheel zoom direction when true (ZOOMWHEEL = 1).
|
||||||
zoom_wheel_reversed: bool,
|
zoom_wheel_reversed: bool,
|
||||||
|
/// Scroll pans and Ctrl+scroll zooms (touchpads); see `scroll_intent`.
|
||||||
|
touchpad_pan: bool,
|
||||||
/// Mouse-wheel zoom sensitivity (ZOOMFACTOR), held inside
|
/// Mouse-wheel zoom sensitivity (ZOOMFACTOR), held inside
|
||||||
/// `settings::ZOOM_FACTOR_MIN..=settings::ZOOM_FACTOR_MAX`. `SETVAR`
|
/// `settings::ZOOM_FACTOR_MIN..=settings::ZOOM_FACTOR_MAX`. `SETVAR`
|
||||||
/// only sets the range the system variable itself has; the Options
|
/// only sets the range the system variable itself has; the Options
|
||||||
@@ -2375,6 +2377,7 @@ pub enum Message {
|
|||||||
CommandLineFadeChanged(i32),
|
CommandLineFadeChanged(i32),
|
||||||
/// Toggle reversing the mouse-wheel zoom direction (ZOOMWHEEL).
|
/// Toggle reversing the mouse-wheel zoom direction (ZOOMWHEEL).
|
||||||
ZoomWheelReversedChanged(bool),
|
ZoomWheelReversedChanged(bool),
|
||||||
|
TouchpadPanChanged(bool),
|
||||||
/// Change how far one wheel notch zooms, from the Options slider
|
/// Change how far one wheel notch zooms, from the Options slider
|
||||||
/// (ZOOMFACTOR).
|
/// (ZOOMFACTOR).
|
||||||
ZoomFactorChanged(i32),
|
ZoomFactorChanged(i32),
|
||||||
@@ -4157,6 +4160,7 @@ impl OpenCADStudio {
|
|||||||
polar_mode: false,
|
polar_mode: false,
|
||||||
polar_increment_deg: 45.0,
|
polar_increment_deg: 45.0,
|
||||||
zoom_wheel_reversed: false,
|
zoom_wheel_reversed: false,
|
||||||
|
touchpad_pan: false,
|
||||||
zoom_factor: 60,
|
zoom_factor: 60,
|
||||||
zoom_factor_input: 60.to_string(),
|
zoom_factor_input: 60.to_string(),
|
||||||
cursor_size: 5,
|
cursor_size: 5,
|
||||||
|
|||||||
@@ -388,6 +388,9 @@ pub struct UserSettings {
|
|||||||
pub polar: bool,
|
pub polar: bool,
|
||||||
pub polar_increment_deg: f32,
|
pub polar_increment_deg: f32,
|
||||||
pub zoom_wheel_reversed: bool,
|
pub zoom_wheel_reversed: bool,
|
||||||
|
/// Scrolling pans and Ctrl+scroll (a touchpad pinch) zooms, for a
|
||||||
|
/// touchpad that reports two-finger drags as wheel scrolls.
|
||||||
|
pub touchpad_pan: bool,
|
||||||
pub zoom_factor: i32,
|
pub zoom_factor: i32,
|
||||||
/// CURSORSIZE: normalized crosshair reach; 5 retains the original 60 px arms.
|
/// CURSORSIZE: normalized crosshair reach; 5 retains the original 60 px arms.
|
||||||
pub cursor_size: i32,
|
pub cursor_size: i32,
|
||||||
@@ -807,6 +810,7 @@ impl Default for UserSettings {
|
|||||||
polar: false,
|
polar: false,
|
||||||
polar_increment_deg: 45.0,
|
polar_increment_deg: 45.0,
|
||||||
zoom_wheel_reversed: false,
|
zoom_wheel_reversed: false,
|
||||||
|
touchpad_pan: false,
|
||||||
zoom_factor: 60,
|
zoom_factor: 60,
|
||||||
cursor_size: 5,
|
cursor_size: 5,
|
||||||
pick_box: 3,
|
pick_box: 3,
|
||||||
|
|||||||
@@ -662,6 +662,7 @@ impl OpenCADStudio {
|
|||||||
polar: self.polar_mode,
|
polar: self.polar_mode,
|
||||||
polar_increment_deg: self.polar_increment_deg,
|
polar_increment_deg: self.polar_increment_deg,
|
||||||
zoom_wheel_reversed: self.zoom_wheel_reversed,
|
zoom_wheel_reversed: self.zoom_wheel_reversed,
|
||||||
|
touchpad_pan: self.touchpad_pan,
|
||||||
zoom_factor: self.zoom_factor,
|
zoom_factor: self.zoom_factor,
|
||||||
cursor_size: self.cursor_size,
|
cursor_size: self.cursor_size,
|
||||||
pick_box: self.pick_box,
|
pick_box: self.pick_box,
|
||||||
@@ -762,6 +763,7 @@ impl OpenCADStudio {
|
|||||||
self.polar_mode = s.polar;
|
self.polar_mode = s.polar;
|
||||||
self.polar_increment_deg = s.polar_increment_deg;
|
self.polar_increment_deg = s.polar_increment_deg;
|
||||||
self.zoom_wheel_reversed = s.zoom_wheel_reversed;
|
self.zoom_wheel_reversed = s.zoom_wheel_reversed;
|
||||||
|
self.touchpad_pan = s.touchpad_pan;
|
||||||
self.zoom_factor = crate::app::settings::clamp_zoom_factor(s.zoom_factor);
|
self.zoom_factor = crate::app::settings::clamp_zoom_factor(s.zoom_factor);
|
||||||
// Like the drafting-rotation field below, the Options field edits a
|
// Like the drafting-rotation field below, the Options field edits a
|
||||||
// buffer rather than the value, so it is reseeded whenever the value
|
// buffer rather than the value, so it is reseeded whenever the value
|
||||||
|
|||||||
@@ -8383,6 +8383,12 @@ impl OpenCADStudio {
|
|||||||
Task::none()
|
Task::none()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Message::TouchpadPanChanged(enabled) => {
|
||||||
|
self.touchpad_pan = enabled;
|
||||||
|
self.persist_settings_if_changed();
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
|
||||||
Message::ZoomFactorChanged(factor) => {
|
Message::ZoomFactorChanged(factor) => {
|
||||||
self.zoom_factor = crate::app::settings::clamp_zoom_factor(factor);
|
self.zoom_factor = crate::app::settings::clamp_zoom_factor(factor);
|
||||||
// The field beside the slider reads the same value, so the
|
// The field beside the slider reads the same value, so the
|
||||||
|
|||||||
+33
-11
@@ -42,9 +42,6 @@ enum ScrollIntent {
|
|||||||
Zoom { notches: f32 },
|
Zoom { notches: f32 },
|
||||||
/// Trackpad movement to pan by, in screen pixels.
|
/// Trackpad movement to pan by, in screen pixels.
|
||||||
///
|
///
|
||||||
/// Built only where a pixel delta can only mean a trackpad, so it has no
|
|
||||||
/// constructor on the other targets.
|
|
||||||
#[cfg_attr(not(target_os = "macos"), allow(dead_code))]
|
|
||||||
Pan { dx: f32, dy: f32 },
|
Pan { dx: f32, dy: f32 },
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,11 +52,22 @@ const ZOOM_DIR_FLIP_PX: f32 = 2.0;
|
|||||||
|
|
||||||
/// A wheel notch zooms; a trackpad's two fingers pan.
|
/// A wheel notch zooms; a trackpad's two fingers pan.
|
||||||
///
|
///
|
||||||
/// A wheel reports notches, a precise-scrolling device reports pixels, and that
|
/// On macOS a wheel reports notches and a trackpad pixels, and that is the
|
||||||
/// is the whole distinction — there is no modifier to check and no setting to
|
/// whole distinction. Elsewhere a touchpad's two-finger drag arrives as wheel
|
||||||
/// read. The pixels only mean "trackpad" on macOS: the browser build reports
|
/// notches (the browser build reports every wheel as pixels), so nothing tells
|
||||||
/// every wheel notch as pixels too, so everywhere else they keep zooming.
|
/// it from a wheel: with `touchpad_pan` on, every scroll pans and Ctrl+scroll —
|
||||||
fn scroll_intent(delta: mouse::ScrollDelta) -> ScrollIntent {
|
/// what a pinch sends there — zooms.
|
||||||
|
fn scroll_intent(delta: mouse::ScrollDelta, touchpad_pan: bool, ctrl: bool) -> ScrollIntent {
|
||||||
|
/// Screen pixels one wheel line pans.
|
||||||
|
const LINE_PX: f32 = 40.0;
|
||||||
|
if touchpad_pan && !ctrl {
|
||||||
|
return match delta {
|
||||||
|
mouse::ScrollDelta::Pixels { x, y } => ScrollIntent::Pan { dx: x, dy: y },
|
||||||
|
mouse::ScrollDelta::Lines { x, y } => {
|
||||||
|
ScrollIntent::Pan { dx: x * LINE_PX, dy: y * LINE_PX }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
match delta {
|
match delta {
|
||||||
// Both axes go straight through: the two-finger gesture moves the
|
// Both axes go straight through: the two-finger gesture moves the
|
||||||
// drawing the same way the middle-button drag moves it. If a pan ever
|
// drawing the same way the middle-button drag moves it. If a pan ever
|
||||||
@@ -5673,7 +5681,7 @@ properties={:.1}ms picked={}",
|
|||||||
/// A wheel notch zooms; a trackpad's two fingers pan. Which one a delta
|
/// A wheel notch zooms; a trackpad's two fingers pan. Which one a delta
|
||||||
/// means is `scroll_intent`'s call.
|
/// means is `scroll_intent`'s call.
|
||||||
pub(super) fn on_viewport_scroll(&mut self, delta: mouse::ScrollDelta) -> Task<Message> {
|
pub(super) fn on_viewport_scroll(&mut self, delta: mouse::ScrollDelta) -> Task<Message> {
|
||||||
match scroll_intent(delta) {
|
match scroll_intent(delta, self.touchpad_pan, self.ctrl_down) {
|
||||||
ScrollIntent::Zoom { notches } => {
|
ScrollIntent::Zoom { notches } => {
|
||||||
let mut s =
|
let mut s =
|
||||||
notches * crate::app::settings::zoom_notch_steps(self.zoom_factor);
|
notches * crate::app::settings::zoom_notch_steps(self.zoom_factor);
|
||||||
@@ -6701,10 +6709,24 @@ mod scroll_intent_tests {
|
|||||||
use crate::scene::view::camera::Camera;
|
use crate::scene::view::camera::Camera;
|
||||||
use iced::mouse::ScrollDelta;
|
use iced::mouse::ScrollDelta;
|
||||||
|
|
||||||
|
/// With the touchpad option, a scroll pans (wheel lines as pixels) and
|
||||||
|
/// Ctrl+scroll — a pinch — still zooms.
|
||||||
|
#[test]
|
||||||
|
fn touchpad_pan_scrolls_pan_and_ctrl_zooms() {
|
||||||
|
assert_eq!(
|
||||||
|
scroll_intent(ScrollDelta::Lines { x: 0.5, y: -0.25 }, true, false),
|
||||||
|
ScrollIntent::Pan { dx: 20.0, dy: -10.0 }
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
scroll_intent(ScrollDelta::Lines { x: 0.0, y: 1.0 }, true, true),
|
||||||
|
ScrollIntent::Zoom { notches: 1.0 }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn wheel_notches_zoom() {
|
fn wheel_notches_zoom() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
scroll_intent(ScrollDelta::Lines { x: 0.0, y: 1.0 }),
|
scroll_intent(ScrollDelta::Lines { x: 0.0, y: 1.0 }, false, false),
|
||||||
ScrollIntent::Zoom { notches: 1.0 }
|
ScrollIntent::Zoom { notches: 1.0 }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -6715,7 +6737,7 @@ mod scroll_intent_tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn two_finger_scroll_pans() {
|
fn two_finger_scroll_pans() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
scroll_intent(ScrollDelta::Pixels { x: 4.0, y: 6.0 }),
|
scroll_intent(ScrollDelta::Pixels { x: 4.0, y: 6.0 }, false, false),
|
||||||
ScrollIntent::Pan { dx: 4.0, dy: 6.0 }
|
ScrollIntent::Pan { dx: 4.0, dy: 6.0 }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -316,6 +316,7 @@ impl OpenCADStudio {
|
|||||||
cliprompt_lines: self.cliprompt_lines,
|
cliprompt_lines: self.cliprompt_lines,
|
||||||
commandline_fade_ms: self.commandline_fade_ms,
|
commandline_fade_ms: self.commandline_fade_ms,
|
||||||
zoom_wheel_reversed: self.zoom_wheel_reversed,
|
zoom_wheel_reversed: self.zoom_wheel_reversed,
|
||||||
|
touchpad_pan: self.touchpad_pan,
|
||||||
zoom_factor: self.zoom_factor,
|
zoom_factor: self.zoom_factor,
|
||||||
texteditmode: self.texteditmode,
|
texteditmode: self.texteditmode,
|
||||||
dimension_continue_mode: self.dimension_continue_mode,
|
dimension_continue_mode: self.dimension_continue_mode,
|
||||||
|
|||||||
@@ -4797,6 +4797,7 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static
|
|||||||
"User Preferences" => Some(("common", "user-preferences")),
|
"User Preferences" => Some(("common", "user-preferences")),
|
||||||
"Zoom" => Some(("common", "zoom")),
|
"Zoom" => Some(("common", "zoom")),
|
||||||
"Reverse mouse wheel zoom (ZOOMWHEEL)" => Some(("common", "reverse-mouse-wheel-zoom-zoomwheel")),
|
"Reverse mouse wheel zoom (ZOOMWHEEL)" => Some(("common", "reverse-mouse-wheel-zoom-zoomwheel")),
|
||||||
|
"Touchpad: scroll pans, Ctrl+scroll or pinch zooms" => Some(("common", "touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms")),
|
||||||
"Zoom factor" => Some(("common", "zoom-factor")),
|
"Zoom factor" => Some(("common", "zoom-factor")),
|
||||||
"How far one wheel notch zooms (ZOOMFACTOR)." => Some(("common", "how-far-one-wheel-notch-zooms-zoomfactor")),
|
"How far one wheel notch zooms (ZOOMFACTOR)." => Some(("common", "how-far-one-wheel-notch-zooms-zoomfactor")),
|
||||||
"Text and Dimensions" => Some(("common", "text-and-dimensions")),
|
"Text and Dimensions" => Some(("common", "text-and-dimensions")),
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ pub struct AppPrefs {
|
|||||||
pub commandline_fade_ms: i32,
|
pub commandline_fade_ms: i32,
|
||||||
/// ZOOMWHEEL: reverse the mouse-wheel zoom direction.
|
/// ZOOMWHEEL: reverse the mouse-wheel zoom direction.
|
||||||
pub zoom_wheel_reversed: bool,
|
pub zoom_wheel_reversed: bool,
|
||||||
|
/// Scroll pans and Ctrl+scroll zooms (touchpads).
|
||||||
|
pub touchpad_pan: bool,
|
||||||
/// ZOOMFACTOR. The slider sets the range the system variable has; the
|
/// ZOOMFACTOR. The slider sets the range the system variable has; the
|
||||||
/// field beside it reaches `settings::ZOOM_FACTOR_MAX`.
|
/// field beside it reaches `settings::ZOOM_FACTOR_MAX`.
|
||||||
pub zoom_factor: i32,
|
pub zoom_factor: i32,
|
||||||
@@ -1254,6 +1256,15 @@ pub fn view_window<'a>(
|
|||||||
]
|
]
|
||||||
.spacing(8)
|
.spacing(8)
|
||||||
.align_y(iced::Center),
|
.align_y(iced::Center),
|
||||||
|
Space::new().height(8),
|
||||||
|
row![
|
||||||
|
iced::widget::checkbox(prefs.touchpad_pan)
|
||||||
|
.on_toggle(Message::TouchpadPanChanged)
|
||||||
|
.size(15),
|
||||||
|
text(crate::t!("Touchpad: scroll pans, Ctrl+scroll or pinch zooms")).size(12),
|
||||||
|
]
|
||||||
|
.spacing(8)
|
||||||
|
.align_y(iced::Center),
|
||||||
Space::new().height(12),
|
Space::new().height(12),
|
||||||
row![
|
row![
|
||||||
text(crate::t!("Zoom factor")).size(12).width(150),
|
text(crate::t!("Zoom factor")).size(12).width(150),
|
||||||
|
|||||||
Reference in new issue
Block a user