We are not literally undoing in the sense of
reverting, this is actually about undoing
the individual parts of the last refactoring
that implemented the socket/ plug logic.
As turned out, the idea was nice but the
implementation was absolutely not, embedding
of processes in a graphical way is not
at all reliable enough for complex use cases.
Naturally this change should solve all sorts
of peculiar issues, including actual
regressions in functionality. Relieving.
Finally the trash, which was the last item that
needed to be implemented as an action, is an
action, a KatzeArrayAction to be exact.
This simplifies more code and also makes Window
and RecentlyVisited generically implementable.
Incidentally this change also fixes a bug where
the browser tried to add a new tab when the last
one was closed, even while destroying itself.
Furthermore sokoke_image_menu_item_ellipsized
and sokoke_widget_popup were promoted to Katze.
We're still keeping the old functions for now.
The approach is rather plump, Midori can be
run in a plug mode that creates a GtkPlug,
while the normal instance knows how to embed it.
Communication between browser and tabs is
done via named pipes which are portable.
The feature is not complete right now, there
are expected regressions, but it works.
As a bonus, we implement Not found pages.
Originally menu items could in some cases become as wide as
the whole screen, making working with menus rather hard.
Now we ellipsize at 50 characters in the middle of the string.
Apparently lots of users cannot use Midori
after this change and with no way to track down
the cause of the issue, let's just not use this.
The check was only for minimal gain anyway
Actually attempting to imitate Gtk's logic for
creating menu items from actions was silly. It
even had a rather obvious bug, no signals
were ever connected.
Now we leave all the work except for creating
an empty image menu item to Gtk. And it
works better than before.