### Godot version

4.0.2.stable

### System information

Fedora 37, GeForce RTX 4090 (NVIDIA 530.41.03)

### Issue description

Physical Keycode and Key Label options appear grayed out in the input editor when editing an existing key, even though I should logically be able to change it:

![image](https://github.com/godotengine/godot/assets/180032/54d4c3a5-4da5-4448-b42a-42f0c6870cc2)

If I set the key to another key then change it back, then the **Physical Keycode** and **Key Label** options are no longer grayed out.

cc @bruvzg

### Steps to reproduce

- Open the Project Settings > Input Map tab.
- Create an action, with an associated key. Save it.
- Click the edit button next to the key, and try to change the type without touching the actual key's value.
- Change the key's value back and forth and try to change the type using the dropdown again.

### Minimal reproduction project

N/A
mod_container->set_visible(show_mods);
		device_container->set_visible(show_device);
		key_mode->set_visible(show_key);
		additional_options_container->show();
		
		Ref<InputEventKey> ko = p_original_event;
		if (ko.is_valid()) {
			key_mode->set_item_disabled(KEYMODE_KEYCODE, ko->get_keycode() == Key::NONE);
			key_mode->set_item_disabled(KEYMODE_PHY_KEYCODE, ko->get_physical_keycode() == Key::NONE);
			key_mode->set_item_disabled(KEYMODE_UNICODE, ko->get_key_label() == Key::NONE);
		}
		
		if (p_update_input_list_selection && (k.is_valid() || joyb.is_valid() || joym.is_valid() || mb.is_valid())) {
			in_tree_update = true;
			TreeItem *category = input_list_tree->get_root()->get_first_child();
			while (category) {
				TreeItem *input_item = category->get_first_child();
				if (input_item != nullptr) {
					
					int input_type = input_item->get_parent()->get_meta("__type", 0);
					if (input_type == 0) {
						in_tree_update = false;
						return;
					}
					
					if ((k.is_valid() && input_type == INPUT_KEY) || (joyb.is_valid() && input_type == INPUT_JOY_BUTTON) || (joym.is_valid() && input_type == INPUT_JOY_MOTION) || (mb.is_valid() && input_type == INPUT_MOUSE_BUTTON)) {
						
						while (input_item) {
							bool key_match = k.is_valid() && (Variant(k->get_keycode()) == input_item->get_meta("__keycode") || Variant(k->get_physical_keycode()) == input_item->get_meta("__keycode"));
							bool joyb_match = joyb.is_valid() && Variant(joyb->get_button_index()) == input_item->get_meta("__index");