Restore windows after maximising one terminal doesn't restore to correct size

Bug #1492047 reported by Dave
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Terminator
Triaged
Medium
Unassigned

Bug Description

Terminator 0.97 and Bzr of a few days ago.

Using fluxbox on slackware 14.1.

I have terminator split into 4 equal sized terminals. When I maximise one and then restore it, via menus or keybind, the original size is lost and it is about 1/3 too wide. Continually maximising/restoring will 'grow' it out side ways.

Revision history for this message
Dave (dave-unrealize) wrote :
Revision history for this message
Dave (dave-unrealize) wrote :

Config

description: updated
Revision history for this message
Dave (dave-unrealize) wrote :

I've just tried 0.98 and now the problem has shifted to vertical size rather than width. But after one maximise/restore and a manual resizing it works from the second time onwards.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Hi Bug subscribers, this is the maintainer (Steve Boddy) of Terminator, who took over from Chris.

In case you were not aware there has been a new release 0.98 of Terminator in the last few days which has many changes, fixes and updates. We also have an ongoing GTK3 port which uses a much more up-to-date libvte.

Even with the ~50 issues closed by that release, and discounting the ~90 outstanding wishlist items, we still have an unwieldy 95 bugs. With the oldest approaching it's 6th birthday and some that haven't seen any updates in nearly 5, it is time for a purge.

My intention is to try and get this list down to a minimum, and for that I need your help.

First I'm going to work through, oldest to newest, setting bugs to Incomplete, pending confirmation that they are still an issue. If after a month there is no feedback, the issue will get closed as Invalid. Here's where you come in. I can't always reproduce, or setting up (i.e. other distros) to even test takes a long time, so I'm going to try crowdsourcing this.

1. Get the latest release. Is it still an issue? If yes, set the confirmed-0.98 tag. For bonus points follow the guide http://gnometerminator.blogspot.com/2015/09/so-you-want-to-try-terminator-gtk3.html and see if the GTK3 branch has same issue, and set the confirmed-gtk3 or notaffected-gtk3 tag.

2. Can you reproduce with an empty/default config file? You can pass "-g temp_config" to do this without affecting your existing config. If you already have Terminator running, you'll need to pass -u as well to disable the DBus.

3. If able to, can you reproduce with another user/guest account?

4. If the issue does not already have clear, precise instructions to reproduce with minimal setup/steps, add them.

5. Put as much info about what you are running.
   * Software/library versions (libvte, gtk, pango, cairo, distro, desktop environment, language)
   * Screens (single or multi)
   * Any unusual / custom packages or configs that might be interacting.

6. If possible attach the config file, unless the issue also happens with an empty one, but mention that.

7. Attach the "-d" debug output from 0.98.

Some common things that cause incidents.

* Strange sizing issues or rapidly shrinking windows - Try turning off Window geometry hints.
* Input (esp. broadcasting duplicate chars etc) problems - Try killing IBus.
* Hand editing of the config file can cause various issues - Due to misunderstanding, incorrect structure or typos.
* Some issues are actually in libvte - This is why testing GTK3 is so important.
* segfaults - Unfortunately these are dying inside the C libraries, and it is usually beyond me to fix those.

Many thanks for your assistance, and hopefully this will get us closer to a bug-free Terminator.

Changed in terminator:
status: New → Incomplete
Revision history for this message
Dave (dave-unrealize) wrote :

I've just tested with 0.98 (gtk2) and it seems ok when I do:

./terminator -g temp_config -u

Then split into 4 terminals, BUT if I save a layout then start terminator with that layout it again refuses to restore properly.

I can't test gtk3 because girrepository refuses to compile on my slackware system. Also, I can't seem to find the source for either gir-keybinders.

Revision history for this message
Dave (dave-unrealize) wrote :

Well, this is the error that the gtk3 version throws out:

ERROR:root:Could not find any typelib for Gnome
Traceback (most recent call last):
  File "./terminator", line 114, in <module>
    TERMINATOR.create_layout(OPTIONS.layout)
  File "/home/david/dev/terminator-gtk3/gtk3-test/terminatorlib/terminator.py", line 279, in create_layout
    window, terminal = self.new_window()
  File "/home/david/dev/terminator-gtk3/gtk3-test/terminatorlib/terminator.py", line 205, in new_window
    window = maker.make('Window')
  File "/home/david/dev/terminator-gtk3/gtk3-test/terminatorlib/factory.py", line 94, in make
    output = func(**kwargs)
  File "/home/david/dev/terminator-gtk3/gtk3-test/terminatorlib/factory.py", line 101, in make_window
    return(window.Window(**kwargs))
  File "/home/david/dev/terminator-gtk3/gtk3-test/terminatorlib/window.py", line 68, in __init__
    self.register_callbacks()
  File "/home/david/dev/terminator-gtk3/gtk3-test/terminatorlib/window.py", line 126, in register_callbacks
    self.on_hide_window)
TypeError: bind() takes exactly 3 arguments (2 given)

I don't know if it's down to missing those packages or not.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Hi Dave.
Yes, that error is because you are missing the correct version of the keybinder stuff, and the arguments it accepts are different between them.

You could cheat this as it is not important. Edit the terminatorlib/config.py at line 177, and remove the key sequence definition for the shortcut (just leave it empty. You should then skip that error, and get GTK3 running... maybe :-)

Also, could you attach 3 screenshots to be sure I understood your original description. Starting condition, maximised, and restored.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

One additional tip/suggestion: Do you have window geometry hints turned on? If so try turning them off and seeing if that fixes it.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Never mind comment #8, I just looked at your config and it's off.

Revision history for this message
Dave (dave-unrealize) wrote :

It seems to happen randomly, and this time it is the height that is wrong:

Before http://www.r0t.uk/sshots/shot-8987387177.png
Maximised http://www.r0t.uk/sshots/shot-9761383567.png
After restore http://www.r0t.uk/sshots/shot-1131839026.png

Revision history for this message
Dave (dave-unrealize) wrote :

By the way, I'm still getting that error with gtk3 after editing line 177

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Gah! Caught out by thinking that an empty string == None.

If you're still game :-) try commenting out the try/except block at lines 123-128 in terminatorlib/window.py to prevent trying to bind the global shortcut.

Looking at your screenshots, Yikes! That's some serious stuff. It raises more questions I'm afraid, like:
Bit of a guess, but are you not using the fullscreen mode, right? You chose a 1600x900 borderless window at the 0,0 coords? It's a peculiar setup.
Can you explain what exactly is running in the panes. It sort of looks like you might be using tmux or screen or something because you have status bars on three windows. That doesn't seem to match your earlier config.

Does it still happen with a totally vanilla 4 way split window layout saved to a new config file?

Don't worry about the incessant questions. It's just doing elimination, and trying to figure out what you've managed to do.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Good news!... Sort of. I've reproduced it. It seems like it takes the combination of a borderless window, and window goemetry *off* (normally geometry being on causes problems, but here it seem it may actually prevent one. Can you confirm?) plus (probably) a saved window size that is not quite on some kind of multiple. I'm saving the config to the ticket just so it is here and doesn't get lost.

My test was on Ubuntu in fallback mode, so it is not specific to fluxbox/slackware.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :
Changed in terminator:
status: Incomplete → Triaged
importance: Undecided → Medium
Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Good feedback, Dave. Sometimes 90% of the problem is figuring out how to reliably reproduce.

Revision history for this message
Dave (dave-unrealize) wrote :

It doesn't seem to matter whether I have window borders and/or geometry on or off here. It's strange that starting with no layout, restore works, and only seems to break if I start it with a layout.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Yeah, sometimes there are subtle differences that mean an issue occurs easily on system A, and with very specific circumstances on B. The symptom is the same though, and the underlying cause is likely the same. Just being able to reproduce the issue reliably is the important part for anyone trying to fix it.

No promises on dates, but the ticket is at least fresh and reproducible now.

Changed in terminator:
assignee: nobody → Stephen Boddy (stephen-j-boddy)
assignee: Stephen Boddy (stephen-j-boddy) → nobody
tags: added: confirmed-0.98
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.