fvwmorg / fvwm3

FVWM version 3 -- the successor to fvwm2
Other
502 stars 79 forks source link

Tk based apps are not getting allow with being swallowed by fvwm. Issue seen in both fvwmscript and fvwmbuttons #925

Open hyegeek opened 9 months ago

hyegeek commented 9 months ago

Thanks for reporting your bug here! The following template will help with giving as much information as possible so that it's easier to diagnose and fix.

Upfront Information

Please provide the following information by running the command and providing the output.

Expected Behaviour

When a tk based app with a menu button is swallowed by fvwmscript or fvwmbuttons, clicking on the menu should display that menu by the button. When the swallowing app moves, the menu display should move with it.

Actual Behaviour

When a tk based app (tried with both perl and python) has a menu button, the menu appears where the app originally displays not where it is in the swallowing window. Moving the swallowing window does not move where the menu appears, so it seems tk is not recalculating menu positions so it is probably missing some sort of event.

Enabling logging

Let me know if I need to produce a log. Should the log be on a newly run fvwm3 or is it OK if it has been running for days/weeks?

fvwm3 has a means of logging what it's doing. Enabling this when reproducing the issue might help. To do this, either change the means fvwm3 is started by adding -v as in:

fvwm3 -v

or, once fvwm3 has loaded, send SIGUSR2 as in:

pkill -USR2 fvwm3

The resulting logfile can be found in $HOME/.fvwm/fvwm3-output.log

Steps to Reproduce

I can provide one of my scripts and let you swallow it, display the menu and then move the swallowing window and display again.

Don't know. It's been a while since I've run fvwm2

Include your configuration with this issue.

Does Fvwm3 crash?

No.

Extra Information

hyegeek commented 9 months ago

In order to try to get to the bottom of what's going one, I added an event handler to my tk script to catch all configure events. When the script runs on it's own, it gets lots of config events as it moves around the screen. When the script is swallowed an the swallowing windows is moved, the script does not see any configure events.