-
-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In global DesktopConfiguration mode, Wait XTerm fails after changing current desk from 0 0 to 0 1 #24
Comments
Hi, I've tried, but I can't seem to reproduce this. If I set This is tested on |
Hi Thomas, I belive this behaviour was introduced outside master, during this "ta/gh-20-2" session. I have made video with this "xterm stampedo". To reproduce, conditions must be met: ta/gh-20-2, DesktopConfiguration global, and function finished on first screen with xterms left on place. If xterms on Virtual-0 are killed before running this on Virtual-1, bug will not be triggered. Beware of "ps -ef | grep xterm" on the end: it was bad match, because grep matched also "sh -c" line + one non-function xterm on Virtual-1. There are really 16 xterms on Virtual-0 and 16 on Virtual-1 ( |
Hi, Hmm, that's weird. I'll take a look on that branch, thanks. The video definitely helps. :) |
Hi Thomas, Yeah, pretty much well. Working from home, in the same shit as the rest of the planet, plus calculating damage from nasty earthquake from 22. 3. 2020. for part of city works funds for repairs of the roof and one wall. At least optic cable from ISP is working well. :) Let's go to business! FvwmPager in gh-22 branch is working, altrough it is not aware of the geometry when second screen is turned on and configured until FVWM is restarted. My testing function is working ok, altrough on the end of the function, page 1 0 is visible on the right monitor, but this should be just an extension of the page 0 0 (doesn't happen after 'Restart'). After FVWM Restart command, f_TestSDP correctly places xterm windows on Virtual-0 screen, but when I repeat this on the Virtual-1, all XTerm windows are fired up fast, and end up on Virtual-0, Desk 1, page 0 0. This can be seen on my "Global Pager" configuration of the FvwmPager on the end, and even better as WindowList after that. Here is the video of the test: |
EDIT: After Fvwm Restart (with my dialog) on video, you can see how Front Panel (FvwmButtons) ended up in top right corner and I manually (Ctrl+Esc) placed it back to the bottom center of the screen. Maybe this is related to the work on #28 described by other reporters. |
Hi @NsCDE, Yes, this is weird. I get slightly different behaviour with Can you attach the latest version of your script you're using for Cheers, |
Hi Thomas, Attaching f_TestSDP used to create latest video and f_TestSDP2 which I created now and with which this bug is not triggered. Difference is: I'm calling xterm with custom class " EDIT: In DesktopConfiguration per-monitor, with f_TestSDP2 function plays to the end respecting Wait's, but when pointer is on Virtual-1, nevertheless all xterms end up on Virtual-0, in per-monitor is the difference they all end up on desk 0, page 0 0. |
Hi @NsCDE, The problem here is that without specifying a monitor, or knowing the destination of the window we're about to place on the screen, we don't know which monitor we should move the page for. When you don't specify a monitor, the monitor with the cursor is assumed to be the target monitor. On
Would switch to If you change your script(s) to make use of the It's difficult to know how to solve this properly. I suppose your script could infer that the monitor we should reference is the same monitor that we are placing XTerm on, but that's going to get very difficult to do. So I'm not sure how to "fix" this, in that the solution is to specify the monitor you want, but I'm sure we could do better than that. |
Hi Thomas, Thomas Adam wrote:
That's what I'm trying to tell you. Even if cursor is on the Virtual-1, window pops up on Virtual-0. Fvwm command "Echo $[pointer.screen]" correctly identifies screen on which cursor resides. Maybe we can move this as different / separate issue?
Good, but I will like to propose two things here:
I'm attaching you f_TestSDP3 and f_TestSDP4. They use GotoDeskAndPage with monitor name as you proposed. f_TestSDP3 is specifying custom unique resource name for xterm windows, while f_TestSDP is not.
To me it looks like window placing from function somehow cannot read $[pointer.screen], but echoed text inside xterm (after word DYNAMIC) clearly indicates that this part of fvwm3 knows on which monitor is the cursor, while xterm is nevertheless positioned on Virtual-0, even if cursor is on Virtual-1.
Even when I specify monitor (see attachments, $0 is monitor name), xterm goes on the wrong screen. |
Hi Thomas, Important! New discovery: After logging out and in, configuring second monitor again, this behaviour where all windows are put on Virtual-0 stopped. This should be treated as a glitch, maybe some bad interaction with Xorg or some other fvwm3 bug which should be triggered again to be confirmed. Nevertheless, problems with "Wait XTerm" in global DesktopConfiguration mode when going from desk 0 to desk 1 remains. Since f_TestSDP version with xterms with unique resource ID doesn't trigger this behaviour, my assumption is that "Wait" in fvwm3 (global) somehow "sees" xterms from the desk 0 on desk 1 as if they just appeared and "Wait" breaks, all xterms are fired even before GotoDesk, GotoPage, or GotoDeskAndPage can be finished. Additionally, page numbers are again incorrect. xterm for page 1 1 ends up on 0 0, 0 1 on 1 0, 0 0 on 0 1, and 1 0 on 1 1. Tested with f_TestSDP3 attached above. In per-monitor mode, pages are correct. I'm using 2x2 page matrix. Moreover, in DesktopConfiguration per-monitor, f_TestSDP now simply dies after filling desk 0, and first page (0 0) of desk 1. Tried logging out and in, same thing. Pager occasionally segfaults (will fill separate issue when I catch more time). P. S. |
Hi @NsCDE, I hope you're well and sane! Have you recovered (as much as one can in such circumstances) from the earthquake? Bloody awful timing given how the world is having to deal with Coronavirus as well. :/ I've pushed some further commits to So now, using
Where If though, I do:
Where This is expected bahviour. One approach to this would be to do:
Which would then mean the XTerms are placed correctly on each page for HDMI2. Please give this your usual thorough testing which you've been so good and supportive of. I really do appreciate it! With regards to the FvwmButtons observation, I've not seen that yet -- if that's still happening for you, let me know and I'll install NsCDE and take a look. But I'm really keen to make sure that the per-monitor per-page stuff is looking OK. There is a slight bug at the moment with Cheers again, |
Hello, So, in addition to what I put in #24 (comment), the following other changes have happened:
I've tested a few versions of your Please break it and let me know the results! |
Hi Thomas, There were some pros and cons in that having stongest earthquake in 140 years with corona quarantine. Many waiters preparing terraces in the old town center would be injured or dead from ornaments falling from the buildings, but since all this was closed just 3 days before the earthquaqe in all country, this was a lucky occurence. Only 1 person died and 20 were injured ... which is unbelivable small for he city of 1 million. Things are fixing slowly ... it could be worse seizmoligists said. Now we are probably ok for next century and have the chance to use better materials than 19th century Austria-Hungary "K und K" monarchy architects. :) Let's go to the bussines: f_TestSDP3 is using not only new GotoDeskAndPage syntax with monitor name, but also starting xterm with "-name ID-$[desk.n]-$[page.nx]-$[page.ny]" to ensure every desk/page combinations gets unique X resource name, and this is waited for. If I try it with "old" f_TestSDP, it fires up everything after passing desk 0 on the second monitor as usual. Important finding: I have suspected this days something ... and tried this test function with fvwm2.
Now, this means two things:
Now you should decide what to do with this: should we debug this situation anyway, or revert on manual (or invent different function for) testing (opening windows) without f_TestSDP in the future? I'm attaching that version of f_TestSDP6 P. S. PipeRead 'echo "*FrontPanel: Geometry 1015x79+$(( This expands nicely on FVWM 2.6.X, but fails on FVWM3. On full HD screen If I remove nested infostore definition (BTW, this nesting works nicely across FVWM), and hardcode number that will come there, I still don't get it where it shoud be. It ends up someware over the top. I can get it again back with one keybinding (Ctrl+Escape) which between other things makes "Move screen c 50-50w -0p ewmhiwa". This started on fvwm3 approx ... some month ago. |
Hi Again, I saw your next comment when I alredy send the past one. :) I have started to write it yesterday and didn't had a chance to finish it until few minutes ago. Please see my findings. In the meantimem I'm going to fetch your new commits, recompile and test. |
In global ConfigurationMode page numbers are now totally correct. Perfect with no omission on all 4x4 pages! This solves not only fvwm3, but even older problem.
P. S. EDIT: |
Hi @NsCDE I'll take a look at FvwmButtons via #28 as it will be the same problem whereby parameter expansion wil be using the wrong monitor, and I don't yet have a good solution for this. This is why
... that should help. Also, don't forget that if you're expecting those XTerms to be on a different screen to where the geometry string is going to put them, you will have to use:
This is what's working for me (or seems to be). As far as the behaviour of the @NsCDE -- please can you itemise the things which I need to look at and fix? I'm starting to drown a little with all the information, and want to make sure I don't miss anything. Perhaps you could use a markdown table or something? Cheers, |
Hi Thomas, Ok, let's make some order here. You are right, I'm mixing couple of things in this issue as I find them on the fly. Let's continue with FvwmButtons geometry on restart at #28 and I can tell you that focusing problems dissapeared in latest ta/gh-22, so let's focus on desk and page dance. Current state of the things:
Here is the video: https://youtu.be/FYtarL29488
|
Hello!
OK, thank you. That's encouraging. Although FvwmPager largely works, there's still a few other things which #44 will need to be addressed by. I'm going to close #22 for now.
OK, that's interesting, as I cannot reproduce this behaviour at all. It's working fine for me on both my main computer, and a dual-head setup in virt-manager. If you say this is happening in fvwm2, then it's an existing bug I need to look at, but not something that's going to block fvwm3's 1.0 release. As an aside, @NsCDE -- can you also try your script (
is rather old-fashioned, and most people will be using:
Potentially, with
Strange, as I can't reproduce this. Once the window is on the page, it's all good, and I don't see windows being moved incorrectly or incorrectly assigned.
So what I notice here is when one of the windows is put on the wrong page, it's probably because of the So, just to summarise:
I think that:
@NsCDE -- I don't want to push too much on to you, but are you happy to rewrite a script that uses |
I have wrote f_TestSDP8. :) It avoids Wait bug, but with the effect of segfault if ommiting SkipMapping. Even in one-screen mode. If defined in Style, It even crashes while running older versions of f_TestSDP (with goto's) as soon as it finishes desk 0 - on the same action/place as "Wait XTerm", but it doesn't fire up all at current page, but crashes fvwm3. SkipMapping covers/masks this crash. I will fill new issue, but first let me comment other things in this issue:
EDIT: f_TestSDP8 is without SkipMapping on Style commands. |
Thanks, I've pushed a fix for I'll take a look at the other issues. Thanks for |
Hi @NsCDE, So, I think I have solved the problem of
This makes Please update your git repo in the usual way and give things another test, if you can. For reference, this is commit 211a17f |
Just be careful when intepreting data from f_TestSDP8: info aboud desk and pages after DYNAMIC word in xterms is false. This is expected with StartsOn* vs Goto* approach as I understand. BTW, there is a strange behaviour of f_TestSDP8 with per-monitor desktop configuration: with pager and with firing xterms on second monitor. I will fill another issue ... EDIT: coming with 211a17f ... |
That's it. StartsOnScreen is correct. P. S. |
Finally!
Maybe. I'll think about it. So, @NsCDE -- given all of your really thorough testing (which I can't thank you for enough!), are there any further problems with window placement, either with Are there any major things I've not addressed yet here? If not, I'll move on to fixing |
Wait behaviour will probably Wait (!) some time since it exists obviously for long ago, so I think approach with StartsOn* proved that behaviour in global mode is now ok. In per-monitor mode, it behaves well as well. There are some glitches here and there, but I think we can address them one by one as time comes for that. :-) |
See: 8709aaf (Not tested this, but it looks correct. :P) |
Yes. I suspect moving to
Cool. In my daily use of this branch it's generally been OK. I'll merge this to |
1: 8709aaf - yes, this looks like good compatibility alias :) Looks simple, but I tested it anyway. It is ok.
|
OK, thanks. Closing this now, as Please open additional issue(s) around any broken functionality. |
While testing with f_TestSDP in "DesktopConfiguration global" mode, everything works on 1st screen. On second screen it works until desk is changed. In that moment pages "0 0", "0 1", "1 0" are omitted by Wait, and all 4 xterms are concentrated on page "1 1".
Notice: I have tested with only with desks 0 and 1, 2 and 3 were commented out for brevity.
The text was updated successfully, but these errors were encountered: