From d3468e8f094a11aa52bc9c9f7ff84a81b118056f Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:03:30 -0600 Subject: [PATCH 01/22] Add scroll event handling to javascript Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index a98047edbfdd..7f2729e7779d 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -414,6 +414,7 @@ mpl.findpos = function(e) { }; mpl.figure.prototype.mouse_event = function(event, name) { + var canvas_pos = mpl.findpos(event) if (name === 'button_press') @@ -425,7 +426,10 @@ mpl.figure.prototype.mouse_event = function(event, name) { var x = canvas_pos.x; var y = canvas_pos.y; - this.send_message(name, {x: x, y: y, button: event.button}); + console.log(name); + + this.send_message(name, {x: x, y: y, button: event.button, + step: event.step}); /* This prevents the web browser from automatically changing to * the text insertion cursor when the button is pressed. We want From 14d396e1778a4fe2acb21104d192e4ee77d3f086 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:04:30 -0600 Subject: [PATCH 02/22] Add scroll event handling to webagg backend Conflicts: lib/matplotlib/backends/backend_webagg_core.py --- lib/matplotlib/backends/backend_webagg_core.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/backends/backend_webagg_core.py b/lib/matplotlib/backends/backend_webagg_core.py index 8f971600d040..c977973f228c 100644 --- a/lib/matplotlib/backends/backend_webagg_core.py +++ b/lib/matplotlib/backends/backend_webagg_core.py @@ -192,7 +192,7 @@ def handle_event(self, event): elif e_type == 'draw': self.draw() elif e_type in ('button_press', 'button_release', 'motion_notify', - 'figure_enter', 'figure_leave'): + 'figure_enter', 'figure_leave', 'scroll'): x = event['x'] y = event['y'] y = self.get_renderer().height - y @@ -218,6 +218,8 @@ def handle_event(self, event): self.enter_notify_event(xy=(x, y)) elif e_type == 'figure_leave': self.leave_notify_event() + elif e_type == 'scroll': + self.scroll_event(x, y, event['step']) elif e_type in ('key_press', 'key_release'): key = event['key'] From 6f39b7d5e8421e2d337ac4db6c4b18d3fea67376 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 4 Jan 2015 16:55:04 -0600 Subject: [PATCH 03/22] Remove debug print --- lib/matplotlib/backends/web_backend/mpl.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 7f2729e7779d..44b9f44d519c 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -426,8 +426,6 @@ mpl.figure.prototype.mouse_event = function(event, name) { var x = canvas_pos.x; var y = canvas_pos.y; - console.log(name); - this.send_message(name, {x: x, y: y, button: event.button, step: event.step}); From cea98440ac308b2f597d49313e5c063cd2bdd7c9 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:04:54 -0600 Subject: [PATCH 04/22] Attach scrolling handler to canvas_div Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 44b9f44d519c..49ab07ef2f24 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -46,6 +46,7 @@ mpl.figure = function(figure_id, websocket, ondownload, parent_element) { this._root_extra_style(this.root) this.root.attr('style', 'display: inline-block'); + this.parent_element = parent_element $(parent_element).append(this.root); this._init_header(this); @@ -94,6 +95,7 @@ mpl.figure.prototype._init_header = function() { this.header = titletext[0]; } + mpl.figure.prototype._canvas_extra_style = function(canvas_div) { } @@ -168,6 +170,7 @@ mpl.figure.prototype._init_canvas = function() { // upon first draw. this._resize_canvas(600, 600); + function set_focus () { canvas.focus(); canvas_div.focus(); From 0aebfebd8d244780c13d6ceaed6012109b408ee4 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:05:09 -0600 Subject: [PATCH 05/22] Remove debug prints Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 49ab07ef2f24..246bd7408aae 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -142,8 +142,27 @@ mpl.figure.prototype._init_canvas = function() { // Throttle sequential mouse events to 1 every 20ms. rubberband.mousemove('motion_notify', mouse_event_fn); +<<<<<<< HEAD rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); +======= + function scroll_fn(event) { + event['data'] = 'scroll' + // http://www.adomas.org/javascript-mouse-wheel/ + if (event.wheelDelta) { /* IE/Opera. */ + event.step = event.wheelDelta/120; + } else if (event.detail) { /** Mozilla case. */ + /** In Mozilla, sign of delta is different than in IE. + * Also, delta is multiple of 3. + */ + event.step = -event.detail/3; + } + mouse_event_fn(event); + } + + $(canvas_div)[0].addEventListener('DOMMouseScroll', scroll_fn, false); + $(canvas_div)[0].addEventListener('mousewheel', scroll_fn, false); +>>>>>>> 2335705... Remove debug prints canvas_div.append(canvas); canvas_div.append(rubberband); From cf7b73c3e524ff6e0057f911df560afa176fafaf Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 4 Jan 2015 19:52:05 -0600 Subject: [PATCH 06/22] Remove unused variable and function --- lib/matplotlib/backends/web_backend/mpl.js | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 246bd7408aae..0fb588364fc2 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -46,7 +46,6 @@ mpl.figure = function(figure_id, websocket, ondownload, parent_element) { this._root_extra_style(this.root) this.root.attr('style', 'display: inline-block'); - this.parent_element = parent_element $(parent_element).append(this.root); this._init_header(this); @@ -96,6 +95,7 @@ mpl.figure.prototype._init_header = function() { } + mpl.figure.prototype._canvas_extra_style = function(canvas_div) { } @@ -142,27 +142,9 @@ mpl.figure.prototype._init_canvas = function() { // Throttle sequential mouse events to 1 every 20ms. rubberband.mousemove('motion_notify', mouse_event_fn); -<<<<<<< HEAD rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); -======= - function scroll_fn(event) { - event['data'] = 'scroll' - // http://www.adomas.org/javascript-mouse-wheel/ - if (event.wheelDelta) { /* IE/Opera. */ - event.step = event.wheelDelta/120; - } else if (event.detail) { /** Mozilla case. */ - /** In Mozilla, sign of delta is different than in IE. - * Also, delta is multiple of 3. - */ - event.step = -event.detail/3; - } - mouse_event_fn(event); - } - $(canvas_div)[0].addEventListener('DOMMouseScroll', scroll_fn, false); - $(canvas_div)[0].addEventListener('mousewheel', scroll_fn, false); ->>>>>>> 2335705... Remove debug prints canvas_div.append(canvas); canvas_div.append(rubberband); From 98ebe2845738504c828a95a85d0ec169b7a30313 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 4 Jan 2015 19:53:32 -0600 Subject: [PATCH 07/22] Revert whitespace changes --- lib/matplotlib/backends/web_backend/mpl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 0fb588364fc2..a89410492653 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -418,7 +418,6 @@ mpl.findpos = function(e) { }; mpl.figure.prototype.mouse_event = function(event, name) { - var canvas_pos = mpl.findpos(event) if (name === 'button_press') From 18f8b91982bb5b8f6579fe645b04ecbb0e52da6d Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 4 Jan 2015 19:55:51 -0600 Subject: [PATCH 08/22] Remove another WS change --- lib/matplotlib/backends/web_backend/mpl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index a89410492653..d34f6b448344 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -96,6 +96,7 @@ mpl.figure.prototype._init_header = function() { + mpl.figure.prototype._canvas_extra_style = function(canvas_div) { } From da0a36dfdc7322abd22013b661d13a8ea8559878 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:05:29 -0600 Subject: [PATCH 09/22] Simplify event listener call Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index d34f6b448344..ed91631d621a 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -146,7 +146,6 @@ mpl.figure.prototype._init_canvas = function() { rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); - canvas_div.append(canvas); canvas_div.append(rubberband); From 9a4cc84cea8ee99535a3a8d91611889461f42a86 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:05:53 -0600 Subject: [PATCH 10/22] Use jquery-style wheel event Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index ed91631d621a..d55065e195fa 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -146,6 +146,13 @@ mpl.figure.prototype._init_canvas = function() { rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); + canvas_div.on("wheel mousewheel", function (event) { + event = event.originalEvent; + event['data'] = 'scroll' + event.step = event.deltaY / 3. + mouse_event_fn(event); + }); + canvas_div.append(canvas); canvas_div.append(rubberband); From 39455794c8a053b75ef506ec460dba54a3e77352 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:06:12 -0600 Subject: [PATCH 11/22] Add scroll event handling to javascript Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 6 ++++++ lib/matplotlib/backends/web_backend/temp.txt | 21 ++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 lib/matplotlib/backends/web_backend/temp.txt diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index d55065e195fa..98a316dd679d 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -425,6 +425,7 @@ mpl.findpos = function(e) { }; mpl.figure.prototype.mouse_event = function(event, name) { + var canvas_pos = mpl.findpos(event) if (name === 'button_press') @@ -436,6 +437,11 @@ mpl.figure.prototype.mouse_event = function(event, name) { var x = canvas_pos.x; var y = canvas_pos.y; +<<<<<<< HEAD +======= + console.log(name); + +>>>>>>> b1331ff... Add scroll event handling to javascript this.send_message(name, {x: x, y: y, button: event.button, step: event.step}); diff --git a/lib/matplotlib/backends/web_backend/temp.txt b/lib/matplotlib/backends/web_backend/temp.txt new file mode 100644 index 000000000000..08beddd2378b --- /dev/null +++ b/lib/matplotlib/backends/web_backend/temp.txt @@ -0,0 +1,21 @@ +import matplotlib +import itertools +import numpy as np +matplotlib.use('webagg') +import matplotlib.pyplot as plt +plt.close('all') +fig, ax = plt.subplots() +x = np.linspace(0,10,100) +y = np.sin(x) +ln, = ax.plot(x,y, 'o', picker=5) +evt = [] +colors = iter(itertools.cycle(['r', 'g', 'b', 'k', 'c'])) +def on_event(event): + evt.append(event) + ln.set_color(next(colors)) + fig.canvas.draw() + fig.canvas.draw_idle() +fig.canvas.mpl_connect('figure_enter_event', on_event) +fig.canvas.mpl_connect('figure_leave_event', on_event) +plt.show() + From ac51ebc0a9c14046f8c6b4555a213def0788d359 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:06:53 -0600 Subject: [PATCH 12/22] Add scroll event handling to webagg backend Conflicts: lib/matplotlib/backends/backend_webagg_core.py Conflicts: lib/matplotlib/backends/backend_webagg_core.py lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 98a316dd679d..fdc60e02df68 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -143,6 +143,7 @@ mpl.figure.prototype._init_canvas = function() { // Throttle sequential mouse events to 1 every 20ms. rubberband.mousemove('motion_notify', mouse_event_fn); +<<<<<<< HEAD rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); @@ -152,6 +153,31 @@ mpl.figure.prototype._init_canvas = function() { event.step = event.deltaY / 3. mouse_event_fn(event); }); +======= + + rubberband.mouseenter('figure_enter', mouse_event_fn); + rubberband.mouseleave('figure_leave', mouse_event_fn); + + function scroll_fn(event) { + event['data'] = 'scroll' + // http://www.adomas.org/javascript-mouse-wheel/ + if (event.wheelDelta) { /* IE/Opera. */ + event.step = event.wheelDelta/120; + } else if (event.detail) { /** Mozilla case. */ + /** In Mozilla, sign of delta is different than in IE. + * Also, delta is multiple of 3. + */ + event.step = -event.detail/3; + } + mouse_event_fn(event) + } + // Initialization code. + if (window.addEventListener) + /** DOMMouseScroll is for mozilla. */ + window.addEventListener('DOMMouseScroll', scroll_fn, false); + /** IE/Opera. */ + window.onmousewheel = document.onmousewheel = scroll_fn; +>>>>>>> fe99b32... Add scroll event handling to webagg backend canvas_div.append(canvas); canvas_div.append(rubberband); From e19357050c02645b8a2e0a10b04dabaf2bf6ed6b Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:07:09 -0600 Subject: [PATCH 13/22] Remove debug print Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 30 +++------------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index fdc60e02df68..5e1d6c581f48 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -143,7 +143,7 @@ mpl.figure.prototype._init_canvas = function() { // Throttle sequential mouse events to 1 every 20ms. rubberband.mousemove('motion_notify', mouse_event_fn); -<<<<<<< HEAD + rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); @@ -153,31 +153,6 @@ mpl.figure.prototype._init_canvas = function() { event.step = event.deltaY / 3. mouse_event_fn(event); }); -======= - - rubberband.mouseenter('figure_enter', mouse_event_fn); - rubberband.mouseleave('figure_leave', mouse_event_fn); - - function scroll_fn(event) { - event['data'] = 'scroll' - // http://www.adomas.org/javascript-mouse-wheel/ - if (event.wheelDelta) { /* IE/Opera. */ - event.step = event.wheelDelta/120; - } else if (event.detail) { /** Mozilla case. */ - /** In Mozilla, sign of delta is different than in IE. - * Also, delta is multiple of 3. - */ - event.step = -event.detail/3; - } - mouse_event_fn(event) - } - // Initialization code. - if (window.addEventListener) - /** DOMMouseScroll is for mozilla. */ - window.addEventListener('DOMMouseScroll', scroll_fn, false); - /** IE/Opera. */ - window.onmousewheel = document.onmousewheel = scroll_fn; ->>>>>>> fe99b32... Add scroll event handling to webagg backend canvas_div.append(canvas); canvas_div.append(rubberband); @@ -463,11 +438,14 @@ mpl.figure.prototype.mouse_event = function(event, name) { var x = canvas_pos.x; var y = canvas_pos.y; +<<<<<<< HEAD <<<<<<< HEAD ======= console.log(name); >>>>>>> b1331ff... Add scroll event handling to javascript +======= +>>>>>>> 6b3ae27... Remove debug print this.send_message(name, {x: x, y: y, button: event.button, step: event.step}); From f20d0ee4afd308ea16ca3e911d23a859da460db5 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:07:27 -0600 Subject: [PATCH 14/22] Attach scrolling handler to canvas_div Conflicts: lib/matplotlib/backends/web_backend/mpl.js --- lib/matplotlib/backends/web_backend/mpl.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 5e1d6c581f48..4fd1cef99e68 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -438,14 +438,6 @@ mpl.figure.prototype.mouse_event = function(event, name) { var x = canvas_pos.x; var y = canvas_pos.y; -<<<<<<< HEAD -<<<<<<< HEAD -======= - console.log(name); - ->>>>>>> b1331ff... Add scroll event handling to javascript -======= ->>>>>>> 6b3ae27... Remove debug print this.send_message(name, {x: x, y: y, button: event.button, step: event.step}); From aed51fb1949720a72e00c51aa2477edf38bc2478 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 4 Jan 2015 19:53:32 -0600 Subject: [PATCH 15/22] Revert whitespace changes --- lib/matplotlib/backends/web_backend/mpl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 4fd1cef99e68..7b75cad3d20a 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -426,7 +426,6 @@ mpl.findpos = function(e) { }; mpl.figure.prototype.mouse_event = function(event, name) { - var canvas_pos = mpl.findpos(event) if (name === 'button_press') From 890cc673a3570387b6faae4ac94b16f54f41ca77 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 5 Jan 2015 20:39:41 -0600 Subject: [PATCH 16/22] Fix merge conflict --- lib/matplotlib/backends/web_backend/mpl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 7b75cad3d20a..d55065e195fa 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -143,7 +143,6 @@ mpl.figure.prototype._init_canvas = function() { // Throttle sequential mouse events to 1 every 20ms. rubberband.mousemove('motion_notify', mouse_event_fn); - rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); From 836a93f66993f90e822304919bfe3f8ee04efd26 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 5 Jan 2015 20:41:18 -0600 Subject: [PATCH 17/22] Remove temporary file --- lib/matplotlib/backends/web_backend/temp.txt | 21 -------------------- 1 file changed, 21 deletions(-) delete mode 100644 lib/matplotlib/backends/web_backend/temp.txt diff --git a/lib/matplotlib/backends/web_backend/temp.txt b/lib/matplotlib/backends/web_backend/temp.txt deleted file mode 100644 index 08beddd2378b..000000000000 --- a/lib/matplotlib/backends/web_backend/temp.txt +++ /dev/null @@ -1,21 +0,0 @@ -import matplotlib -import itertools -import numpy as np -matplotlib.use('webagg') -import matplotlib.pyplot as plt -plt.close('all') -fig, ax = plt.subplots() -x = np.linspace(0,10,100) -y = np.sin(x) -ln, = ax.plot(x,y, 'o', picker=5) -evt = [] -colors = iter(itertools.cycle(['r', 'g', 'b', 'k', 'c'])) -def on_event(event): - evt.append(event) - ln.set_color(next(colors)) - fig.canvas.draw() - fig.canvas.draw_idle() -fig.canvas.mpl_connect('figure_enter_event', on_event) -fig.canvas.mpl_connect('figure_leave_event', on_event) -plt.show() - From 2f22a75702c2ca2927a56053d6f4da735699af42 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:18:12 -0600 Subject: [PATCH 18/22] Remove merge cruft From fc77121c1a6d6acfc555f8a1e92e535f8af805d3 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:26:51 -0600 Subject: [PATCH 19/22] Invert sign of scroll step --- lib/matplotlib/backends/web_backend/mpl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index d55065e195fa..7c407a9d2bbc 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -149,7 +149,7 @@ mpl.figure.prototype._init_canvas = function() { canvas_div.on("wheel mousewheel", function (event) { event = event.originalEvent; event['data'] = 'scroll' - event.step = event.deltaY / 3. + event.step = -event.deltaY / 3. mouse_event_fn(event); }); From 75c09578db944191481e2428cc8bec7fbb34d18e Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 09:48:24 -0600 Subject: [PATCH 20/22] Make scroll delta work on Firefox and Chrome --- lib/matplotlib/backends/web_backend/mpl.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 7c407a9d2bbc..53b8144c37a6 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -149,7 +149,12 @@ mpl.figure.prototype._init_canvas = function() { canvas_div.on("wheel mousewheel", function (event) { event = event.originalEvent; event['data'] = 'scroll' - event.step = -event.deltaY / 3. + if (event.deltaY < 0) { + event.step = 1; + } else { + event.step = -1; + } + console.log(event.step); mouse_event_fn(event); }); From 0623766297ca6baa1c3075a68fccbf1d049f7d43 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 6 Jan 2015 20:09:40 -0600 Subject: [PATCH 21/22] Clean up wheel function --- lib/matplotlib/backends/web_backend/mpl.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 53b8144c37a6..90231c1a3595 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -146,7 +146,7 @@ mpl.figure.prototype._init_canvas = function() { rubberband.mouseenter('figure_enter', mouse_event_fn); rubberband.mouseleave('figure_leave', mouse_event_fn); - canvas_div.on("wheel mousewheel", function (event) { + canvas_div.on("wheel", function (event) { event = event.originalEvent; event['data'] = 'scroll' if (event.deltaY < 0) { @@ -154,7 +154,6 @@ mpl.figure.prototype._init_canvas = function() { } else { event.step = -1; } - console.log(event.step); mouse_event_fn(event); }); From b41a040d3a5f76bae95f1151090e55144773a37e Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 11 Jan 2015 16:08:33 -0600 Subject: [PATCH 22/22] Update UAT --- lib/matplotlib/backends/web_backend/mpl.js | 1 - lib/matplotlib/backends/web_backend/nbagg_uat.ipynb | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 90231c1a3595..086fc0f31bd8 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -96,7 +96,6 @@ mpl.figure.prototype._init_header = function() { - mpl.figure.prototype._canvas_extra_style = function(canvas_div) { } diff --git a/lib/matplotlib/backends/web_backend/nbagg_uat.ipynb b/lib/matplotlib/backends/web_backend/nbagg_uat.ipynb index 488b0279defe..9e795319bc81 100644 --- a/lib/matplotlib/backends/web_backend/nbagg_uat.ipynb +++ b/lib/matplotlib/backends/web_backend/nbagg_uat.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:43daeaae8ae9fd496fc33d7a64639194bc009b755d28c23cd6329f225628197c" + "signature": "sha256:7f7ec6a6e2a63837a45a88a501ba3c5b1eb88e744925456a9bfeb0d6faa896a5" }, "nbformat": 3, "nbformat_minor": 0, @@ -400,9 +400,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### UAT 16 - key events\n", + "### UAT 16 - Events\n", "\n", - "Pressing any keyboard key or mouse button should cycle the line line while the figure has focus. The figure should have focus by default when it is created and re-gain it by clicking on the canvas. Clicking anywhere outside of the figure should release focus, but moving the mouse out of the figure should not release focus." + "Pressing any keyboard key or mouse button (or scrolling) should cycle the line line while the figure has focus. The figure should have focus by default when it is created and re-gain it by clicking on the canvas. Clicking anywhere outside of the figure should release focus, but moving the mouse out of the figure should not release focus." ] }, { @@ -423,6 +423,7 @@ " fig.canvas.draw_idle()\n", "fig.canvas.mpl_connect('button_press_event', on_event)\n", "fig.canvas.mpl_connect('key_press_event', on_event)\n", + "fig.canvas.mpl_connect('scroll_event', on_event)\n", "plt.show()" ], "language": "python",