diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index dd66802b2..a6feed765 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -8,7 +8,7 @@ ReadMe: https://github.com/gdh1995/vimium-c/#readme .
* update minimum browser version to Chromium 109 and Firefox 115 in the public released packages * they are the last versions supporting Win 7 and Win 8 series -#### v2.11.1 +#### v2.11.2 * fix new bugs #### v2.11 diff --git a/content/mode_find.ts b/content/mode_find.ts index f0104edb7..e43a59564 100644 --- a/content/mode_find.ts +++ b/content/mode_find.ts @@ -959,6 +959,7 @@ const scrollSelectionAfterFind = (par: Element, newAnchor: Element | 0, sel: Sel let textBoxRect: Rect | 1 | false | 0 | null | void = !kMayInTextBox ? null : textStyle && noFocus && (getZoom_(newAnchor as TextElement), prepareCrop_(), 1) let context: CanvasRenderingContext2D, widthOrEnd: number + // `window.find()` may auto make a target scroll into view smoothly, but a manual `scrollBy` breaks the animation const oldInvisibility = +isSafeEl_(par) && view_(par as SafeElement, !textBoxRect) textBoxRect = kMayInTextBox ? textBoxRect && boundingRect_(newAnchor as TextElement) : null if (kMayInTextBox && isTY(textStyle, kTY.obj)) { @@ -985,10 +986,7 @@ const scrollSelectionAfterFind = (par: Element, newAnchor: Element | 0, sel: Sel top *= textStyle[1] const scX = (ltr ? 1 : -1) * max_(0, start - max_width / 2) + baseScPosX const scY = max_(0, top - (textStyle[3] - textStyle[1]) / 2) - if (OnChrome && Build.MinCVer < BrowserVer.MinJsScrollNotBreakAutoScrollAfterFind - && oldInvisibility && (BrowserVer.MinJsScrollNotBreakAutoScrollAfterFind >= 999 - || chromeVer_ < BrowserVer.MinJsScrollNotBreakAutoScrollAfterFind) - && isNotInViewport(newAnchor as TextElement)) { /* empty */ } + if (OnChrome && oldInvisibility && isNotInViewport(newAnchor as TextElement)) { /* empty */ } else if ((OnChrome ? Build.MinCVer >= BrowserVer.MinEnsuredCSS$ScrollBehavior : !OnEdge) || (newAnchor as Element).scrollTo) { (newAnchor as TextElement).scrollTo(instantScOpt(scX, scY)) diff --git a/lib/rect.ts b/lib/rect.ts index cda2e499e..4e788e723 100644 --- a/lib/rect.ts +++ b/lib/rect.ts @@ -445,8 +445,7 @@ export const view_ = (el: SafeElement, allowSmooth?: BOOL | boolean, oldY?: numb if (style) { style.setProperty(kBh, "auto", "important") } OnEdge || OnChrome && Build.MinCVer < BrowserVer.MinScrollIntoViewOptions ? scrollIntoView_(el, !allowSmooth, delta < 0) : scrollIntoView_(el, !allowSmooth) - const stillNotInView = (OnChrome ? Build.MinCVer < BrowserVer.MinJsScrollNotBreakAutoScrollAfterFind : !OnEdge) - && isNotInViewport(el) + const stillNotInView = !OnEdge && isNotInViewport(el) if (!stillNotInView && f) { secondScroll = elHeight < ih ? oldY! - scrollY : 0 // required range of wanted: delta > 0 ? [-limit, 0] : [0, limit] diff --git a/manifest.json b/manifest.json index e1dcbb2c6..bb7587191 100644 --- a/manifest.json +++ b/manifest.json @@ -123,8 +123,8 @@ ], "short_name": "Vimium C", "update_url": "https://clients2.google.com/service/update2/crx", - "version": "2.11.1", - "version_name": "2.11.1", + "version": "2.11.2", + "version_name": "2.11.2", "web_accessible_resources": [ { "resources": [ "content/*", "front/vomnibar*", "lib/*" ], "matches": [ "", "chrome-extension://*/*" ], diff --git a/typings/compatibility.d.ts b/typings/compatibility.d.ts index 542aab6ef..714c87715 100644 --- a/typings/compatibility.d.ts +++ b/typings/compatibility.d.ts @@ -626,8 +626,6 @@ declare const enum BrowserVer { MinNew$URL$NotDecodePathname = 118, Min$ScrollBehavior$$Instant$InJS = 121, // even if EXP or LEGACY MinEnsured$select$$showPicker = 121, // since 119 if EXP - // `window.find()` may auto make a target scroll into view smoothly, but a manual `scrollBy` breaks the animation - MinJsScrollNotBreakAutoScrollAfterFind = 999, MinNo$TimerType$$Fake = 999, assumedVer = 998, }