From 148c1f17683f40c34c91c9a3e21539f148d0242b Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 21 Oct 2014 11:07:53 +0200 Subject: [PATCH] fix stuck key-grab/scrolling. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Problem: mouse-scrolling over a MIDI region in internal edit mode never released “magic widget focus” (mod keys and global scrolls after that were ignored). -> added to leave_notify. Also, the MouseModeChanged signal needs to be emitted when internal edit, mode changes in order to trigger MidiRegionView::mouse_mode_changed(), which in turn releases the magic focus while still hovering over a MIDI region. --- gtk2_ardour/editor_mouse.cc | 1 + gtk2_ardour/midi_region_view.cc | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 1087b0e817..ecf269862c 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -2557,6 +2557,7 @@ Editor::set_internal_edit (bool yn) } reset_canvas_cursor (); + MouseModeChanged (); } /** Update _join_object_range_state which indicate whether we are over the top diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 5616a92cfe..d62fd789ee 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -414,6 +414,10 @@ MidiRegionView::leave_notify (GdkEventCrossing*) trackview.editor().verbose_cursor()->hide (); remove_ghost_note (); + if (trackview.editor().internal_editing()) { + Keyboard::magic_widget_drop_focus(); + } + if (pre_enter_cursor) { Editor* editor = dynamic_cast (&trackview.editor()); editor->set_canvas_cursor(pre_enter_cursor); -- 2.30.2