On 07-05-2020 11:48, Ulrich Sibiller wrote:
- well, the current source is this one: https://github.com/ArcticaProject/nx-libs
- go to nx-X11/programs/Xserver/hw/nxagent
- edit Screen.c and Window.c. find these lines right at the beginning: #undef TEST #undef DEBUG and change them to #define TEST #define DEBUG
If you want to have really much output that tends to get overwhelming and unreadable you can do the same for Events.c
- in the toplevel directory run debuild -uc -us
(for other distros see README.NX-development in the toplevel directory)
- Install the resulting packages
- run you session, replicate the issue
- post ~/.xg2o/<your session>/session.log (maybe strip it a bit)
Please ask if you have questions/problems.
Thanks Uli
Here is a first set of (stripped) logs. The procedure was simple, but is of course not 100% reproducible because the mouse movements can be different each time. But the import condition is that the window is only **moved** by clicking on the top bar and dragging it somewhat to the right and a bit down. After the move, keep the mouse down and keep it there for two or three seconds.
Three remote desktops: (standard) Ubuntu, Gnome Classic, MATE. The remote session size is 800x600. The local desktop is 1440x900.
To start I have only grepped the lines with "nxagentChangeScreenConfig:"
In the case of MATE the bug does not show up, but in the other two cases it does.
===============MATE==================== nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55aa1ec8be60] nxagentChangeScreenConfig: grabstate [SERVER_GRABBED], client [(nil)] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 1,56 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55aa1ec8be60] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55aa1edd4bb0] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 119,99 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55aa1ec8be60] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55aa1edd4bb0] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 300,164 800x600 nxagentChangeScreenConfig: returning [1] ===============MATE====================
===============Ubuntu=================== nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_GRABBED], client [(nil)] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 67,57 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [630] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 630 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x630 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [660] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 660 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x660 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [690] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 690 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x690 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [720] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 720 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x720 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [750] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 750 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x750 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [780] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x56398886cef0] nxagentChangeScreenConfig: Changing config to 800 x 780 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x780 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [843] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x56398886cef0] nxagentChangeScreenConfig: Changing config to 800 x 843 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x843 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [843] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x56398886cef0] nxagentChangeScreenConfig: Changing config to 800 x 843 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,57 800x843 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [843] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 843 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x843 nxagentChangeScreenConfig: returning [1] ===============Ubuntu===================
Kees
Hmm, this does not bring any new information. Can you send me the full logs (not on the list, I'd say)
Uli
On Sun, May 10, 2020 at 12:38 AM Kees Bakker <kees@ijzerbout.nl> wrote:
On 07-05-2020 11:48, Ulrich Sibiller wrote:
- well, the current source is this one: https://github.com/ArcticaProject/nx-libs
- go to nx-X11/programs/Xserver/hw/nxagent
- edit Screen.c and Window.c. find these lines right at the beginning: #undef TEST #undef DEBUG and change them to #define TEST #define DEBUG
If you want to have really much output that tends to get overwhelming and unreadable you can do the same for Events.c
- in the toplevel directory run debuild -uc -us
(for other distros see README.NX-development in the toplevel directory)
- Install the resulting packages
- run you session, replicate the issue
- post ~/.xg2o/<your session>/session.log (maybe strip it a bit)
Please ask if you have questions/problems.
Thanks Uli
Here is a first set of (stripped) logs. The procedure was simple, but is of course not 100% reproducible because the mouse movements can be different each time. But the import condition is that the window is only **moved** by clicking on the top bar and dragging it somewhat to the right and a bit down. After the move, keep the mouse down and keep it there for two or three seconds.
Three remote desktops: (standard) Ubuntu, Gnome Classic, MATE. The remote session size is 800x600. The local desktop is 1440x900.
To start I have only grepped the lines with "nxagentChangeScreenConfig:"
In the case of MATE the bug does not show up, but in the other two cases it does.
===============MATE==================== nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55aa1ec8be60] nxagentChangeScreenConfig: grabstate [SERVER_GRABBED], client [(nil)] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 1,56 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55aa1ec8be60] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55aa1edd4bb0] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 119,99 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55aa1ec8be60] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55aa1edd4bb0] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 300,164 800x600 nxagentChangeScreenConfig: returning [1] ===============MATE====================
===============Ubuntu=================== nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_GRABBED], client [(nil)] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 67,57 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [630] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 630 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x630 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [660] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 660 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x660 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [690] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 690 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x690 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [720] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 720 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x720 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [750] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 750 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x750 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [780] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x56398886cef0] nxagentChangeScreenConfig: Changing config to 800 x 780 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x780 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [843] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x56398886cef0] nxagentChangeScreenConfig: Changing config to 800 x 843 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x843 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [843] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x56398886cef0] nxagentChangeScreenConfig: Changing config to 800 x 843 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,57 800x843 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [843] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x563988763e40] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x5639888ab690] nxagentChangeScreenConfig: Changing config to 800 x 843 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 439,159 800x843 nxagentChangeScreenConfig: returning [1] ===============Ubuntu===================
===============Gnome Classic================ nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_GRABBED], client [(nil)] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 0,65 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [600] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 600 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x600 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [637] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 637 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x637 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [674] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 674 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x674 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [711] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 711 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x711 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [748] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 748 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x748 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [785] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 785 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x785 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [801] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 801 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x801 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [801] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 801 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,65 800x801 nxagentChangeScreenConfig: returning [1] nxagentChangeScreenConfig: called for screen [0], width [800] height [801] nxagentChangeScreenConfig: screenInfo.screens[0]->root [0x55efc5939ee0] nxagentChangeScreenConfig: grabstate [SERVER_UNGRABBED], client [0x55efc5a96170] nxagentChangeScreenConfig: Changing config to 800 x 801 nxagentChangeScreenConfig: Xinerama is disabled nxagentChangeScreenConfig: current geometry: 205,132 800x801 nxagentChangeScreenConfig: returning [1] ===============Gnome Classic================
Kees