flameshot-org / flameshot

Powerful yet simple to use screenshot software :desktop_computer: :camera_flash:
https://flameshot.org
GNU General Public License v3.0
23.92k stars 1.52k forks source link

"Pin image on Desktop" pins the image off screen - Windows - Multi-monitor #3623

Open shmitchel opened 3 weeks ago

shmitchel commented 3 weeks ago

Flameshot Version

Flameshot v12.1.0 (96c2c82e)
Compiled with Qt 5.15.2
winnt: 10.0.19045
windows: 10

Installation Type

Using the ready-made package from Github Releases

Operating System type and version

Windows 10 Pro | Version 22H2

Description

With a multi-monitor setup (possibly important: screens are different resolutions and not aligned), pinning an image to the Desktop will often pin it off-screen. I can confirm that the image pin is created by launching Task View and noting that the pinned image is still visible:

image

Steps to reproduce

Context: multiple monitors set up (probably important: with different dimensions and some negative X/Y bounds (detailed monitor configuration provided under System Information))

  1. Launch Flameshot using either the PrtScn keyboard shortcut or the Windows Taskbar Launcher icon (equivalent of flameshot gui)
  2. Select a region
  3. Click the Pin image to the Desktop icon
    Pinned image should not be visible on-screen
  4. Launch Task View (Win+Tab) and verify that a pinned window has in fact been created (just not visible)
    A "flameshot" window with the pinned image should appear in the list of windows open on the desktop
  5. Close Task View and note that the pinned image is still not visible; it's off-screen

Screenshots or screen recordings

https://i.imgur.com/n04MDj6.mp4

Monitors

The monitor labels used below come from the monitor device names (provided below under System Information > Monitor Configuration)

Video Description

Timestamps

Timestamp Description
00:00-00:07 Launching Flameshot and selecting region on DISPLAY1
00:07-00:07 Clicking "Pin image to Desktop"
00:07-00:09 The mouse freaks out that the pinned image is not visible (it's a bit of a drama queen)
Note: at this point, the image is pinned and has keyboard focus; it's simply below the bottom of DISPLAY1
00:09-00:13 Launch Task View to show that the screenshot is in fact open (it's below DISPLAY1 right now)
00:13-00:15 Clicking Win+Shift+ to move the pinned image to DISPLAY4 (out of frame to the right) and then to DISPLAY5 (left in frame). This action for some reason gets the pinned image on-screen.
00:15-00:19 Moving pinned image around DISPLAY5 to demonstrate it is now on-screen
00:19-00:22 Moving pinned image around DISPLAY1, where it was originally selected/pinned, now finally on-screen 😄

System Information

1. Operating system and version

2. Monitor Configuration

image
Labels derived from DeviceName entries below)

PS> Add-Type -AssemblyName System.Windows.Forms
PS> [System.Windows.Forms.Screen]::AllScreens

BitsPerPixel : 32
Bounds       : {X=-1920,Y=182,Width=1536,Height=864}
DeviceName   : \\.\DISPLAY1
Primary      : False
WorkingArea  : {X=-1920,Y=182,Width=1536,Height=824}

BitsPerPixel : 32
Bounds       : {X=1920,Y=-1305,Width=1440,Height=2560}
DeviceName   : \\.\DISPLAY4
Primary      : False
WorkingArea  : {X=1920,Y=-1305,Width=1440,Height=2520}

BitsPerPixel : 32
Bounds       : {X=0,Y=0,Width=1920,Height=1080}
DeviceName   : \\.\DISPLAY5
Primary      : True
WorkingArea  : {X=0,Y=0,Width=1920,Height=1040}

PS> Get-WmiObject WmiMonitorID -Namespace root\wmi

__GENUS                : 2
__CLASS                : WmiMonitorID
__SUPERCLASS           : MSMonitorClass
__DYNASTY              : MSMonitorClass
__RELPATH              : WmiMonitorID.InstanceName="DISPLAY\\LEN40BA\\4&14b6fa&0&UID265988_0"
__PROPERTY_COUNT       : 9
__DERIVATION           : {MSMonitorClass}
__SERVER               : SOME-PC
__NAMESPACE            : root\wmi
__PATH                 : \\SOME-PC\root\wmi:WmiMonitorID.InstanceName="DISPLAY\\LEN40BA\\4&14b6fa&0&UID265988_0"
Active                 : True
InstanceName           : DISPLAY\LEN40BA\4&14b6fa&0&UID265988_0
ManufacturerName       : {76, 69, 78, 0...}
ProductCodeID          : {52, 48, 66, 65...}
SerialNumberID         : {48, 0, 0, 0...}
UserFriendlyName       :
UserFriendlyNameLength : 0
WeekOfManufacture      : 0
YearOfManufacture      : 2017
PSComputerName         : SOME-PC

__GENUS                : 2
__CLASS                : WmiMonitorID
__SUPERCLASS           : MSMonitorClass
__DYNASTY              : MSMonitorClass
__RELPATH              : WmiMonitorID.InstanceName="DISPLAY\\DELA19A\\5&216fc4e&0&UID4608_0"
__PROPERTY_COUNT       : 9
__DERIVATION           : {MSMonitorClass}
__SERVER               : SOME-PC
__NAMESPACE            : root\wmi
__PATH                 : \\SOME-PC\root\wmi:WmiMonitorID.InstanceName="DISPLAY\\DELA19A\\5&216fc4e&0&UID4608_0"
Active                 : True
InstanceName           : DISPLAY\DELA19A\5&216fc4e&0&UID4608_0
ManufacturerName       : {68, 69, 76, 0...}
ProductCodeID          : {65, 49, 57, 65...}
SerialNumberID         : {71, 67, 71, 70...}
UserFriendlyName       : {68, 69, 76, 76...}
UserFriendlyNameLength : 13
WeekOfManufacture      : 9
YearOfManufacture      : 2021
PSComputerName         : SOME-PC

__GENUS                : 2
__CLASS                : WmiMonitorID
__SUPERCLASS           : MSMonitorClass
__DYNASTY              : MSMonitorClass
__RELPATH              : WmiMonitorID.InstanceName="DISPLAY\\DELD0A1\\5&216fc4e&0&UID4353_0"
__PROPERTY_COUNT       : 9
__DERIVATION           : {MSMonitorClass}
__SERVER               : SOME-PC
__NAMESPACE            : root\wmi
__PATH                 : \\SOME-PC\root\wmi:WmiMonitorID.InstanceName="DISPLAY\\DELD0A1\\5&216fc4e&0&UID4353_0"
Active                 : True
InstanceName           : DISPLAY\DELD0A1\5&216fc4e&0&UID4353_0
ManufacturerName       : {68, 69, 76, 0...}
ProductCodeID          : {68, 48, 65, 49...}
SerialNumberID         : {75, 89, 75, 77...}
UserFriendlyName       : {83, 69, 50, 55...}
UserFriendlyNameLength : 13
WeekOfManufacture      : 12
YearOfManufacture      : 2018
PSComputerName         : SOME-PC

3. Linux DE / Compositor

N/A ☹️