You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 12:40:44 +00:00
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:
committed by
Rémi Verschelde
parent
d92406751b
commit
e2bd1ad6da
@@ -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();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user