-
Notifications
You must be signed in to change notification settings - Fork 13
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
Using tabbedex makes initial window too small #44
Comments
Columns being 77 is really surprising. Rows being one less has been an issue at one point but it should have been fixed since IIRC. |
That might have been the fastest reply in the history of github, thanks. I am surprised by that difference as well. However, typing A long time ago I hacked some changes into tabbedex to fix this, in the function on_resize_all_windows(). However, for better or worse (better, no doubt) that function is gone, so I can't (quickly) hack them back in. FWIW, I am using a TTF version of Inconsolata, like this: |
Those sizing issues are always annoying to debug and I pretty much never could reproduce them to be honest. Could you provide output of |
Compiling 9.30 will take a bit of time, but for now here is xrdb. (I know that for this tabbedex I need to change my resource names from "tabbed", but I'm hoping that isn't the issue.) There is a lot of stuff I think is irrelevant, but in case I'm wrong, here's everything. I see it is past time to go remove some ancient cruft.
|
I can reproduce it and it’s present in tabbed as well so it’s not tabbedex-specific issue.
‘Solves’ this issue. |
You might try experimental branch. I push a change which seems to fix the issue with internal border. There’s still issue with scroll bar not being accounted for. |
OK, I think this is fixed. Border as well as scroll bars are taken into account. |
I'll try it out. Compiling 9.30 is turning out to be a bit more of an issue than I had hoped, since it requires libptytty to be installed first. Which is leading me down the rabbit hole, unfortunately. |
If it’s non trivial it’s probably not worth bothering at this point. |
I just tried out the new tabbedex. I did a diff of the two versions (earlier today and the most recent one) and I didn't see any random number features. Maybe I need to look more closely? (I'm using fvwm2 2.6.9, should that have any relevance.) |
This is either a bit of information and/or a dumb question, since I admittedly don't understand everything going on inside tabbedex. After calling Further, I put some debug statements in start(), refresh() and configure(), and note this oddity:
The first group of print statementsfrom configure() are
and the second is the same, except for the +1. As you see, the root->width (and height) have magically changed sizes. However, this happens only sometimes when I start up urxvt, not all the time. I don't know if this sheds any light on the problem, but in case it does, here it is. The other thing I note is that even in the cases where the initial tab starts at the requested size, if I use my window manager to resize the window (by making it larger and then back to the original size) in one resize action, there is confusion between tabbedex and my window manager about how big the window really is. Let me know if you would like some specifics. |
My understanding is that the width and height should change. Part of the problem is that interface for interacting with X that urxvt offers to extensions is a bit lacking so there may be errors that go unreported. I’ll try to do some more investigation later today. |
I don't know about the urxvt interface specifically, but I suspect part of the problem is that since some (most?) X lib calls are asynchronous, XMoveResizeWindow() is probably returning (some times) before the effect has taken place, but tabbedex blissfully carries on assuming effects have completed, and yet they might not have. This may be 100% wrong, but it would explain why I "randomly" get different results on different invocations. The last time IO looked at this problem, IIRC I was trying to find a way to know that XMoveResizeWindow()'s action had taken effect before I moved on, but I did not find it. I don't know whether there is no such facility available to a urxvt perl extension, or whether it was staring me in the face and I didn't see it. |
Unfortunately, this problem still exists with urxvt 9.31. Any recent thoughts about this? |
Hi, I have found a work-around for this problem.
As you see, the height and width are magically reset to 504 and 820 (from the correct 508 and 823) in the fourth call. On my system, this "magic" is sporadic, in that sometimes the fourth call has the correct numbers, and other times it doesn't. A simple hack to fix this (I am making no claims it is nice, but it has the expediency of working) is to put a delay in the program between the two XmoveResizeWindow() calls in configure(). On my system, I'm not sure exactly what you want to do with this, but since a delay of 0.1 seconds shouldn't cause most people a problem, and works in many cases, would you care to add it to the code base? (Until a "real" fix comes along, anyway?) |
I guess I should sort of withdraw the above comment. With the delays, the initial window opens at the right size. But if I subsequently change the window size (via the window manager), the terminal is likely to end up in a size with a "partial" line or column, and after this happens getting it back to an integer number or lines and columns is something I haven't succeeded in doing. My personal version of tabbedex, based on some versions floating around about 8 years ago, does not have this problem. You made some major re-writes, and so it is difficult to compare them to see what the problem is. Perhaps a binary search to look for the guilty update is in order. |
Slackware64-15.0
urxvt v9.26 (+ slackware patches to use libutempter)
If I execute
urxvt -geometry 80x24 -pe tabbedex
then in the new terminal window 'tput lines' outputs 23 and
'tput cols' outputs 77.
I would, of course, expect 24 and 80, respectively. Is this just me, or is this a more wide-ranging problem?
The text was updated successfully, but these errors were encountered: