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.
Something in the stack seems to magically turn
empty strings into about:blank, which is a problem
if we want to be able to start typing right away
when opening blank tabs.
We simply enforce the desired behaviour now.
The implementation relies on KatzeArray for the
most part and only does the storage with sqlite
behind the scenes. The change includes a working
History panel. Changes to the database are
committed in realtime.
Remove Page setup, Print preview, Undo, Redo
and Tab overview. We still can't implement any
of these items, so let's just keep focussing on
what we *can* implement.
Implement font properties, web features,
Middle click opens selection,
Open tabs in the background and proxy.
While we are at it, remove Tab label size.
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.
The idea is that if you hide the statusbar and the
location you don't usually need it, but progress
is something you are still interested in. So show
the navigationbar during progress changes and hide it
normally otherwise.
We have more powerful options in the form of
addon panels by now. If someone uses it they may
keep their preference or clear it, but otherwise
we don't show the widget anymore.
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.
The idea is, since we have KatzeItem, KatzeList and KatzeArray
now, except for KatzeXbelItem's loading and saving XBEL the
interface is obsolete.
As a bonus, we actually save the trash again.
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