void EditorFileDialog::_unhandled_input(const InputEvent& p_event) {

	if (p_event.type==InputEvent::KEY && is_window_modal_on_top()) {

		if (p_event.key.pressed) {

			bool handled=false;

			if (ED_IS_SHORTCUT("file_dialog/go_back", p_event)) {
				_go_back();
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/go_forward", p_event)) {
				_go_forward();
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/go_up", p_event)) {
				_go_up();
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/refresh", p_event)) {
				invalidate();
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/toggle_hidden_files", p_event)) {
				bool show=!show_hidden_files;
				set_show_hidden_files(show);
				EditorSettings::get_singleton()->set("file_dialog/show_hidden_files",show);
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/toggle_favorite", p_event)) {
				_favorite_toggled(favorite->is_pressed());
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/toggle_mode", p_event)) {
				if (mode_thumbnails->is_pressed()) {
					set_display_mode(DISPLAY_LIST);
				} else {
					set_display_mode(DISPLAY_THUMBNAILS);
				}
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/create_folder", p_event)) {
				_make_dir();
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/focus_path", p_event)) {
				dir->grab_focus();
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/move_favorite_up", p_event)) {
				_favorite_move_up();
				handled=true;
			}
			if (ED_IS_SHORTCUT("file_dialog/move_favorite_down", p_event)) {
				_favorite_move_down();
				handled=true;
			}

			if (handled) {
				accept_event();
			}
		}
	}
}
void process_platform() {
	if(getOrderID() != MP.completed_order) {
		if(!(getOrderState()&ORDER_ACTIVE)) {
			switch(getOrderType()) {
				case(ORDER_TYPE_FORWARD):
					orderStartForward();
					break;
				case(ORDER_TYPE_LEFT_TURN):
					orderStartLeftTurn();
					break;
				case(ORDER_TYPE_RIGHT_TURN):
					orderStartRightTurn();
					break;
			}
		} else {
			if(MP._rotary_driver_state&ROTARY_DRIVER_ACTIVE) {
				if(rotaryDriverDone()) {
					deactivatePID();
					set_stop();
					setOrderDone();
					MP.completed_order = getOrderID();
					rotaryDriverStop();
					rotaryDriverReset();
					MP.adjust_state = 0;
				}
			} else {
				if(MP._state == PLATFORM_FORWARD) {
					if(getOrderTargetTicks() < cmtoticks(PLATFORM_PID_THRESHOLD)) {
						deactivatePID();
						//set_forward(MOTOR_DEFAULT_SPEED, MOTOR_DEFAULT_SPEED);
						if(getOrderCurrentTicks() >= getOrderTargetTicks()) {
							set_stop();
							setOrderDone();
							MP.completed_order = getOrderID();
							MP.adjust_state = 0;
						}
					} else {

						if(!MP.adjust_state&PLATFORM_ADJUST_DONE) {
							if(getOrderLengthToWall() < 7.0) {
								if(getOrderCurrentTicks() >= getOrderTargetTicks()*0.40 && getOrderCurrentTicks() <= getOrderTargetTicks()*0.60) {
									platformFineAdjust();
								}
							}
						}

						if(getOrderCurrentTicks() >= getOrderTargetTicks()*0.6) {

							if(!checkFrontRight()) {
								deactivatePID();
								set_forward(MP._originalLspeed, MP._originalRspeed);
							}

							if((!checkBackRight() && !checkFrontRight()) || (!checkBackLeft() && !checkFrontLeft())) {
								set_stop();
								deactivatePID();
								if(getOrderLengthToWall() >= 7.0) {
									rotaryDriverStartCM(8);
								} else {
									rotaryDriverStartCM(10);
								}

							}
						}
					}
				} else if(MP._state == PLATFORM_LEFT || MP._state == PLATFORM_RIGHT) {
					deactivatePID();
					if(getOrderCurrentTicks() >= getOrderTargetTicks()) {
						set_stop();
						setOrderDone();
						MP.completed_order = getOrderID();
					}
				}

			}
		}
	}

	if(change==1){
		switch(MP._state){
			case(PLATFORM_STOP):
				_stop();
				break;
			case(PLATFORM_FORWARD):
				_go_forward();
				break;
			case(PLATFORM_BACKWARD):
				_go_backward();
				break;
			case(PLATFORM_LEFT):
				_turn_left();
				break;
			case(PLATFORM_RIGHT):
				_turn_right();
				break;
			default:
				_stop();
				break;
		}
		change=0;
	}
}