| Summary: | [macOS] Change Universal Access zoom in the UI process | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Per Arne Vollan <pvollan> | ||||||||
| Component: | WebKit Misc. | Assignee: | Per Arne Vollan <pvollan> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | bfulgham, darin, ews-watchlist, mifenton, sam, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | WebKit Nightly Build | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Per Arne Vollan
2020-12-08 02:32:35 PST
Created attachment 415625 [details]
Patch
Comment on attachment 415625 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=415625&action=review I think we are moving too much of the code from shared between WebKit and WebKitLegacy to have two copies. > Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:717 > +void WebPageProxy::changeUniversalAccessZoomFocus(const WebCore::IntRect& viewRect, const WebCore::IntRect& selectionRect) Can we find a way to share this code between WebKit and WebKitLegacy? Maybe put a function in WebCore they both call? It’s annoying to have two copies. > Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:727 > + NSRect nsCaretRect = NSMakeRect(selectionRect.x(), selectionRect.y(), selectionRect.width(), selectionRect.height()); > + NSRect nsViewRect = NSMakeRect(viewRect.x(), viewRect.y(), viewRect.width(), viewRect.height()); > + nsCaretRect = toUserSpaceForPrimaryScreen(nsCaretRect); > + nsViewRect = toUserSpaceForPrimaryScreen(nsViewRect); > + CGRect cgCaretRect = NSRectToCGRect(nsCaretRect); > + CGRect cgViewRect = NSRectToCGRect(nsViewRect); I know this is just moved code, but I suggest this alternative way of writing it: auto cgCaretRect = NSRectToCGRect(toUserSpaceForPrimaryScreen(selectionRect)); auto cgViewRect = NSRectToCGRect(toUserSpaceForPrimaryScreen(viewRect)); This should compile and do the same as the code above. If not, I’d like to know why not. > Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm:1185 > + NSRect nsCaretRect = NSMakeRect(selectionRect.x(), selectionRect.y(), selectionRect.width(), selectionRect.height()); > + NSRect nsViewRect = NSMakeRect(viewRect.x(), viewRect.y(), viewRect.width(), viewRect.height()); > + nsCaretRect = toUserSpaceForPrimaryScreen(nsCaretRect); > + nsViewRect = toUserSpaceForPrimaryScreen(nsViewRect); > + CGRect cgCaretRect = NSRectToCGRect(nsCaretRect); > + CGRect cgViewRect = NSRectToCGRect(nsViewRect); Ditto. Created attachment 415744 [details]
Patch
Created attachment 415745 [details]
Patch
Committed r270577: <https://trac.webkit.org/changeset/270577> All reviewed patches have been landed. Closing bug and clearing flags on attachment 415745 [details]. |