aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/src/ui/conversation_summary/merged_message_item.vala11
-rw-r--r--main/src/ui/util.vala18
2 files changed, 23 insertions, 6 deletions
diff --git a/main/src/ui/conversation_summary/merged_message_item.vala b/main/src/ui/conversation_summary/merged_message_item.vala
index 190be50a..b00dc18e 100644
--- a/main/src/ui/conversation_summary/merged_message_item.vala
+++ b/main/src/ui/conversation_summary/merged_message_item.vala
@@ -71,7 +71,9 @@ public class MergedMessageItem : Grid {
message_text_view.buffer.insert(ref end, message.body, -1);
format_suffix_urls(message.body);
messages.add(message);
- message.notify["marked"].connect_after(update_received); // TODO other thread? not main? css error? gtk main?
+ message.notify["marked"].connect_after(() => {
+ Idle.add(() => { update_received(); return false; });
+ });
update_received();
}
@@ -81,9 +83,10 @@ public class MergedMessageItem : Grid {
foreach (Message message in messages) {
if (message.marked == Message.Marked.WONTSEND) {
received_image.visible = true;
- Gtk.IconTheme icon_theme = Gtk.IconTheme.get_default();
- Gtk.IconInfo? icon_info = icon_theme.lookup_icon("dialog-warning-symbolic", IconSize.SMALL_TOOLBAR, 0);
- received_image.set_from_pixbuf(icon_info.load_symbolic({1,0,0,1}));
+ received_image.set_from_icon_name("dialog-warning-symbolic", IconSize.SMALL_TOOLBAR);
+ Util.force_error_color(received_image);
+ Util.force_error_color(encryption_image);
+ Util.force_error_color(time_label);
return;
} else if (message.marked != Message.Marked.READ) {
all_read = false;
diff --git a/main/src/ui/util.vala b/main/src/ui/util.vala
index 34df82d8..9ed28b1f 100644
--- a/main/src/ui/util.vala
+++ b/main/src/ui/util.vala
@@ -77,20 +77,34 @@ public class Util : Object {
}
private const string force_background_css = "%s { background-color: %s; }";
+ private const string force_color_css = "%s { color: %s; }";
- public static void force_background(Gtk.Widget widget, string color, string selector = "*") {
+
+ private static void force_css(Gtk.Widget widget, string css) {
var p = new Gtk.CssProvider();
try {
- p.load_from_data(force_background_css.printf(selector, color));
+ p.load_from_data(css);
widget.get_style_context().add_provider(p, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} catch (GLib.Error err) {
// handle err
}
}
+ public static void force_background(Gtk.Widget widget, string color, string selector = "*") {
+ force_css(widget, force_background_css.printf(selector, color));
+ }
+
public static void force_base_background(Gtk.Widget widget, string selector = "*") {
force_background(widget, "@theme_base_color", selector);
}
+
+ public static void force_color(Gtk.Widget widget, string color, string selector = "*") {
+ force_css(widget, force_color_css.printf(selector, color));
+ }
+
+ public static void force_error_color(Gtk.Widget widget, string selector = "*") {
+ force_color(widget, "@error_color", selector);
+ }
}
} \ No newline at end of file