diff --git a/pd/nw/pd_canvas.js b/pd/nw/pd_canvas.js index 5d08b63a35c11781cf6d194135c15cfecf5ce676..568576022bdb95829ed5aec2ee1d60d79dfdf53c 100644 --- a/pd/nw/pd_canvas.js +++ b/pd/nw/pd_canvas.js @@ -65,6 +65,7 @@ pdgui.gui_post("flub!"); var canvas_events = (function() { var name, state, + previous_state = 'none', /* last state, excluding explicit 'none' */ match_words_state = false, last_search_term = '', svg_view = document.getElementById('patchsvg').viewBox.baseVal, @@ -373,6 +374,9 @@ var canvas_events = (function() { return { none: function() { var name; + if (state !== 'none') { + previous_state = state; + } state = 'none'; for (var prop in events) { if (events.hasOwnProperty(prop)) { @@ -383,7 +387,6 @@ var canvas_events = (function() { } }, normal: function() { - //pdgui.gui_post("resetting to normal..."); this.none(); document.addEventListener("mousemove", events.mousemove, false); @@ -423,6 +426,7 @@ var canvas_events = (function() { search: function() { this.none(); document.addEventListener("keydown", events.find_keydown, false); + state = 'search'; }, register: function(n) { name = n; @@ -430,6 +434,9 @@ var canvas_events = (function() { get_state: function() { return state; }, + get_previous_state: function() { + return previous_state; + }, set_obj: function() { utils.set_obj(); }, @@ -838,6 +845,8 @@ function nw_create_patch_window_menus(name) { canvas_events.search(); } else { find_bar.style.setProperty('display', 'none'); +// this is wrong and causes bug... we need to set back to whatever state +// we used to be in... probably need a last_state var canvas_events.none(); } }, diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js index 53c9bed9600a889e87be727253cc71d0542972b2..aa747a4e3e2e21e362d7f1cb626be42736df1c57 100644 --- a/pd/nw/pdgui.js +++ b/pd/nw/pdgui.js @@ -2963,7 +2963,13 @@ function gui_textarea(cid, tag, type, x, y, max_char_width, text, if (p !== null) { p.parentNode.removeChild(p); } - patchwin[cid].window.canvas_events.normal(); +// this is wrong and causes bug... we need it to go back to previous state + if (patchwin[cid].window.canvas_events.get_previous_state() === + 'search') { + patchwin[cid].window.canvas_events.search(); + } else { + patchwin[cid].window.canvas_events.normal(); + } } }