Merge pull request #59026 from Sauermann/fix-cursorshape-animationtrackedittypeaudio

This commit is contained in:
Rémi Verschelde 2022-03-11 14:23:39 +01:00 committed by GitHub
commit 6992c6e2fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 7 deletions

View File

@ -1080,12 +1080,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()) {
@ -1097,7 +1092,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() == MouseButton::LEFT && get_default_cursor_shape() == CURSOR_HSIZE) { if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT && over_drag_position) {
len_resizing = true; len_resizing = true;
len_resizing_start = mb->is_shift_pressed(); len_resizing_start = mb->is_shift_pressed();
len_resizing_from_px = mb->get_position().x; len_resizing_from_px = mb->get_position().x;
@ -1134,6 +1129,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 ///

View File

@ -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 override; virtual bool is_key_selectable_by_distance() const override;
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) override; 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) override;
virtual CursorShape get_cursor_shape(const Point2 &p_pos) const override;
AnimationTrackEditTypeAudio(); AnimationTrackEditTypeAudio();
}; };