diff options
author | Jan Lukas Gernert <jangernert@gmail.com> | 2017-10-11 00:40:22 +0300 |
---|---|---|
committer | Jan Lukas Gernert <jangernert@gmail.com> | 2017-10-11 00:40:22 +0300 |
commit | 41539a6013006cb0c6b2b7cba406b5756e455eb2 (patch) | |
tree | e0b29323c2b5bfc746daf2d9bcf30712d1127bae | |
parent | 55514e1a9b089084b0762e788c981b38f07215b6 (diff) |
Fix favicons not showing during drag
-rw-r--r-- | src/Widgets/ArticleRow.vala | 22 | ||||
-rw-r--r-- | src/Widgets/FeedRow.vala | 29 |
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; } |