When switching panes, the newly activated pane should receive focus. Currently Gentoo only goes through the list headers to activate/deactivate them, without actually changing the focus. The result? The selection that you control with the keyboard will still be the selection of the previously active pane.
How to reproduce this problem? Well, I have "tab" linked to "ActivateOther", so if I am moving my current selection with the arrows, hitting tab should change the active pane, and then the arrows would control the selection on the NOW selected pane. As it stands, hitting tabs only changes the headers of the column, while the arrows are still operating on the old pane.
Gentoo's function where the pane switching is handled is activate_render() (dirpane.c), and as you can see there's no actual code to set the focus to the "to" pane.
As reference, another similar project (EmelFM2) uses this piece of code to switch the focus:
if (gtk_widget_has_focus (other_view->treeview))
if (GTK_WIDGET_HAS_FOCUS (other_view->treeview))
Migrating this code to gentoo, it would end up looking like this function:
void dp_focus(DirPane *dp)
if(dp != NULL)
#if GTK_CHECK_VERSION(2, 18, 0)
Though I'll leave it up to you to decide if it might be best to always focus the new pane when activating it. I tested this function and it fixes the focus-changing behaviour in version 0.19.9
PS: As an aside, I don't recommend removing the focus from the previous pane (dp_unfocus), though I am not sure what that code is supposed to do, because it seems to not affect at all the prev pane here.