WIP: Rewrite GdkWin32Keymap V2
Replacement for !1035 (closed)
This gets rid of the old, slow keymap initalization code. This cuts 600 ms startup latency on my machine. It makes the start of GTK3 applications feel much snappier. See #2055
I closed the old Merge Request !1035 (closed) because
ToUnicodeEx turned out to be a dead end. Instead of relying on this broken API, this new merge request loads the tables from the keyboard layout DLLs directly. This allows us to look up keys without clobbering the global keyboard state.
Again, I highly recommend applying !991 first, since it fixes a bunch of other problems related to input handling (mainly dead keys). However, my tests have shown that this new Merge Request works reasonably well on its own, too, and actually fixes some of the same problems. But it's not as complete as it is in conjunction with !991 (e.g. combining dead keys with incompatible keys, like
´+d, simply doesn't print anything, but
´+a works and produces