From ec679cb04562d30746ac210cffc32ab8c2b7f8fa Mon Sep 17 00:00:00 2001 From: Daniel Carl Date: Wed, 21 Jun 2017 22:43:34 +0200 Subject: [PATCH] Remove event observers in clear(). --- src/hints.c | 2 +- src/scripts/hints.js | 24 +++++++++++------------- 2 files changed, 12 insertions(+), 14 deletions(-) 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, }; })()); -- 2.20.1