### Godot version

v4.0.beta15.official [4fa6edc88]

### System information

Windows 10

### Issue description

I use a custom keyboard layout (I made it myself), and it has «dead keys» (just like International keyboard layouts have). For example, if I press `'`, nothing happens, but if I press `a` after that, I'll get `á`. If I press `'` and `Space`, I'll get just `'`. And with my layout:
If I press `Shift + .` and then `a`, I will get `ᵄ`.
If I press `Shift + .` and then `Space`, I will get `>`.
If I press `Shift + [` and then `5`, I will get `₅`.
If I press `Shift + [` and then `Space`, I will get `{`.
In beta 14 and before, everything worked fine, but in beta 15 when I press `Shift + .` and `Space`, just nothing happens, I don't get `>`. Same for `Shift + [` and `Space`, I don't get `>`. It seems the problem is with `Shift`, because I still can type `á` (`'` and `a`) or `'` (`'` and `Space`), but not `ä` (`Shift + '` and `a`) or `"` (`Shift + '` and `Space`). In the latter cases I get `á` and `'` as if `Shift` were never pressed.

### Steps to reproduce

Install/add US International keyboard layout or [Extended Latin keyboard layout](https://github.com/godotengine/godot/files/10494466/Layouts.zip) (just run `Extended Latin\ExtLat6\setup.exe`).
Open script editor.
Press `Shift + '`.
Then press `a`.

### Minimal reproduction project

N/A
windows[window_id].min_pressure = int(pressure.axMin);
					windows[window_id].max_pressure = int(pressure.axMax);
				}
				AXIS orientation[3];
				if (wintab_WTInfo(WTI_DEVICES + windows[window_id].wtlc.lcDevice, DVC_ORIENTATION, &orientation)) {
					windows[window_id].tilt_supported = orientation[0].axResolution && orientation[1].axResolution;
				}
				return 0;
			}
		} break;
		case WT_PACKET: {
			if ((tablet_get_current_driver() == "wintab") && wintab_available && windows[window_id].wtctx) {
				PACKET packet;
				if (wintab_WTPacket(windows[window_id].wtctx, wParam, &packet)) {
					POINT coords;
					GetCursorPos(&coords);
					ScreenToClient(windows[window_id].hWnd, &coords);
					windows[window_id].last_pressure_update = 0;
					float pressure = float(packet.pkNormalPressure - windows[window_id].min_pressure) / float(windows[window_id].max_pressure - windows[window_id].min_pressure);
					double azim = (packet.pkOrientation.orAzimuth / 10.0f) * (Math_PI / 180);
					double alt = Math::tan((Math::abs(packet.pkOrientation.orAltitude / 10.0f)) * (Math_PI / 180));
					bool inverted = packet.pkStatus & TPS_INVERT;
					Vector2 tilt = (windows[window_id].tilt_supported) ? Vector2(Math::atan(Math::sin(azim) / alt), Math::atan(Math::cos(azim) / alt)) : Vector2();
					
					if (!old_invalid && coords.x == old_x && coords.y == old_y && windows[window_id].last_pressure == pressure && windows[window_id].last_tilt == tilt && windows[window_id].last_pen_inverted == inverted) {
						break;
					}
					windows[window_id].last_pressure = pressure;
					windows[window_id].last_tilt = tilt;
					windows[window_id].last_pen_inverted = inverted;