[Bug 37709] Qt 5 applications show menus & co. on wrong screen if outside primary screen

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Dec 17 06:57:13 CST 2014


https://bugs.winehq.org/show_bug.cgi?id=37709

Matteo Italia <matteo at mitalia.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|user32                      |winex11.drv
       Distribution|---                         |Ubuntu

--- Comment #3 from Matteo Italia <matteo at mitalia.net> ---
The problem ultimately comes from wine-X11 implementation of GetMonitorInfo,
which stores a hardcoded value (\\.\DISPLAY1) in MONITORINFOEX::szDevice for
any HMONITOR it is queried about.

Qt uses this string as the key in a map to track the screens, and in case of a
duplicated key only the last-seen monitor survives (which in turns explains the
symptoms - the menus and combos are moved to stay completely in a screen, but
only one screen appears available to Qt).

Wine's broken behavior is still present in master/HEAD, both in winex11.drv and
winemac.drv. It's interesting that in winex11.drv/xinerama.c there's already a 

/* FIXME: using the same device name for all monitors for now */

and that there's a patch (http://markmail.org/thread/fulg4oa62wrjwtsl) floating
around to fix winemac.drv.

Could the fix be as simple as doing something similar to what that patch does
(=sprintf to generate correctly numbered names for the various modules)? Or is
it necessary to do other modifications (e.g. to CreateDC and other functions
that have to parse these names) to correctly support a multi-monitor setup?

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list