From: Daniel Carl Date: Wed, 21 Jun 2017 20:43:34 +0000 (+0200) Subject: Remove event observers in clear(). X-Git-Url: https://git.owens.tech/rss.xml/rss.xml/git?a=commitdiff_plain;h=ec679cb04562d30746ac210cffc32ab8c2b7f8fa;p=vimb.git Remove event observers in clear(). --- diff --git a/src/hints.c b/src/hints.c index 6046706..13ca0af 100644 --- a/src/hints.c +++ b/src/hints.c @@ -87,7 +87,7 @@ void hints_clear(Client *c) c->mode->flags &= ~FLAG_HINTING; vb_input_set_text(c, ""); - call_hints_function(c, "clear", ""); + call_hints_function(c, "clear", "true"); /* if open window was not allowed for JavaScript, restore this */ if (!hints.allow_open_win) { diff --git a/src/scripts/hints.js b/src/scripts/hints.js index 6f5b6f5..0bdc71b 100644 --- a/src/scripts/hints.js +++ b/src/scripts/hints.js @@ -49,13 +49,17 @@ var hints = Object.freeze((function(){ } function onresize() { - clear(); + clear(false); create(); show(false); } - function clear() { - var i, j, doc, e; + function clear(removeListener) { + var i, j, doc, e, w = window; + if (removeListener && w) { + w.removeEventListener("resize", onresize, true); + w.removeEventListener("scroll", onresize, false); + } for (i = 0; i < docs.length; i++) { doc = docs[i]; /* find all hinted elements vimbhint 'hint' */ @@ -378,7 +382,7 @@ var hints = Object.freeze((function(){ filterKeys = ""; show(false); } else { - clear(); + clear(true); } return res || config.action(e); @@ -536,14 +540,8 @@ var hints = Object.freeze((function(){ } return "ERROR:"; }, - clear: function() { - clear(); - if (window) { - window.removeEventListener("resize", onresize, true); - window.removeEventListener("scroll", onresize, false); - } - }, - fire: fire, - focus: focus, + clear: clear, + fire: fire, + focus: focus, }; })());