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

Updates to FvwmPager scaling math to improve visual aspects due to rounding errors. #790

Merged
merged 2 commits into from
Jan 2, 2023

Conversation

somiaj
Copy link
Collaborator

@somiaj somiaj commented Jan 2, 2023

When computing the size and location of scaled windows and the viewport in FvwmPager, compute the location of all four edges of the scaled window or viewport instead of the top/left location and the height/width. This makes rounding issues due to scaling are more consistent and visually will show the bottom/right edges of windows in the same location for windows with the same bottom/right edge, but different height/width.

Thanks to https://github.com/Cigaes for the patches and idea. I just cleaned up the code a bit.

somiaj and others added 2 commits January 2, 2023 11:33
  When computing the position and size of a scaled window in FvwmPager,
  compute the position of all four edges instead of the top/left corner
  and the width/height. This makes it so when rounding the bottom/right
  edge position, it is the same for all windows at the same position with
  different sizes. This makes the round issues less visible and removes
  off by one pixel issues in many cases (especially for small pagers).

  This also cleans up the function which scales the window along with
  removing an unneeded variable from the stack.
  When computing the size and location of the FvwmPager view port
  for the current page, compute the position of all four edges
  instead of the top/left position and height/width. This makes it
  so any rounding do to scaling is consistent with DrawGrid(), and
  fixes some off by one pixel issues with the view port and the grid
  on small pagers whose size is not even multiples of the number of
  pages (which is now possible since size hints were removed).
@ThomasAdam ThomasAdam self-assigned this Jan 2, 2023
@ThomasAdam ThomasAdam added the type:enhancement Augmenting an existing feature label Jan 2, 2023
@ThomasAdam ThomasAdam added this to the 1.0.6 milestone Jan 2, 2023
@ThomasAdam ThomasAdam merged commit 3d6e704 into master Jan 2, 2023
@ThomasAdam ThomasAdam deleted the js/pager-math branch January 2, 2023 20:00
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Feb 15, 2023
# Changelog

## [1.0.6a](https://github.com/fvwmorg/fvwm3/tree/1.0.6a) (2023-01-16)

## What's Changed
### Other Changes
* dist: doc: include all doc sources by @ThomasAdam in fvwmorg/fvwm3#806


**Full Changelog**: fvwmorg/fvwm3@1.0.6...1.0.6a
## [1.0.6](https://github.com/fvwmorg/fvwm3/tree/1.0.6) (2023-01-14)

## What's Changed
### Breaking Changes
* remove fvwm-config by @ThomasAdam in fvwmorg/fvwm3#731
* ta/alloca by @ThomasAdam in fvwmorg/fvwm3#722
* deprecate color commands by @ThomasAdam in fvwmorg/fvwm3#738
* Ensure a default colorset is always configured. by @somiaj in fvwmorg/fvwm3#740
* commands: remove DefaultColors & DefaultColorset by @ThomasAdam in fvwmorg/fvwm3#749
* MenuStyle: Remove Depreciated options and non colorset  by @somiaj in fvwmorg/fvwm3#757
### Enhancements
* decor: allow window borders separate colours by @ThomasAdam in fvwmorg/fvwm3#730
* Update Move shuffle logic to jump to next monitor by @somiaj in fvwmorg/fvwm3#742
* conditional: screen: simplify logic by @ThomasAdam in fvwmorg/fvwm3#746
* Allow SidePic in default-config. by @somiaj in fvwmorg/fvwm3#762
* Move shuffle, ensure window inside working area. by @somiaj in fvwmorg/fvwm3#767
* Translucent Menus by @somiaj in fvwmorg/fvwm3#760
* Updates to FvwmPager scaling math to improve visual aspects due to rounding errors. by @somiaj in fvwmorg/fvwm3#790
### Other Changes
* doc: don't install fvwm3_manpage_source by @ThomasAdam in fvwmorg/fvwm3#712
* Rename .stalonetrayrc to stalonetrayrc by @wfp5p in fvwmorg/fvwm3#713
* Fix background resetting in default-config by @somiaj in fvwmorg/fvwm3#714
* desk_add: fix window counting by @ThomasAdam in fvwmorg/fvwm3#716
* remove unused variable by @omar-polo in fvwmorg/fvwm3#718
* two clock_t and time_t casts for portability by @omar-polo in fvwmorg/fvwm3#719
* changing sprintf -> snprintf & co by @omar-polo in fvwmorg/fvwm3#720
* DesktopConfiguration: send status_send() by @ThomasAdam in fvwmorg/fvwm3#724
* FvwmScript.c: fix wrong size of TabCom array by @slazav in fvwmorg/fvwm3#725
* gotodesk: simplify logic for shared/global by @ThomasAdam in fvwmorg/fvwm3#727
* Add a multicolor border example to default-config by @somiaj in fvwmorg/fvwm3#732
* Some pedantic clean up of whitespace and add missing translation strings. by @somiaj in fvwmorg/fvwm3#733
* Tweak HilightBorderColorset by @lgsobalvarro in fvwmorg/fvwm3#737
* docs: remove obsolete GNOME references by @ThomasAdam in fvwmorg/fvwm3#739
* MWMBorder: fix calculation by @ThomasAdam in fvwmorg/fvwm3#743
* Don't set border colorsets by default. by @somiaj in fvwmorg/fvwm3#747
* style: silence warning for unconsumed string by @ThomasAdam in fvwmorg/fvwm3#745
* Add split manpages to default-config. by @somiaj in fvwmorg/fvwm3#750
* FvwnIconMan use font as fallback for tips font. by @somiaj in fvwmorg/fvwm3#751
* FvwmIconMan: Don't chop window display string by @somiaj in fvwmorg/fvwm3#752
* fvwm-config: remove .in file by @ThomasAdam in fvwmorg/fvwm3#758
* FvwmPager make mini windows always round down. by @somiaj in fvwmorg/fvwm3#756
* Clean up some build warnings by @somiaj in fvwmorg/fvwm3#759
* Move shuffle modifications. by @somiaj in fvwmorg/fvwm3#764
* borders: treat 0 pixels as 1 pixel border by @ThomasAdam in fvwmorg/fvwm3#765
* AddWindow: don't crash reparenting by @ThomasAdam in fvwmorg/fvwm3#786
* ModuleSynchronous: don't segfault on free() by @ThomasAdam in fvwmorg/fvwm3#787
* FvwmIconMan: fix segfault in initialisation by @ThomasAdam in fvwmorg/fvwm3#800
* randr: quit when no screens found & not active by @ThomasAdam in fvwmorg/fvwm3#801

## New Contributors
* @wfp5p made their first contribution in fvwmorg/fvwm3#713

**Full Changelog**: fvwmorg/fvwm3@1.0.5...1.0.6
## [1.0.5](https://github.com/fvwmorg/fvwm3/tree/1.0.5) (2022-09-28)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:enhancement Augmenting an existing feature
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants