-
Notifications
You must be signed in to change notification settings - Fork 11
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
roxterm sometimes changes geometry when tabs closed #45
Comments
This is depressing news. Interaction between vte and gtk for window sizing is a nightmare and I thought I'd found a solution that was simpler and more reliable than before. Have you tried 1.19.x? I made further changes to the tab management code which I hope have laid this to rest, and I can't reproduce the problem with 1.19.4. Does it only happen when closing the last tab but one, leaving just one terminal in the window? Or when there are so many tabs or their titles are so long they don't all fit? Do you have "Always show tab bar" and/or the menu bar enabled? I'll probably have to leave this as far as 1.18.5's freeze for Debian goes, because it doesn't seem serious enough compared to the likely size of a diff to fix it. Original comment by: realh |
Original comment by: nignag |
That's a big monitor and/or small fonts you're using! This sounds like a race condition. I couldn't reproduce the problem, but I must admit I didn't try very hard. I've added a stage to the close tab handler which might fix it, but then again it might well not! It shouldn't do any harm, although it could slow down the closing process so that when you hold down the close keys the closing lags badly behind the keyboard repeat rate. Can you pull and build from git? There are instructions for fetching roxterm with git in the HTML documentation and how to then build a debian package in the INSTALL..Debian file. It's quite easy as long as you don't mind downloading the files from git and a lot of -dev packages you might not have installed otherwise. Original comment by: realh |
Original comment by: nignag |
Two small things I've noticed while building roxterm using a clean git checkout: Beside running "apt-get build-dep roxterm" I've also had to install autopoint and po4a. Maybe it's worth mentioning this in INSTALL.Debian in the "Use of git" section. And now some nitpicking (also in INSTALL.Debian): s/boostrap.sh/bootstrap.sh/ Original comment by: nignag |
I've just noticed that I can also make the problem appear by a simple single click on a Close button of a tab when I use openbox or icewm. With icewm the problem appears nearly every time when I click on a close button of a tab. With openbox the probability for the problem to appear is much smaller. Original comment by: nignag |
When I do s.th. like this --- roxterm-1.19.4-3-g260f1c4.orig/src/multitab.c 2010-10-24 02:13:28.504183726 +0200 static gboolean multi_tab_deferred_close_action(gpointer handle)
and click ctrl+shift+w three times within three seconds I get (gdb) bt Original comment by: nignag |
Updated comment: s/tab/active tab/ Original comment by: nignag |
The problem never occurs when closing an inactive tab. Maybe in case of a close tab request of the active tab by the user, a solution is to first switch to another tab and then to close the previously active tab. Or another solution: Original comment by: nignag |
Small consolation, but it looks like you're not alone: https://bugs.launchpad.net/ubuntu/+source/roxterm/+bug/665730. The crash is because the sleep() gives you a chance to queue up multiple attempts to close the same window. I'm not sure whether that could happen with the idle alone, but I'll revert that change anyway seeing as it doesn't fix the problem. Changing the selected tab before closing the old one might be a good way to fix this, thanks for noticing that. I've noted your points about INSTALL.Debian too. I did add po4a to the dependencies for 1.19.x but of course apt-get build-dep is still working against 1.18.x for most people, so I'd better point that out in INSTALL.Debian too. Original comment by: realh |
My guess is that the crash isn't caused by the sleep() function but by a lack of locking (It shouldn't be possible to call a tab destructor twice). The sleep() function just makes it really easy to trigger this crash. But as I've just said it's just a guess and I might be totally wrong. When using the roxterm-version.tar.gz archives, roxterm builds fine without po4a and autopoint, so the Build-Depends section in debian/control doesn't have to include them. However, po4a and autopoint are both necessary when starting with a git checkout. Original comment by: nignag |
It's the standard EOF character for the shell (where the F is stdin), it
Under normal circumstances, ie closing the tab in response to the
OK, thanks, I guess I can remove those deps and mention them in Original comment by: realh |
I managed to reproduce this with icewm, it seems to cause more size-allocate events compared to metacity. I've found a way to deal with that which fixes it for me, so please try updating from git. Original comment by: realh |
Now it's doing unwanted resizing on some other events :-(. I've got a theory why, so hang on until I have another bash at it... Original comment by: realh |
I've been using roxterm-1.19.4-6-g1b8a3dd-1 (the previous git checkout) for the last few days and haven't noticed any unwanted resize issues yet. I've been using a private build of IceWM which contains several fixes and modifications. Original comment by: nignag |
I've got it working correctly for me now. I'm not entirely happy with it, Please could everyone try the latest git snapshot: git clone git://roxterm.git.sourceforge.net/gitroot/roxterm/roxterm Instructions for building a Debian package from this are in the file Original comment by: realh |
After a first short round of testing the latest snapshot from the git repository I've found that continously pressing icewm's toggle fullscreen key (Alt+F11) for a few seconds leads to resize problems. When switching back from fullscreen the size of the roxterm window approximately equals the size of the whole screen. I've also found fluxbox to behave the same here. Roxterm might interfere with icewm saving/restoring size hints when switching to/from fullscreen (YFrameClient::saveSizeHints and YFrameClient::restoreSizeHints in src/wmclient.cc). Original comment by: nignag |
Running sh -c 'roxterm & roxterm --tab' from an rxvt now shows this nice popup error message Unable to send/get reply to D-BUS message: Method "NewTerminal" with signature "sssss" on interface "net.sf.roxterm" doesn't exist and also segfaults sometimes. Original comment by: nignag |
Correction: The command line in my previous comment should've been: sh -c 'roxterm & sleep 5; roxterm --tab' This leads to a popup containing an error message but not to a segfault. Original comment by: nignag |
I noticed the error message too. I think I know what's causing it, but to fix it I either have to regress one of two minor bugs/feature requests or add a lot of complication to the code. Original comment by: realh |
I usually invoke roxterm by pressing Super+t which runs 'roxterm --tab' here, so it would be really nice if this error message could be avoided somehow. But I also could stick with roxterm 1.19.4-6-g1b8a3dd-1 or 1.18.5-1. Both of these versions work well enough for me. Original comment by: nignag |
I decided to regress the old feature for now so the latest git should work better for you. I'll try to fix the fullscreen problem later. Original comment by: realh |
I can reproduce the fullscreen problem with gnome-terminal and compiz so I've reported a similar bug against gnome-terminal: https://bugzilla.gnome.org/show_bug.cgi?id=634240. TBH I don't think it's worth trying very hard to fix this, because holding down the fullscreen key isn't a normal thing to do. Original comment by: realh |
When tabs are closed using ctrl+shift+w, there is a small chance of maybe 10% that the roxterm window becomes smaller by one character in each direction (i.e 100x24 => 99x23). Observed on openbox and icewm with roxterm since version 1.19.1. Version 1.18.5 on sourceforge is not affected. However, the Debian versions are affected since 1.18.5-2.
Reported by: nignag
Original Ticket: roxterm/bugs/44
The text was updated successfully, but these errors were encountered: