This still isn't quite right, but it's a lot less broken than before, at least.
- set_canvas_cursor (cursor, false);
+ set_canvas_cursor (cursor, true);
bool is_start;
bool ret = true;
bool is_start;
bool ret = true;
+ reset_canvas_cursor ();
+
switch (item_type) {
case ControlPointItem:
_verbose_cursor->hide ();
switch (item_type) {
case ControlPointItem:
_verbose_cursor->hide ();
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
+ , pre_note_enter_cursor (0)
, _note_player (0)
{
CANVAS_DEBUG_NAME (_note_group, string_compose ("note group for %1", get_item_name()));
, _note_player (0)
{
CANVAS_DEBUG_NAME (_note_group, string_compose ("note group for %1", get_item_name()));
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
+ , pre_note_enter_cursor (0)
, _note_player (0)
{
CANVAS_DEBUG_NAME (_note_group, string_compose ("note group for %1", get_item_name()));
, _note_player (0)
{
CANVAS_DEBUG_NAME (_note_group, string_compose ("note group for %1", get_item_name()));
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
+ , pre_note_enter_cursor (0)
, _note_player (0)
{
init (false);
, _note_player (0)
{
init (false);
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
, _last_event_y (0)
, pre_enter_cursor (0)
, pre_press_cursor (0)
+ , pre_note_enter_cursor (0)
, _note_player (0)
{
init (true);
, _note_player (0)
{
init (true);
if (pre_enter_cursor) {
Editor* editor = dynamic_cast<Editor *> (&trackview.editor());
editor->set_canvas_cursor(pre_enter_cursor);
if (pre_enter_cursor) {
Editor* editor = dynamic_cast<Editor *> (&trackview.editor());
editor->set_canvas_cursor(pre_enter_cursor);
if (m == MouseObject && Keyboard::modifier_state_contains (ev->state, Keyboard::insert_note_modifier())) {
pre_press_cursor = editor->get_canvas_cursor ();
editor->set_canvas_cursor (editor->cursors()->midi_pencil);
if (m == MouseObject && Keyboard::modifier_state_contains (ev->state, Keyboard::insert_note_modifier())) {
pre_press_cursor = editor->get_canvas_cursor ();
editor->set_canvas_cursor (editor->cursors()->midi_pencil);
if (_mouse_state != SelectTouchDragging) {
if (_mouse_state != SelectTouchDragging) {
{
Editor* editor = dynamic_cast<Editor*>(&trackview.editor());
{
Editor* editor = dynamic_cast<Editor*>(&trackview.editor());
- pre_enter_cursor = editor->get_canvas_cursor ();
+ pre_note_enter_cursor = editor->get_canvas_cursor ();
if (_mouse_state == SelectTouchDragging) {
note_selected (ev, true);
if (_mouse_state == SelectTouchDragging) {
note_selected (ev, true);
editor->verbose_cursor()->hide ();
editor->verbose_cursor()->hide ();
- if (pre_enter_cursor) {
- editor->set_canvas_cursor (pre_enter_cursor);
- pre_enter_cursor = 0;
+ if (pre_note_enter_cursor) {
+ editor->set_canvas_cursor (pre_note_enter_cursor);
+ pre_note_enter_cursor = 0;
Editing::MouseMode mm = editor->current_mouse_mode();
bool trimmable = (mm == MouseObject || mm == MouseTimeFX || mm == MouseDraw);
Editing::MouseMode mm = editor->current_mouse_mode();
bool trimmable = (mm == MouseObject || mm == MouseTimeFX || mm == MouseDraw);
- if (trimmable && x_fraction > 0.0 && x_fraction < 0.2) {
- editor->set_canvas_cursor (editor->cursors()->left_side_trim);
- } else if (trimmable && x_fraction >= 0.8 && x_fraction < 1.0) {
- editor->set_canvas_cursor (editor->cursors()->right_side_trim);
- } else {
- if (pre_enter_cursor && can_set_cursor) {
- editor->set_canvas_cursor (pre_enter_cursor);
+ if (can_set_cursor) {
+ if (trimmable && x_fraction > 0.0 && x_fraction < 0.2) {
+ editor->set_canvas_cursor (editor->cursors()->left_side_trim);
+ } else if (trimmable && x_fraction >= 0.8 && x_fraction < 1.0) {
+ editor->set_canvas_cursor (editor->cursors()->right_side_trim);
+ } else if (pre_note_enter_cursor) {
+ editor->set_canvas_cursor (pre_note_enter_cursor);
Gdk::Cursor* pre_enter_cursor;
Gdk::Cursor* pre_press_cursor;
Gdk::Cursor* pre_enter_cursor;
Gdk::Cursor* pre_press_cursor;
+ Gdk::Cursor* pre_note_enter_cursor;
NotePlayer* _note_player;
NotePlayer* _note_player;
switch (ev->type) {
case GDK_ENTER_NOTIFY:
switch (ev->type) {
case GDK_ENTER_NOTIFY:
- set_mouse_fractions (ev);
_region.note_entered (this);
_region.note_entered (this);
+ set_mouse_fractions (ev);
break;
case GDK_LEAVE_NOTIFY:
break;
case GDK_LEAVE_NOTIFY: