Dear Egmont,
I will answer your observations one by one:
your patch desperately
lacks the "move this tab to the other panel" (or something similar)
option with menu entries and convenient shortcuts, or maybe ^U could
just swap two tabs but not two whole panels. Or, tabs should not be
per-panel but common to the two, in each panel you could easily jump
to any of the tabs.
----------------------------------------------------------------------
I can certainly add another option for the ^U shortcut (to move all tabs or only the current tab). I can also add a menu entry to move the current tab on the other panel. On the other hand, I prefer to have the tabs separately. If anyhow, somebody wishes to have them common for both panels I can develop something like this (as an option) to be included in mc. But for me, I don't think it's necessary.
==========================
Most of the Ctrl+Alt+letter combos are taken by my window manager, so
I'm back to entering Meta by pressing Escape. Still, Esc followed by
C-Left or C-Right or C-g don't work for me, I'm not sure why.
------------------------------------------------------------------------
Since I wasn't sure that I know all the shortcuts of MC, I preferred not to put any default shortcuts and expose my menu options to a keymap file. So normally you should be able to assign any shortcut that your terminal permits to any function that I've implemented.
===========================
The current UI trend (apart from a couple of legacy apps that had tab
support before it became widely used) is to place tabs on the top,
rather than the bottom.
--------------------------------------------------------------------------
I copied the krusader, which has by default the tabs on the bottom. But, just like for krusader, I was thinking to add the possibility in the tabs options to choose where the tab bar should be implemented. I choose to begin with printing them down because it was easier to implement just by following the existing code.
===========================
The "create tab" and such menu options operate on the currently active
panel, rather than on the Left/Right panel according to whose menu
entry is selected. (E.g. Left panel is active, invoke Right->Create,
a new tab should be created on the right panel.)
---------------------------------------------------------------------------
I don't know why I was under the impression that the other options work the same way. I've checked again now and you are right. I will correct this and send you again another patch.
============================
Tabs should be selectable by a single mouse click (also scrolling
should be doable by mouse if too many tabs are open to fit).
-----------------------------------------------------------------------------
The truth is that I don't use the mouse with mc. This is why the tabs are not responsive to the mouse. But again, if you would like to include it in the official code repository I can also make it responsive to the mouse.
============================
Having non-ascii characters (don't forget about CJK either) cause
artifacts with highlighing the active tab (the end of the tab bar gets
the highlighed background too).
----------------------------------------------------------------------------
I think the issue there is that I used the strlen function. I will have a look. I only checked with normal UTF-8 characters.
============================
One more thing: please use unified diffs, they are much more reable
and more portable to newer mc versions.
-----------------------------------------------------------------------------
The next patch I will send I will use unified diffs.