#12456 (Bug) Problem profiling a second monitor
+1 0
Closed as Can't Fix
Created by Jean-Luc Coulon
Last modified
Hi,
I run LInux / Gnome / Xwayland
I run the svn version: r5349 | fhoech | 2018-06-22 14:19:11 +0200
(DisplayCAL reports 3.6.0.2 Beta)
I’ve 2 monitors:
- monitor 1 is a Samsung on HDMI
- monitor 2 is a HP on VGA
Everything (sensor, monitors) are seen by DisplayCAL as they should.
I want to profile monitor 2.
- I select it in the dropdown list.
- I get the “measure area” on monitor 2.
- I click “Calibrate & profile”
- The measurement area appears (BUT without the button to start the measurement. For the button to appear, I’ve to resize the area).
- I Click “Start measurement”
- The interactive display adjustment window appear on Monitor 2 (as expected)
- The grey patch appears on… Monitor 1 while I was trying to profile the other one (Monitor 2).
When I’m back to the may window (closing the interactive window or waiting the calibration to fail), the Monitor 1 is selected.
Regards
Jean-Luc
What are the coordinates of the respective screens shown in DisplayCAL?
Hi FLorian,
Monitor 1, Output XWAYLAND0@ 0, 0, 1920×1280
Monitor 2, Output XWAYLAND1@ 1920, 0, 1920×1280
BTW, I managed to profile it… disabling the other one in the window manager.
J-L
Which version of wxPython are you using, and is it a GTK2 or GTK3 build?
If you run the following python2 code, drag the window to the 2nd screen and close it, does the output match the 2nd screen’s coordinates?
#!/usr/bin/env python2 # -*- coding: utf-8 -*- from __future__ import print_function import wx app = wx.App(0) frame = wx.Frame(None) def on_close(event): display_index = wx.Display.GetFromWindow(frame) print("Window closed on wx.Display(%i) @ %i, %i, %ix%i" % ((display_index, ) + tuple(wx.Display(display_index).Geometry))) event.Skip() frame.Bind(wx.EVT_CLOSE, on_close) frame.Show() print("No. of displays:", wx.Display.GetCount()) app.MainLoop()Hi Florian,
1 – wxPython:
From Debian, python-wxgtk3.0 version 3.0.2.0
So it is grk3 I suppose.
2 – Your code
No. of displays: 2
Window closed on wx.Display(0) @ 0, 0, 1920×1080
Which seems to be wrong (If I close it on any of the displays, I get always the same
Regards
Jean-Luc
Probably a Wayland-related issue. Try updating to wxPython 4 (Phoenix), see https://wxpython.org/pages/downloads/
Overriding wx.Display.GetFromWindow:
#!/usr/bin/env python2 # -*- coding: utf-8 -*- from __future__ import print_function import wx @staticmethod def get_display_from_window(w): for i in xrange(wx.Display.GetCount()): if wx.Display(i).Geometry.Contains(w.Position): return i return wx.NOT_FOUND wx.Display.GetFromWindow = get_display_from_window app = wx.App(0) frame = wx.Frame(None) def on_close(event): display_index = wx.Display.GetFromWindow(frame) print("Window closed on wx.Display(%i) @ %i, %i, %ix%i" % ((display_index, ) + tuple(wx.Display(display_index).Geometry))) print("Position of closed window:", frame.Position) display_index = wx.Display.GetFromPoint(frame.Position) print("Position lies on wx.Display(%i) @ %i, %i, %ix%i" % ((display_index, ) + tuple(wx.Display(display_index).Geometry))) event.Skip() frame.Bind(wx.EVT_CLOSE, on_close) frame.Show() print("No. of displays:", wx.Display.GetCount()) app.MainLoop()Florian,
I will not update wx. They use pip to install it and then I’ve the system all in a mess: the new file is locally installed but other applications will try to use them. I’ve a very bad experience with it.
I will have a look if I can build a package for version 4, but probably I will have lots of unmet dependencies or packages depending on version 3.
Is the code “Overriding wx.Display.GetFromWindow” supposed to work with version 3 or 4.
Regards
J-L
pip allows installs to ~/.local/lib afaik. Otherwise, there’s always virtualenv.
Both. If it’s returning the correct display is the question.
This is what I get with debian version of wx:
No. of displays: 2
Window closed on wx.Display(0) @ 0, 0, 1920×1080
Position of closed window: (52, 39)
Position lies on wx.Display(0) @ 0, 0, 1920×1080
What’s the position if you drag it to the other screen and close it there?
This is what I did
launch the code > move the window > close the window (with the top bar button)
J-L
So, result is the same on both screees? Not even the position is different?
Everything is identical, even the position…
Ok, thanks. Will close as “cantfix”.