emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Gtk tabs in emacs, new branch.


From: Jan Djärv
Subject: Re: Gtk tabs in emacs, new branch.
Date: Sat, 10 Apr 2010 18:10:20 +0200
User-agent: Thunderbird 2.0.0.24 (X11/20100317)

Stefan Monnier skrev:


Are there any concrete examples of other uses?

I can imagine switching the buffer of one of the windows (in an ECB-style
frame, for example).

Isn't that a window configuration?  I don't get it.

In mpc.el I could imagine using it to switch
between various selections.

I don't know what mpc.el is, so the statements has no meaning.



But implementation for the primary use case (window configurations)
should not have to suffer because of other uses.

I still don't understand what kind of suffering you're referring to.
If you could describe more concretely (e.g. what kind of undesirable
user-behavior could happen in which case and why).

The most obvious thing is flickering. When the user clicks on the tab Gtk+ switches tab, there is nothing you can do about that. Depending on what was drawn in that widget previously, something else is shown than what was shown in the old wiindows before. Then a callback is made. From here we can generate a Lisp event. Then the event goes to some elisp defun Then the window confiuration is extracted and applied. Then redisplay happens. This takes time and looks bad, unless you have a fast machine.

You guys seem to think that tabs are just extra buttons to be pressed. In Gtk+ they are not. When you press on a tab an whole new Gtk widget (with associated X window) covering the whole frame is switched in. So the old contents is not shown. Doing window configuration switch as fast as we can helps, but it still isn't good. Workable, but not good.

Add saving of the old configuration to this and more time passes before a redsplay.

Then there is the race condition. Say we restore window configurations in elisp. But from the time Gtk+ does the switch until the new window configuration is in place, the old one is in Emacs idea of what is on the screen, but as I said earlier, it isn't what is really on screen. So redisplay may happen, based on the old configuration, making the flicker even more annoying.

        Jan D.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]