Fix various cursor problems.

Add a new scoped cursor system that makes it much harder to screw up and end up
with stick cursors and so on.
This commit is contained in:
David Robillard 2014-12-20 01:11:28 -05:00
parent 5d8021bf44
commit 670938c8c4
13 changed files with 254 additions and 149 deletions

View file

@ -274,7 +274,7 @@ Drag::start_grab (GdkEvent* event, Gdk::Cursor *cursor)
} else {
/* CAIROCANVAS need a variant here that passes *cursor */
_item->grab ();
_editor->push_canvas_cursor (cursor);
_cursor_ctx = CursorContext::create(*_editor, cursor);
}
if (_editor->session() && _editor->session()->transport_rolling()) {
@ -311,7 +311,7 @@ Drag::end_grab (GdkEvent* event)
finished (event, _move_threshold_passed);
_editor->verbose_cursor()->hide ();
_editor->pop_canvas_cursor ();
_cursor_ctx.reset();
return _move_threshold_passed;
}