### Godot version

4.0.rc6

### System information

Windows 10

### Issue description

Disabled items of an `ItemList` still trigger `item_selected` and `item_activated` signals when using the mouse. Even though the documentation states that:
> Disabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter).

Visually, they are as expected (grayed out and can't grab focus).

-----
This seems to be a recurring problem as it has happened in Godot 2 (#5683) and Godot 3 (#37277) as well.
According to the comments in #37277, PR #37285 (#60123) is supposed to fix it for Godot 4. But it still seems to be an issue.

The PR suggests using `disabled` for rendering and `selectable` for actual selection. If that's the final verdict on the matter, then the documentation should be updated to reflect this.

### Steps to reproduce

1. Create a simple scene.
2. Add an `ItemList` and add several items to it via the Inspector. Disable one or more items.
3. Attach a script to the item list with the following code:
```gdscript
extends ItemList


func _ready() -> void:
	item_activated.connect(_on_item_activated)
	item_selected.connect(_on_item_selected)


func _on_item_activated(item_index: int) -> void:
	prints("Item Activated:", item_index)


func _on_item_selected(item_index: int) -> void:
	prints("Item Selected:", item_index)
```
4. Run the project and try selecting/activating a disabled item.
5. Check the Output console for results.

### Minimal reproduction project

[ItemList_DisabledItem_Bug.zip](https://github.com/godotengine/godot/files/10844570/ItemList_DisabledItem_Bug.zip)

all_fit = false;
				break;
			}
			if (same_column_width) {
				items.write[i].rect_cache.size.x = max_column_width;
			}
			items.write[i].rect_cache.position = ofs;
			max_h = MAX(max_h, items[i].rect_cache.size.y);
			ofs.x += items[i].rect_cache.size.x + theme_cache.h_separation;
			items.write[i].column = col;
			col++;
			if (col == current_columns) {
				if (i < items.size() - 1) {
					separators.push_back(ofs.y + max_h + theme_cache.v_separation / 2);
				}
				for (int j = i; j >= 0 && col > 0; j--, col--) {
					items.write[j].rect_cache.size.y = max_h;
				}
				ofs.x = 0;
				ofs.y += max_h + theme_cache.v_separation;
				col = 0;
				max_h = 0;
			}
		}
		for (int j = items.size() - 1; j >= 0 && col > 0; j--, col--) {
			items.write[j].rect_cache.size.y = max_h;
		}
		if (all_fit) {
			float page = MAX(0, size.height - theme_cache.panel_style->get_minimum_size().height);
			float max = MAX(page, ofs.y + max_h);