aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--em-format/e-mail-formatter-utils.c43
-rw-r--r--mail/e-mail-display.c61
2 files changed, 33 insertions, 71 deletions
diff --git a/em-format/e-mail-formatter-utils.c b/em-format/e-mail-formatter-utils.c
index 1967a61ccd..0e9eda4fdf 100644
--- a/em-format/e-mail-formatter-utils.c
+++ b/em-format/e-mail-formatter-utils.c
@@ -200,48 +200,33 @@ e_mail_formatter_format_address (EMailFormatter *formatter,
/* Let us add a '...' if we have more addresses */
if (limit > 0 && i == limit && a != NULL) {
- const gchar *id = NULL;
-
- if (strcmp (field, _("To")) == 0) {
- id = "to";
- } else if (strcmp (field, _("Cc")) == 0) {
- id = "cc";
- } else if (strcmp (field, _("Bcc")) == 0) {
- id = "bcc";
- }
+ if (strcmp (field, _("To")) == 0 ||
+ strcmp (field, _("Cc")) == 0 ||
+ strcmp (field, _("Bcc")) == 0) {
- if (id != NULL) {
- g_string_append_printf (
+ g_string_append (
out,
- "<span id=\"__evo-moreaddr-%s\" "
- "style=\"display: none;\">", id);
+ "<span id=\"__evo-moreaddr\" "
+ "style=\"display: none;\">");
str = g_strdup_printf (
"<img src=\"evo-file://%s/plus.png\" "
- "id=\"__evo-moreaddr-img-%s\" class=\"navigable\">",
- EVOLUTION_IMAGESDIR, id);
+ "id=\"__evo-moreaddr-img\" class=\"navigable\">",
+ EVOLUTION_IMAGESDIR);
}
}
}
if (elipsize && str) {
- const gchar *id = NULL;
-
- if (strcmp (field, _("To")) == 0) {
- id = "to";
- } else if (strcmp (field, _("Cc")) == 0) {
- id = "cc";
- } else if (strcmp (field, _("Bcc")) == 0) {
- id = "bcc";
- }
+ if (strcmp (field, _("To")) == 0 ||
+ strcmp (field, _("Cc")) == 0 ||
+ strcmp (field, _("Bcc")) == 0) {
- if (id != NULL) {
- g_string_append_printf (
+ g_string_append (
out,
"</span>"
"<span class=\"navigable\" "
- "id=\"__evo-moreaddr-ellipsis-%s\" "
- "style=\"display: inline;\">...</span>",
- id);
+ "id=\"__evo-moreaddr-ellipsis\" "
+ "style=\"display: inline;\">...</span>");
}
}
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
index 919ba681a6..d4a0277d56 100644
--- a/mail/e-mail-display.c
+++ b/mail/e-mail-display.c
@@ -769,37 +769,31 @@ toggle_headers_visibility (WebKitDOMElement *button,
d (printf ("Headers %s!\n", expanded ? "collapsed" : "expanded"));
}
-static const gchar *addresses[] = { "to", "cc", "bcc" };
-
static void
toggle_address_visibility (WebKitDOMElement *button,
- WebKitDOMEvent *event,
- const gchar *address)
+ WebKitDOMEvent *event)
{
WebKitDOMElement *full_addr, *ellipsis;
+ WebKitDOMElement *parent;
WebKitDOMCSSStyleDeclaration *css_full, *css_ellipsis;
- WebKitDOMDocument *document;
- gchar *id;
const gchar *path;
gboolean expanded;
- document = webkit_dom_node_get_owner_document (
- WEBKIT_DOM_NODE (button));
+ /* <b> element */
+ parent = webkit_dom_node_get_parent_element (WEBKIT_DOM_NODE (button));
+ /* <td> element */
+ parent = webkit_dom_node_get_parent_element (WEBKIT_DOM_NODE (parent));
- id = g_strconcat ("__evo-moreaddr-", address, NULL);
- full_addr = webkit_dom_document_get_element_by_id (document, id);
- g_free (id);
+ full_addr = webkit_dom_element_query_selector (parent, "#__evo-moreaddr", NULL);
- if (full_addr == NULL)
+ if (!full_addr)
return;
css_full = webkit_dom_element_get_style (full_addr);
- id = g_strconcat ("__evo-moreaddr-ellipsis-", address, NULL);
- ellipsis = webkit_dom_document_get_element_by_id (document, id);
- g_free (id);
+ ellipsis = webkit_dom_element_query_selector (parent, "#__evo-moreaddr-ellipsis", NULL);
- if (ellipsis == NULL)
+ if (!ellipsis)
return;
css_ellipsis = webkit_dom_element_get_style (ellipsis);
@@ -819,11 +813,9 @@ toggle_address_visibility (WebKitDOMElement *button,
path = "evo-file://" EVOLUTION_IMAGESDIR "/minus.png";
if (!WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT (button)) {
- id = g_strconcat ("__evo-moreaddr-img-", address, NULL);
- button = webkit_dom_document_get_element_by_id (document, id);
- g_free (id);
+ button = webkit_dom_element_query_selector (parent, "#__evo-moreaddr-img", NULL);
- if (button == NULL)
+ if (!button)
return;
}
@@ -895,7 +887,8 @@ setup_dom_bindings (GObject *object,
WebKitLoadStatus load_status;
WebKitDOMDocument *document;
WebKitDOMElement *button;
- gint ii = 0;
+ WebKitDOMNodeList *list;
+ gint length, ii = 0;
frame = WEBKIT_WEB_FRAME (object);
load_status = webkit_web_frame_get_load_status (frame);
@@ -913,33 +906,17 @@ setup_dom_bindings (GObject *object,
G_CALLBACK (toggle_headers_visibility),
FALSE, web_view);
- for (ii = 0; ii < 3; ii++) {
- gchar *id;
-
- id = g_strconcat ("__evo-moreaddr-img-", addresses[ii], NULL);
- button = webkit_dom_document_get_element_by_id (document, id);
- g_free (id);
-
- if (button == NULL)
- continue;
-
- webkit_dom_event_target_add_event_listener (
- WEBKIT_DOM_EVENT_TARGET (button), "click",
- G_CALLBACK (toggle_address_visibility), FALSE,
- (gpointer) addresses[ii]);
+ list = webkit_dom_document_query_selector_all (document, "*[id^=__evo-moreaddr-]", NULL);
- id = g_strconcat (
- "__evo-moreaddr-ellipsis-", addresses[ii], NULL);
- button = webkit_dom_document_get_element_by_id (document, id);
- g_free (id);
+ length = webkit_dom_node_list_get_length (list);
- if (button == NULL)
- continue;
+ for (ii = 0; ii < length; ii++) {
+ button = WEBKIT_DOM_ELEMENT (webkit_dom_node_list_item (list, ii));
webkit_dom_event_target_add_event_listener (
WEBKIT_DOM_EVENT_TARGET (button), "click",
G_CALLBACK (toggle_address_visibility), FALSE,
- (gpointer) addresses[ii]);
+ NULL);
}
}