summaryrefslogtreecommitdiff
path: root/core/tab.vala
diff options
context:
space:
mode:
authorChristian Dywan <christian@twotoasts.de>2018-10-21 19:45:17 +0200
committerGitHub <noreply@github.com>2018-10-21 19:45:17 +0200
commit7dab517e66475929336e80840cce2351891dd4ef (patch)
tree3aa71779f8a8bb124c682e28f7ce6e733a6e1733 /core/tab.vala
parent5fedca68e8821b7e497d47a14d02902895665369 (diff)
downloadmidori-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.vala13
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;