When dragging points we must always update position and mark them dirty
through all code paths.
Ensure the ctrl and shift modifier rotation quarternion is always set to
something reasonable.
separate extraLine tracking code from drag tracking code
...by 1/40th of the scrreen width so that the user can notice it.
This can happen if the window was on a second monitor, which is
disconnected, or if the user knows about `Alt-Space | Move` and then
moving the window with the arrow keys.
Before this, if for example the left edge was off-screen it was moved
to 1920, which is just off-screen, so the window remained invisible.
Fixes: #938
On Windows SolveSpace 2.3 uses a plain dialog for `SolveSpace::Error` and
`SolveSpace::Message` with no icon and no system beep. After the GUI
abstraction was reworked this changed to the default system message boxes
(using MessageBoxIndirectW) that play the "Default Beep" sound and show
red "X" and blue "i" icons respectively.
The beep is annoying since the error and message dialogs are used often to
show required conditions for constraints, new groups and other behaviors.
This disables the beep and uses the SolveSpace icon.
Fixes: 719
On macOS actual scroll delta is used for the zoom amount.
On Windows WHEEL_DELTA is used to allow smooth scrolling if supported.
Shift+Scroll is added for 10x finer zooming.
Went through first the diff of the referenced commit,
then all instances of "Create(Open|Save)FileDialog";
added SuggestFilename() calls where a default exists
This has been previously removed in
6b5db58971Closes#538
Travis's move away from providing unlimited build time to OSS and its
inferior developer experience are the reason for this change.
The workflows are simple and straightforward, and the build scripts
are mostly 1:1 the same we used on Travis. This avoids vendor lock-in
as much as possible in case we need to move somewhere else in the future.
We introduce two workflows:
1. CD (cd.yml)
Runs on: Commits to master, GitHub releases.
Does: Run tests, build release assets, update GitHub edge release or
release to developer created GitHub release. Builds & uploads snaps to
the Snap Store.
2. Test (test.yml)
Runs on: Every commit except those on master and v* tagged ones.
I.e. PRs and other branches.
Does: Run tests only.
Creating a release is now an explicit operation. On the Travis workflow,
pushing a tag that begins with "v" will lead to the automatic creation of
an associated GitHub release.
On GHA, creating a GitHub release by hand will trigger the CD-workflow
to build & upload the release assets.
Other differences to Travis:
- Windows builds on Visual Studio 16 2019 instead of Visual Studio 15 2017.
- Snap builds run in docker containers, not directly on the build host.
- Snap arm64 builds on amd64 via QEMU user emulation.
This is slower than what Travis gave us and should be changed when/if
GHA offers ARM64 build runners.
- GHA retains build artifacts for 90 days by default.
Required secrets:
- MACOS_CERTIFICATE_PASSWORD
- MACOS_CERTIFICATE_P12
- MACOS_APPSTORE_APP_PASSWORD
- MACOS_APPSTORE_USERNAME
- MACOS_DEVELOPER_ID
- SNAPSTORE_LOGIN
Discussion: https://github.com/solvespace/solvespace/issues/807
PR: https://github.com/solvespace/solvespace/pull/824Fixes#807