diff options
author | Christian Dywan <christian@twotoasts.de> | 2018-10-21 19:45:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-21 19:45:17 +0200 |
commit | 7dab517e66475929336e80840cce2351891dd4ef (patch) | |
tree | 3aa71779f8a8bb124c682e28f7ce6e733a6e1733 /core/tab.vala | |
parent | 5fedca68e8821b7e497d47a14d02902895665369 (diff) | |
download | midori-git-7dab517e66475929336e80840cce2351891dd4ef.tar.gz |
Port Colorful Tabs to Peas API (#107)
- Plug TabActivatable even before delayed load
- Add Tab.color which is purely informative
- Implement (background) color in Tally
- Compute colors in ColorfulTabs extension
![screenshot from 2018-10-19 14-03-55](https://user-images.githubusercontent.com/1204189/47217253-10863f00-d3a8-11e8-84bf-d1bcd0e73023.png)
Diffstat (limited to 'core/tab.vala')
-rw-r--r-- | core/tab.vala | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/core/tab.vala b/core/tab.vala index 63200bd0..a598399a 100644 --- a/core/tab.vala +++ b/core/tab.vala @@ -13,6 +13,7 @@ namespace Midori { public interface TabActivatable : Peas.ExtensionBase { public abstract Tab tab { owned get; set; } public abstract void activate (); + public signal void deactivate (); } [GtkTemplate (ui = "/ui/tab.ui")] @@ -24,6 +25,7 @@ namespace Midori { public DatabaseItem? item { get; protected set; default = null; } public string display_uri { get; protected set; } public string display_title { get; protected set; } + public string? color { get; set; default = null; } public bool pinned { get; set; } public bool secure { get; protected set; } public string link_uri { get; protected set; } @@ -75,10 +77,12 @@ namespace Midori { } item = new DatabaseItem (display_uri, null, 0); + var extensions = Plugins.get_default ().plug<TabActivatable> ("tab", this); + extensions.extension_added.connect ((info, extension) => ((TabActivatable)extension).activate ()); + extensions.extension_removed.connect ((info, extension) => ((TabActivatable)extension).deactivate ()); + extensions.foreach ((extensions, info, extension) => { extensions.extension_added (info, extension); }); + if (pinned) { - var extensions = Plugins.get_default ().plug<TabActivatable> ("tab", this); - extensions.extension_added.connect ((info, extension) => ((TabActivatable)extension).activate ()); - extensions.foreach ((extensions, info, extension) => { extensions.extension_added (info, extension); }); load_uri (display_uri); } else { load_uri_delayed.begin (uri, title); @@ -102,9 +106,6 @@ namespace Midori { public override bool focus_in_event (Gdk.EventFocus event) { // Delayed load on focus if (display_uri != uri) { - var extensions = Plugins.get_default ().plug<TabActivatable> ("tab", this); - extensions.extension_added.connect ((info, extension) => ((TabActivatable)extension).activate ()); - extensions.foreach ((extensions, info, extension) => { extensions.extension_added (info, extension); }); load_uri (display_uri); } return true; |