#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


14 comments on “Problem profiling a second monitor”

  1. 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

  2. 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()
  3. 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

     

  4. 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()
  5. 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

  6. I will not update wx. They use pip to install it and then I’ve the system all in a mess:

    pip allows installs to ~/.local/lib afaik. Otherwise, there’s always virtualenv.

    Is the code “Overriding wx.Display.GetFromWindow” supposed to work with version 3 or 4.

    Both. If it’s returning the correct display is the question.

  7. 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

Comments are closed.