Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix RatingControl scaling #187

Merged
merged 8 commits into from
Jan 24, 2019
Merged

Conversation

kaiguo
Copy link
Contributor

@kaiguo kaiguo commented Jan 16, 2019

Internal issue

When text scale changes, RatingControl's star scale animation is not following mouse cursor correctly. Also, stars and caption text are not aligned.

This is because item spacing and caption text margin are not scaled correctly together with the star glyphs. Updated the math to account for text scale changes.

@kaiguo kaiguo requested a review from a team as a code owner January 16, 2019 02:52
@jevansaks
Copy link
Member

Is there any way to write a test to cover this? I don't know if it's possible to simulate text scaling but we could just set the registry key for the duration of the test before we launch the app -- I think it's Software\Microsoft\Accessibility\TextScaleFactor -- DWORD that is the percentage (so 100 is 1.0 scaling).

Copy link
Member

@jevansaks jevansaks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting for author.

@kaiguo
Copy link
Contributor Author

kaiguo commented Jan 17, 2019

Do we have examples for how to set regkey before running test @jevansaks ? Wasn't able to find it in our test cases...

@jevansaks
Copy link
Member

Do we have examples for how to set regkey before running test @jevansaks Jevan Saks FTE ? Wasn't able to find it in our test cases...

In TAEF-based tests you can flag a method to run as administrator so you could have your test setup and test cleanup methods set the reg key and unset it. But I also understand that we're not well set up to write this kind of test at the moment so it's skip it.

Copy link
Contributor

@StephenLPeters StephenLPeters left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

dev/RatingControl/RatingControl.cpp Outdated Show resolved Hide resolved
dev/RatingControl/RatingControl.cpp Show resolved Hide resolved
dev/RatingControl/RatingControl.cpp Outdated Show resolved Hide resolved
dev/RatingControl/RatingControl.cpp Outdated Show resolved Hide resolved
@@ -52,7 +52,7 @@

<StackPanel Orientation="Horizontal" Grid.Row="0" Margin="-20,-20,-20,-20">
<StackPanel x:Name="RatingBackgroundStackPanel" Orientation="Horizontal" Background="Transparent" Margin="20,20,0,20"/>
<TextBlock x:Name="Caption" Height="32" Margin="4,9,20,0" TextLineBounds="TrimToBaseline" Style="{ThemeResource CaptionTextBlockStyle}" VerticalAlignment="Center" AutomationProperties.AccessibilityView="Raw" AutomationProperties.Name="RatingCaption" IsHitTestVisible="False" Text="{TemplateBinding Caption}"/>
<TextBlock x:Name="Caption" Height="32" Margin="4,22,20,0" TextLineBounds="TrimToBaseline" Style="{ThemeResource CaptionTextBlockStyle}" VerticalAlignment="Center" AutomationProperties.AccessibilityView="Raw" AutomationProperties.Name="RatingCaption" IsHitTestVisible="False" Text="{TemplateBinding Caption}"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This causes the code-behind to be out of sync with anyone who copied the template. Why was this margin change necessary?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, this is not used anywhere, the top margin value is now calculated by code-behind based on text scale factor. I will revert it.

For people who already retemplated it and changed this margin, their value will be ignored, do you think that will cause problems?

@kaiguo kaiguo force-pushed the user/kaiguo/fix-ratingcontrol-scaling branch from ac854b7 to 3e463a5 Compare January 24, 2019 01:06
@kaiguo kaiguo merged commit 849597c into master Jan 24, 2019
@kaiguo kaiguo deleted the user/kaiguo/fix-ratingcontrol-scaling branch January 24, 2019 04:59
ranjeshj added a commit that referenced this pull request Jan 25, 2019
* Update localization workflow for breaking changes (#162)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity propert… (#149)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity property change

* Changing telemetry logging of property change as a member instead of class

* Oops.  Forgot to remove the old id.

* Back-porting external changes from the OS repo. (#175)

* Avoid Narrator pronouncing the MenuFlyoutItem's keyboard accelerator. (#181)

* Avoid Narrator pronouncing the MenuFlyoutItem's keyboard accelerator.

* Expanding fix to pre-19H1 releases.

* Add screen capture and improved logging to helix tests (#176)

Enable /screencaptureonerror for TAEF tests and upload the screenshots to helix storage.
Also upload te.wtl log file.

Report uploaded urls of both of these to the Azure DevOps test report so that someone investigating a test failure can link directly to them instead of having to go to through the Mission Control site.

Here is an example run showing this in action:
https://dev.azure.com/ms/microsoft-ui-xaml/_build/results?buildId=1332&view=ms.vss-test-web.test-result-details

* Update the bug report issue template to not use checkboxes (#183)

* Renaming a few Scroller/ScrollViewer APIs (#185)

* Fixing Scroller's SnapPointsWithInvalidArgsThrow test.

* Renaming enum ScrollerState to InteractionState.
Renaming its enum values Interacting to Interaction and CustomAnimation to Animation.

* Updating ScrollBarVisibility enum. Replacing Collapsed with Hidden.

* Fix OS ports (#186)

* Update feature request issue template (#191)

* Make CalendarViewCalendarItemBackground the same as RS3 (#189)

* add SystemControlBackgroundAltHighRevealBackgroundBrush

* lift CalendarViewCalendarItemRevealBackground

* move CalendarViewCalendarItemRevealBackground to difference file

* Update TwoPaneView for API changes  (#193)

* MUX NavigationView should throw if WUXC NavViewItems are added to it (#69)

MUX NavigationView should throw if WUXC NavViewItems are added to it

Use IsItemItsOwnContainerOverride as a hook to approximate list contents change events and deny any WUX items in the MUX list.

[Internal Issue](https://microsoft.visualstudio.com/OS/ft_xamlcon/_workitems/edit/19017881)

* Applying some of the changes that came out of the API review meetings: (#200)

- Renaming enumerations
    ScrollerScrollMode --> ScrollMode
    ScrollerZoomMode --> ZoomMode
    ScrollerChainingMode --> ChainingMode
    ScrollerRailingMode --> RailingMode
    ScrollerInputKind --> InputKind
- Removing the ScrollMode.Auto enum value and make ScrollMode.Enabled the new default. I am preserving the old code with #ifdef USE_SCROLLMODE_AUTO since the Auto value may be re-introduced later.

* Adding telemetry for XLayout types (#169)

* Adding telemetry for XLayout types

* Update localization workflow for breaking changes (#162)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity propert… (#149)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity property change

* Changing telemetry logging of property change as a member instead of class

* Oops.  Forgot to remove the old id.

* Adding telemetry for XLayout types

* Undoing noisy merge

* Undoing another noisy merge

* Changes for Mux Acrylic and Reveal fallback is islands (#192)

* Keyboard Navigation: 'Back' button cannot be reached using tab order  (#204)

* Keyboard Navigation: 'Back' button cannot be reached using tab order
Remove special case code that disabled tab navigation on the NavigationView back button.
[Internal Issue](https://microsoft.visualstudio.com/OS/ft_xamlcon/_workitems/edit/20149845)
* Remove test case that assumes tab navigation is disabled on the back button
* Remove no longer used m_buttonHolderGettingFocusRevoker

* Add hints to cause GUID calculations to happen during precompile (#209)

* CommandBarFlyout Narrator fix (#199)

* Adding FlowsTo and FlowsFrom to ensure that the primary commands are connected to the secondary commands.

* Disabling new test to cut down on noise until it's fixed to work on all versions (#213)

[GitHub Issue](#211)

* Renaming Scroller.Child to Scroller.Content (#212)

* Scroller.Child renamed to Scroller.Content.

* Merging with master.

* Fix an animation bug of NavigationViewList. (#188)

*  Fix an animation bug of NavigationViewList.

* modify code to avoid /0 exception.

* When in mutiselect make sure that the treeview list supports selection pattern (#210)

* When in mutiselect make sure that the treeview list supports selection pattern

* Update Helix SDK version (#215)

This should improve PR validation from forks.

Also publish binlog from RunTestsInHelix.proj to aid debugging.

* Fix RatingControl scaling (#187)

* Fix spacing

* Fix margins

* Update comment

* Update calculations

* Remove inline

* Update comments

* Update dev/RatingControl/RatingControl.cpp

Co-Authored-By: kaiguo <[email protected]>

* Remove margin changes in markup

* Fix crash when scrolling nested ItemsRepeaters (#152)

* fix add pin bug
* update fix and also fix unrealiable canbringintoviewelements test
* fix unpinning case

* Pane Title is completely not visible in HC mode (#177)

* The pane title was being obscured by the pane toggle button. Outside of High Contrast that works
fine... but in HC the button background is opaque. I could split out resources for that background
to be transparent in HC... but fundamentally this is a weird layout to have the text _under_ the
button. It means that any non-transparent background is actually doing the wrong thing with regards
to layering on the text. So... I opted to change how this was built.

The key to fixing this was to have the button support both an icon and a piece of text. Since the
control already has a forked template this was pretty easy. Move the ContentPresenter to be to the
right of the fixed icon and update the layout accordingly.

The search button was riding on the same style as the toggle button for some reason. That wasn't
really necessary, as with a couple tweaks it could use a lightly styled standard Button template.

* Fix the behaviour of TreeViewItem.HorizontalContentAlignment (#203) (#218)

Remove the StackPanel containing the ContentPresenter and move layout
and indentation to the containing Grid.

Fix #203

* Remove workaround made for a midl bug. (#121)

* Fixing ScrollViewer name to turn on its tests in Helix. (#224)

* Replacing Scroller and ScrollViewer's IsChildAvailableWidthConstrained/IsChildAvailableHeightConstrained with ContentOrientation (#214)

* Step #1: Introduce Scroller/ScrollViewer.ContentOrientation.

* Step #2: Replace IsChildAvailableWidthConstrained/IsChildAvailableHeightConstrained usage with ContentOrientation and remove them.

* Updating ScrollerDynamicPage test UI.

* Fixing test ValidateSupportForScrollerConfigurationChanges.
@msft-github-bot
Copy link
Collaborator

🎉Microsoft.UI.Xaml v2.1.190131001-prerelease has been released which incorporates this pull request.:tada:

Handy links:

StephenLPeters pushed a commit that referenced this pull request Feb 9, 2019
* Fix spacing

* Fix margins

* Update comment

* Update calculations

* Remove inline

* Update comments

* Update dev/RatingControl/RatingControl.cpp

Co-Authored-By: kaiguo <[email protected]>

* Remove margin changes in markup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants