1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

Some optimizations and limits for extreme zoom in and out in editor, fixes #5820

This commit is contained in:
Juan Linietsky
2016-07-21 10:06:38 -03:00
parent ad55c63918
commit 124e3591a5
2 changed files with 58 additions and 9 deletions

View File

@@ -41,6 +41,11 @@
#include "tools/editor/plugins/animation_player_editor_plugin.h"
#include "scene/resources/packed_scene.h"
#define MIN_ZOOM 0.01
#define MAX_ZOOM 100
class SnapDialog : public ConfirmationDialog {
OBJ_TYPE(SnapDialog,ConfirmationDialog);
@@ -1062,6 +1067,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (b.button_index==BUTTON_WHEEL_DOWN) {
if (zoom<MIN_ZOOM)
return;
float prev_zoom=zoom;
zoom=zoom*0.95;
{
@@ -1077,6 +1085,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (b.button_index==BUTTON_WHEEL_UP) {
if (zoom>MAX_ZOOM)
return;
float prev_zoom=zoom;
zoom=zoom*(1.0/0.95);
{
@@ -2526,12 +2537,17 @@ void CanvasItemEditor::_popup_callback(int p_op) {
snap_dialog->popup_centered(Size2(220,160));
} break;
case ZOOM_IN: {
if (zoom>MAX_ZOOM)
return;
zoom=zoom*(1.0/0.5);
_update_scroll(0);
viewport->update();
return;
} break;
case ZOOM_OUT: {
if (zoom<MIN_ZOOM)
return;
zoom=zoom*0.5;
_update_scroll(0);
viewport->update();