Fix canvas zoom controls lazy position update
After hiding/showing rulers, zoom controls were kept at the wrong position until an update happened because of other reason.
This commit is contained in:
parent
af731f8d0f
commit
4dd9efe757
1 changed files with 7 additions and 1 deletions
|
@ -4009,6 +4009,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|||
show_rulers = !show_rulers;
|
||||
int idx = view_menu->get_popup()->get_item_index(SHOW_RULERS);
|
||||
view_menu->get_popup()->set_item_checked(idx, show_rulers);
|
||||
_update_scrollbars();
|
||||
viewport->update();
|
||||
} break;
|
||||
case SHOW_GUIDES: {
|
||||
|
@ -4524,6 +4525,7 @@ Dictionary CanvasItemEditor::get_state() const {
|
|||
|
||||
void CanvasItemEditor::set_state(const Dictionary &p_state) {
|
||||
|
||||
bool update_scrollbars = false;
|
||||
Dictionary state = p_state;
|
||||
if (state.has("zoom")) {
|
||||
zoom = p_state["zoom"];
|
||||
|
@ -4532,7 +4534,7 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) {
|
|||
if (state.has("ofs")) {
|
||||
view_offset = p_state["ofs"];
|
||||
previous_update_view_offset = view_offset;
|
||||
_update_scrollbars();
|
||||
update_scrollbars = true;
|
||||
}
|
||||
|
||||
if (state.has("grid_offset")) {
|
||||
|
@ -4620,6 +4622,7 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) {
|
|||
show_rulers = state["show_rulers"];
|
||||
int idx = view_menu->get_popup()->get_item_index(SHOW_RULERS);
|
||||
view_menu->get_popup()->set_item_checked(idx, show_rulers);
|
||||
update_scrollbars = true;
|
||||
}
|
||||
|
||||
if (state.has("show_guides")) {
|
||||
|
@ -4664,6 +4667,9 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) {
|
|||
skeleton_menu->get_popup()->set_item_checked(idx, skeleton_show_bones);
|
||||
}
|
||||
|
||||
if (update_scrollbars) {
|
||||
_update_scrollbars();
|
||||
}
|
||||
viewport->update();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue