When pressing Alt+Tab, the "Alt" and "Tab" keys were considered in the
"pressed" state until the user pressed them again because the window is
no longer receiving keyboard events. This resulted in some shortcuts no
longer working, since "Alt" was always in the pressed state. This
changes the keyboard tracking to be reset when the application loses
focus, fixing the issue.
This change also adds tests for the keyboard tracking.
Rename the Git submodule `dependencies` used for some dependent files
for Win32 builds to `win32-deps` and make the necessary adjustments to
the CMake code.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update harfbuzz in the macOS builder from the ancient version to the
current release and switch it to using Meson.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
The Wii U VC emulator incorrectly allows for armv6 thumb instructions
(like LSRS). These cause an undefined instruction error on real hardware
but the Wii U VC emulator just ignores them. This change mimicks the Wii
U VC emulator behavior.
Use a file for the Windows code-signing certificate instead of
hardcoding it into the CMake code.
Update the developer manual with instructions on where to put the
Windows code-signing certificate and the file containing the password
for it.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Tracking whether or not the menus are opened is necessary on Windows since menus stop
the main loop. This is not necessary on other platforms. In particular, on Mac, we do
not get a `wxEVT_MENU_CLOSE` event when opening a dialog from a shortcut, resulting in
the menu status tracking being incorrect.
Fixes#1348
Calling `ExpandAll()` on the `wxTreeCtrl` would cause it to display outside of its
intended view, hiding other controls. Instead, this sets a minimum size for the tree
control, so the default window size is reasonable.
Fixes#1348
Link `FAudio.a` explicitly on MINGW toolchains, for some reason linking
`FAudio` with static preference no longer works.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Previously, the OPRI register was always set to be in CGB mode when not
using the CGB BIOS, resulting in graphics corruption when running DMG
software in CGB mode without using the CGB BIOS. This fixes the issue by
properly setting bit 1 of the OPRI register as expected.
This was broken in #1119.
Stop trying to use debug libs for `CMAKE_BUILD_TYPE=RelWithDebInfo`,
this also fixes the current link error with SFML.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Remove the cmake code that adds the pcre library because the wxWidgets
cmake code correctly includes it now, on both vcpkg and MSYS2.
Also fix up `wxWidgets_ROOT_DIR` and `wxWidgets_LIB_DIR` for debug
builds.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Set `VCPKG_HOST_TRIPLET` and `VCPKG_USE_HOST_TOOLS` when using an X64
host for an ARM64 cross build in order to use the host `pkgconf` and
possibly other tools.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Add information on unlocking the keychain for codesigning and setting up
credentials for notarization to the macOS binary section in the release
process section of the developer manual.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Make compiler symlinks in the macOS builder instead of prepending
`ccache` to the compiler in the CC/CXX environment variables.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Fix the URL a browser is launched with when the `Help -> Translations`
menu item is selected to point to the project page on Transifex.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Shortcuts were mistakenly written in `Keyboard/Keyboard` rather than in
the `Keyboard` section.
In addition, this properly fixes toggling checkable menu item options
via a shortcut.
Fixes#1334
Add the `EXCLUDE_FROM_ALL` keyword to the `FetchContent_Declare` call
for GoogleTest, so that gtest/gmock are not installed with the project.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update the included WinSparkle dll to 0.8.1 and add support for using
the ARM64 WinSparkle dll as well.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update the release steps in the developer manual to mention the
requirement for a GnuPG key, emphasize the editing the changelog step
and add instructions for putting `signtool.exe` in the `PATH` for the 32
bit Windows binary.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Do not try to install FAudio for the MINGW32 32 bit Windows MSYS2 target
in `installdeps`. We do not use it for the 32 bit build and there is no
package for it for MINGW32.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update README.md and remove outdated information.
Update the Developer Manual and describe the current release process.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update the cmake -DTAG_RELEASE script to work with recent cmake changes.
Change it to not automatically make the release commit and tag, instead
specifying in the instructions that the person making the release must
edit the CHANGELOG.md and then run the commands, given in the
instructions, to make the release commit and tag.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
On Windows, wchar_t is 16 bits and represents UTF-16 code units.
However, on other platforms, wchar_t is typically implemented as 32 bits
to represent UTF-32 code units. In order to work around this problem, we
always convert the string we get from FAudio, which is represented as
UTF-16 code units, into UTF-8 and let wxString handle the conversion to
its native type internally.