Introduce feat(chat): add global pinch-to-zoom text scaling via ChatTextScaleService#228
Introduce feat(chat): add global pinch-to-zoom text scaling via ChatTextScaleService#228just-stuff-tm wants to merge 2 commits into
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0f17e2382c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
That's kind of cool, how would you do it on the macos client for example? |
|
I didn't test on apple products,(don't own any) feel free to test. I'm testing on Windows now. |
|
Pinching trackpad on windows 11 Screen.Recording.2026-02-23.231929.mp4 |
|
Merged with #232 |
This PR introduces device-local pinch-to-zoom text scaling for all chat interfaces, including:
The feature allows users to adjust chat text size using a two-finger pinch gesture. A double-tap gesture resets the scale to default.
Scaling affects only message text and related text elements. Layout, padding, bubble constraints, avatars, and scroll behavior remain unchanged.
Implementation Details
New Service
ChatTextScaleService
ChangeNotifierPersists scale using
PrefsManagerClamp range:
0.8–1.8Default:
1.0Exposed globally via
ChangeNotifierProviderUI-only (no connector / protocol references)
New Widget
ChatZoomWrapper
ListView.builderpointerCount == 2)HitTestBehavior.translucentIntegration
main.dartand initialized beforerunAppMultiProvidercontext.select<ChatTextScaleService, double>used insideListView.builder_MessageBubbleand channel message builders receivetextScalePerformance Notes
context.selectUX Behavior
Scope
Modified:
lib/main.dartlib/screens/chat_screen.dartlib/screens/channel_chat_screen.dartAdded:
lib/services/chat_text_scale_service.dartlib/widgets/chat_zoom_wrapper.dartNo backend, protocol, or RoomServer logic changed.
Validation
Reference [Feature Request] Support changing font size #147
compressed_10mb.mp4