Quoth Sergey Popov,

- start gvim
    gvim --servername qwe .gvimrc
- maximize (vertical, horizontal or full) created Gvim window. Window menu
has "Unmaximize" item.
- open another (or same) file to the same Gvim window
    gvim --servername qwe --remote-silent .gvimrc
- now winsow menu has "Maximize"
- Gvim window cannot be unmaximized --> maximized status is lost.

gvim generates a ConfigureRequest event. We handle it in the aptly-named handleConfigureRequest() which in turn calls wClientConfigure().

wClientConfigure() calculates the new geometry and saves the old geometry in the wwin->old_geometry struct, after clearing the maximized flag if the requested width or height is different from the old geometry width/height and calling wWindowConfigure().

The clearing of the maximized flag was done as part of commit e4fcd515fe8089a547f23ce7d0089607b35d44e2 to fix a bug with moving a maximized window. I don't think that commit is the problem.

We might be able to check for the new geometry being different from the current (not "old" ie pre-maximization) geometry and skip the steps above if it's the same.

The patch would be easy to write but it will need some testing to check for unwanted side effects. I'll have a look into it.


--
To unsubscribe, send mail to [email protected].

Reply via email to