From 146965fc3fd43385ae8cebee7d6df7a4cdc6dc79 Mon Sep 17 00:00:00 2001 From: Robert Schroll Date: Fri, 22 Jun 2012 16:53:05 -0700 Subject: [PATCH] Improvements to message headers in conversation viewer: Closes #5422 --- src/client/ui/message-viewer.vala | 22 +++++++++++++++++++++- theming/message-viewer.css | 14 +++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/client/ui/message-viewer.vala b/src/client/ui/message-viewer.vala index 311d3bc3..9966e8b1 100644 --- a/src/client/ui/message-viewer.vala +++ b/src/client/ui/message-viewer.vala @@ -456,6 +456,7 @@ public class MessageViewer : WebKit.WebView { bind_event(this, ".email_container .menu", "click", (Callback) on_menu_clicked, this); bind_event(this, ".email_container .starred", "click", (Callback) on_unstar_clicked, this); bind_event(this, ".email_container .unstarred", "click", (Callback) on_star_clicked, this); + bind_event(this, ".header .field .value", "click", (Callback) on_value_clicked, this); bind_event(this, ".email .header_container", "click", (Callback) on_body_toggle_clicked, this); bind_event(this, ".attachment_container .attachment", "click", (Callback) on_attachment_clicked, this); bind_event(this, ".attachment_container .attachment", "contextmenu", (Callback) on_attachment_menu, this); @@ -590,7 +591,24 @@ public class MessageViewer : WebKit.WebView { active_email = get_email_from_element(element); on_flag_message(); } - + + private static void on_value_clicked(WebKit.DOM.Element element, WebKit.DOM.Event event, + MessageViewer message_viewer) { + if (!message_viewer.is_hidden_email(element)) + event.stop_propagation(); // Don't allow toggle + } + + private bool is_hidden_email(WebKit.DOM.Element element) { + try { + WebKit.DOM.HTMLElement email = closest_ancestor(element, ".email"); + WebKit.DOM.DOMTokenList class_list = email.get_class_list(); + return class_list.contains("hide"); + } catch (Error error) { + warning("Error getting hidden status: %s", error.message); + return false; + } + } + private static void on_body_toggle_clicked(WebKit.DOM.Element element, WebKit.DOM.Event event, MessageViewer message_viewer) { message_viewer.on_body_toggle_clicked_self(element); @@ -1072,12 +1090,14 @@ public class MessageViewer : WebKit.WebView { string value = ""; Gee.List list = addresses.get_all(); foreach (Geary.RFC822.MailboxAddress a in list) { + value += "".printf(a.address); if (a.name != null) { value += "%s ".printf(a.name); value += "%s".printf(a.address); } else { value += "%s".printf(a.address); } + value += ""; if (++i < list.size) value += ", "; diff --git a/theming/message-viewer.css b/theming/message-viewer.css index 6e31cc34..59c4c779 100644 --- a/theming/message-viewer.css +++ b/theming/message-viewer.css @@ -194,6 +194,9 @@ img[src^="data:"] { .email:last-of-type .header .field .hidden_only { display: none; } + .email.hide:not(:last-of-type) .header .field a { + pointer-events: none; + } } @@ -290,6 +293,15 @@ img[src^="data:"] { .header .field .value { color: black; margin-left: 5.25em; + max-height: 5em; + overflow-y: auto; +} +.show .header .field .value { + cursor: auto; +} +.header .field .value a { + color: black; + text-decoration: none; } .header .field.important .address_name { font-weight: bold; @@ -370,4 +382,4 @@ blockquote { margin: 10px; padding: 5px; border-left: 3px #aaa solid; -} \ No newline at end of file +}