微軟新貢獻:修復Chromium瀏覽器的奇怪觸控板手勢問題
去年微軟宣布計劃成為Chromium項目的重要貢獻者之一,希望為包括Edge和Chrome在內所有基於Chromium的瀏覽器帶來更多改進和功能。在增強鼠標滾動和搜索功能之外,微軟現在將部分精力放在部分Windows 10設備(例如Surface Pro系列和Surface Book系列)上奇怪的Pinch-Zoom縮放問題上。
根據數月前的BUG報告,用戶無法在Surface Pro等Windows 10設備的觸控板上使用雙指縮放手勢。當用戶嘗試在觸控板上執行雙指捏大縮放手勢(一根手指保持不變,而另一根手指從觸控板中心位置離開)的時候,在部分網頁上可能會出現錯誤。
正如用戶所解釋的,在以下情況下無法使用雙指縮放手勢
1.將光標放在“Real prevent default handler”滾動條上
2.做一個快速的觸控Fling滾動操作(滾動條實際上不會滾動)
3.立即執行捏縮放手勢
微軟工程師表示雖然這種情況在MacBook 2016和MacBoook Pro 2018上也出現過,但是這種情況在Surface系列設備上出現更加頻繁。工程師表示:“故意重現這個問題很難。在工作期間,每天平均會發生5次錯誤,並且並不會是所有設備都復現這個問題。我在MacBook 2016和無Touch Bar的MacBook Pro 2018 13英寸設備上也出現了這個問題。根據我的主觀感受,在Surface Book Pro上重現更容易。”
根據最新提交的內容,目前微軟已經提交了一個正確’preventDefault’縮放縮放的解決方案。目前該Commit標記為“活動”,表示夾點縮放有時不正確地被阻止。
在Commit中寫道:“有兩種不同的場景:要么從滾動過渡- >捏合,要么從投擲- >捏合。這個CL修復了這個問題,通過檢查正在確認的事件與TPEQ期望ACK的事件相比,如果它們不匹配則提前結束並忽略ACK。”
根據另一個Commit,微軟希望在不會發生fling滾動手勢時立即發送滾動結束事件。微軟指出:“現在有了這個改變,如果我們從滾動轉換到捏合,事件的momentum_phase被設置為Blocked,表示動量滾動不會發生。然後,我們立即發送結束事件,而不是等待。”