Bug 440226

Summary: Screenshot resolution is reduced on Plasma Wayland session when the display is scaled
Product: [Applications] Spectacle Reporter: daanturo
Component: GeneralAssignee: Boudhayan Gupta <me>
Status: RESOLVED FIXED    
Severity: normal CC: bugseforuns, kde, meven.car, meven29, nate
Priority: NOR Keywords: wayland
Version: 21.04.3   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=409762
Latest Commit: Version Fixed In: 21.08.1

Description daanturo 2021-07-24 13:58:35 UTC
My screen's native resolution is 1920x1080

STEPS TO REPRODUCE
1. Set scaling to 125% (and re-login)
2. Take a full-screen screenshot with Spectacle
3. Save the screenshot

OBSERVED RESULT
The Screenshot's resolution is scaled down to 1536x864
(which is exactly (1920 / 1.25)x(1080 / 1.25))

EXPECTED RESULT
The Screenshot's resolution is the same as native

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 5.22.3
KDE Frameworks Version: 5.84.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION
Comment 1 Patrick Silva 2021-07-25 02:09:14 UTC
Fixed some time ago (see bug 409762), but I also can reproduce on my Arch Linux.
Comment 2 Nate Graham 2021-08-04 23:53:47 UTC
Cannot reproduce with integer scale factors; seems to only affect fractional scale factors.
Comment 4 Bug Janitor Service 2021-08-18 18:24:24 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/spectacle/-/merge_requests/75
Comment 5 Vlad Zahorodnii 2021-08-19 06:36:20 UTC
You need to use "Full Screen (All monitors, scaled)" mode. "Full Screen (All monitors)" returns the screenshot in the logical pixels.
Comment 6 Méven Car 2021-08-19 07:13:42 UTC
(In reply to Vlad Zahorodnii from comment #5)
> You need to use "Full Screen (All monitors, scaled)" mode. "Full Screen (All
> monitors)" returns the screenshot in the logical pixels.

The previous behavior was the opposite. AllScreens was native size, and AllScreenScaled was logical (scaled was implying logic size).
And AllScreens makes sense even when you have 1 screens whereas AllScreensScaled makes no sense, the UI uses that to only expose only Grabmob::AllScreens when there is only one screen.
Comment 7 Méven Car 2021-08-19 10:41:59 UTC
Git commit 9e18fa5aab0ac77d1813c99e2230368873f1b0a4 by Méven Car.
Committed on 19/08/2021 at 07:15.
Pushed by meven into branch 'master'.

Wayland: when screens have same dpr use NativeSize

For GrabMode::AllScreens

M  +2    -2    src/Platforms/PlatformKWinWayland2.cpp

https://invent.kde.org/graphics/spectacle/commit/9e18fa5aab0ac77d1813c99e2230368873f1b0a4
Comment 8 Méven Car 2021-08-19 10:44:11 UTC
Git commit a91f88d5a1ec6e08f9c5f142ed4bc1421d6d32bf by Méven Car.
Committed on 19/08/2021 at 10:43.
Pushed by meven into branch 'release/21.08'.

Wayland: when screens have same dpr use NativeSize

For GrabMode::AllScreens

M  +2    -2    src/Platforms/PlatformKWinWayland2.cpp

https://invent.kde.org/graphics/spectacle/commit/a91f88d5a1ec6e08f9c5f142ed4bc1421d6d32bf