From 1c56ad00c977417e5207a79e2e3359befcde00bc Mon Sep 17 00:00:00 2001 From: Waseem Daher Date: Mon, 15 Oct 2012 19:29:03 -0400 Subject: [PATCH] Optimize update_floating_recipient_bar's showing-and-hiding code. (imported from commit 6cd67d9c7bf418ae78288363636ee75fdc3fcada) --- zephyr/static/js/ui.js | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/zephyr/static/js/ui.js b/zephyr/static/js/ui.js index 68dbaba558..af904b357d 100644 --- a/zephyr/static/js/ui.js +++ b/zephyr/static/js/ui.js @@ -126,22 +126,33 @@ function update_autocomplete() { autocomplete_needs_update = false; } +var old_label; +var is_narrowbar_showing = false; function replace_narrowbar(desired_label) { - if (desired_label.children(".message_newstyle_stream").length !== 0) { - $("#current_label_stream td:first").replaceWith(desired_label.children(".message_newstyle_stream").clone()); - $("#current_label_stream td:last").replaceWith(desired_label.children(".message_newstyle_subject").clone()); - $("#current_label_huddle").css('display', 'none'); - $("#current_label_stream").css('display', 'table-row'); - } else { - $("#current_label_huddle td:first").replaceWith(desired_label.children(".message_newstyle_pm").clone()); - $("#current_label_stream").css('display', 'none'); - $("#current_label_huddle").css('display', 'table-row'); + if (desired_label !== old_label) { + if (desired_label.children(".message_newstyle_stream").length !== 0) { + $("#current_label_stream td:first").replaceWith(desired_label.children(".message_newstyle_stream").clone()); + $("#current_label_stream td:last").replaceWith(desired_label.children(".message_newstyle_subject").clone()); + $("#current_label_huddle").css('display', 'none'); + $("#current_label_stream").css('display', 'table-row'); + } else { + $("#current_label_huddle td:first").replaceWith(desired_label.children(".message_newstyle_pm").clone()); + $("#current_label_stream").css('display', 'none'); + $("#current_label_huddle").css('display', 'table-row'); + } + old_label = desired_label; + } + if (!is_narrowbar_showing) { + $(".floating_recipient_bar").css('visibility', 'visible'); + is_narrowbar_showing = true; } - $(".floating_recipient_bar").css('visibility', 'visible'); } function hide_narrowbar() { - $(".floating_recipient_bar").css('visibility', 'hidden'); + if (is_narrowbar_showing) { + $(".floating_recipient_bar").css('visibility', 'hidden'); + is_narrowbar_showing = false; + } } function update_floating_recipient_bar() {