Use get_cursor_shape for identifying the cursor shape in AnimationTrackEditTypeAudio
get_cursor_shape() is used in cases where a Control displays different cursors in different areas.
There is no need to set the default cursor shape on every mouse move event.
(cherry picked from commit 24942214d9
)
This commit is contained in:
parent
d92406751b
commit
e2bd1ad6da
2 changed files with 13 additions and 7 deletions
|
@ -1051,12 +1051,7 @@ void AnimationTrackEditTypeAudio::_gui_input(const Ref<InputEvent> &p_event) {
|
||||||
len_resizing_index = i;
|
len_resizing_index = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
over_drag_position = use_hsize_cursor;
|
||||||
if (use_hsize_cursor) {
|
|
||||||
set_default_cursor_shape(CURSOR_HSIZE);
|
|
||||||
} else {
|
|
||||||
set_default_cursor_shape(CURSOR_ARROW);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len_resizing && mm.is_valid()) {
|
if (len_resizing && mm.is_valid()) {
|
||||||
|
@ -1068,7 +1063,7 @@ void AnimationTrackEditTypeAudio::_gui_input(const Ref<InputEvent> &p_event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<InputEventMouseButton> mb = p_event;
|
Ref<InputEventMouseButton> mb = p_event;
|
||||||
if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT && get_default_cursor_shape() == CURSOR_HSIZE) {
|
if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT && over_drag_position) {
|
||||||
len_resizing = true;
|
len_resizing = true;
|
||||||
len_resizing_start = mb->get_shift();
|
len_resizing_start = mb->get_shift();
|
||||||
len_resizing_from_px = mb->get_position().x;
|
len_resizing_from_px = mb->get_position().x;
|
||||||
|
@ -1105,6 +1100,14 @@ void AnimationTrackEditTypeAudio::_gui_input(const Ref<InputEvent> &p_event) {
|
||||||
AnimationTrackEdit::_gui_input(p_event);
|
AnimationTrackEdit::_gui_input(p_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Control::CursorShape AnimationTrackEditTypeAudio::get_cursor_shape(const Point2 &p_pos) const {
|
||||||
|
if (over_drag_position || len_resizing) {
|
||||||
|
return Control::CURSOR_HSIZE;
|
||||||
|
} else {
|
||||||
|
return get_default_cursor_shape();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
/// SUB ANIMATION ///
|
/// SUB ANIMATION ///
|
||||||
|
|
||||||
|
|
|
@ -119,6 +119,7 @@ class AnimationTrackEditTypeAudio : public AnimationTrackEdit {
|
||||||
int len_resizing_index;
|
int len_resizing_index;
|
||||||
float len_resizing_from_px;
|
float len_resizing_from_px;
|
||||||
float len_resizing_rel;
|
float len_resizing_rel;
|
||||||
|
bool over_drag_position = false;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
@ -134,6 +135,8 @@ public:
|
||||||
virtual bool is_key_selectable_by_distance() const;
|
virtual bool is_key_selectable_by_distance() const;
|
||||||
virtual void draw_key(int p_index, float p_pixels_sec, int p_x, bool p_selected, int p_clip_left, int p_clip_right);
|
virtual void draw_key(int p_index, float p_pixels_sec, int p_x, bool p_selected, int p_clip_left, int p_clip_right);
|
||||||
|
|
||||||
|
virtual CursorShape get_cursor_shape(const Point2 &p_pos) const;
|
||||||
|
|
||||||
AnimationTrackEditTypeAudio();
|
AnimationTrackEditTypeAudio();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue