Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jangernert/FeedReader.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lukas Gernert <jangernert@gmail.com>2017-10-11 00:40:22 +0300
committerJan Lukas Gernert <jangernert@gmail.com>2017-10-11 00:40:22 +0300
commit41539a6013006cb0c6b2b7cba406b5756e455eb2 (patch)
treee0b29323c2b5bfc746daf2d9bcf30712d1127bae
parent55514e1a9b089084b0762e788c981b38f07215b6 (diff)
Fix favicons not showing during drag
-rw-r--r--src/Widgets/ArticleRow.vala22
-rw-r--r--src/Widgets/FeedRow.vala29
2 files changed, 40 insertions, 11 deletions
diff --git a/src/Widgets/ArticleRow.vala b/src/Widgets/ArticleRow.vala
index b84d1ea3..35a64952 100644
--- a/src/Widgets/ArticleRow.vala
+++ b/src/Widgets/ArticleRow.vala
@@ -122,8 +122,7 @@ public class FeedReader.ArticleRow : Gtk.ListBoxRow {
m_marked_eventbox.button_press_event.connect(markedIconClicked);
- m_icon = new Gtk.Image.from_icon_name("feed-rss-symbolic", Gtk.IconSize.LARGE_TOOLBAR);
- reloadFavIcon.begin();
+ m_icon = createFavIcon();
icon_box.pack_start(m_icon, true, true, 0);
icon_box.pack_end(m_unread_eventbox, false, false, 10);
@@ -241,21 +240,34 @@ public class FeedReader.ArticleRow : Gtk.ListBoxRow {
return false;
}
- public async void reloadFavIcon()
+ public async void reloadFavIcon(Gtk.Image? inIcon = null)
{
var icon = yield FavIconCache.get_default().getIcon(m_article.getFeedID());
if(icon != null)
- m_icon.pixbuf = icon;
+ {
+ if(inIcon == null)
+ m_icon.pixbuf = icon;
+ else
+ inIcon.pixbuf = icon;
+ }
+ }
+
+ private Gtk.Image createFavIcon()
+ {
+ var icon = new Gtk.Image.from_icon_name("feed-rss-symbolic", Gtk.IconSize.LARGE_TOOLBAR);
+ reloadFavIcon.begin(icon);
+ return icon;
}
private Gtk.Window getFeedIconWindow()
{
+ var icon = createFavIcon();
var window = new Gtk.Window(Gtk.WindowType.POPUP);
var visual = window.get_screen().get_rgba_visual();
window.set_visual(visual);
window.get_style_context().add_class("transparentBG");
- window.add(m_icon);
+ window.add(icon);
window.show_all();
return window;
}
diff --git a/src/Widgets/FeedRow.vala b/src/Widgets/FeedRow.vala
index 69e6b250..612749e2 100644
--- a/src/Widgets/FeedRow.vala
+++ b/src/Widgets/FeedRow.vala
@@ -48,8 +48,7 @@ public class FeedReader.FeedRow : Gtk.ListBoxRow {
{
var rowhight = 30;
m_box = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 0);
- m_icon = new Gtk.Image.from_icon_name("feed-rss-symbolic", Gtk.IconSize.LARGE_TOOLBAR);
- m_icon.get_style_context().add_class("fr-sidebar-symbolic");
+ m_icon = createFavIcon();
reloadFavIcon.begin();
m_icon.margin_start = level * 24;
@@ -149,23 +148,41 @@ public class FeedReader.FeedRow : Gtk.ListBoxRow {
}
}
- public async void reloadFavIcon()
+ public async void reloadFavIcon(Gtk.Image? inIcon = null)
{
var icon = yield FavIconCache.get_default().getIcon(m_feedID);
if(icon == null)
return;
- m_icon.pixbuf = icon;
- m_icon.get_style_context().remove_class("fr-sidebar-symbolic");
+ if(inIcon == null)
+ {
+ m_icon.pixbuf = icon;
+ m_icon.get_style_context().remove_class("fr-sidebar-symbolic");
+ }
+ else
+ {
+ inIcon.pixbuf = icon;
+ inIcon.get_style_context().remove_class("fr-sidebar-symbolic");
+ }
+ }
+
+ public Gtk.Image createFavIcon()
+ {
+ var icon = new Gtk.Image.from_icon_name("feed-rss-symbolic", Gtk.IconSize.LARGE_TOOLBAR);
+ icon.get_style_context().add_class("fr-sidebar-symbolic");
+ reloadFavIcon.begin(icon);
+
+ return icon;
}
private Gtk.Window getFeedIconWindow()
{
+ var icon = createFavIcon();
var window = new Gtk.Window(Gtk.WindowType.POPUP);
var visual = window.get_screen().get_rgba_visual();
window.set_visual(visual);
window.get_style_context().add_class("transparentBG");
- window.add(m_icon);
+ window.add(icon);
window.show_all();
return window;
}