1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-18 04:23:20 +01:00
Commit Graph

21979 Commits

Author SHA1 Message Date
Ted John
22ae9e8dc2 Handle mod key edge-cases in tiling WMs (#14426)
Ignores keypresses when the mod key is held.

The reasoning is that an odd interaction happens between SDL applications and
tiling window managers. Tiling window managers like Xmonad and i3 usually use
the mod ("windows") key and a number to change workspaces. When changing
workspaces, however, the WMs still send the number key through instead of
"eating" it. It's not clear why, exactly, but it seems universal.

Mod+1 -> Goes to workspace #1
Mod+2 -> Goes to workspace #2
...
Mod+9 -> Goes to workspace #9

Most applications don't even see the number key being sent, so if you move to
workspace 1, Firefox won't type "1" into the browser bar, Vim won't type "1"
into your file, etc. But SDL applications, for whatever reason, DO see this
keydown. Of course, they'll handle it like a regular key press. So if you move
to workspace 1, which contains OpenRCT, it inadvertently toggles x-ray mode.

I first found this bug in another SDL game, The Powder Toy. After some
discussion with the devs, they fixed it like this, by ignoring keydown events
when the mod key is pressed, since the mod key is reserved for the window
manager anyway. It works well and should be in the next release.

c7619387ac...93b920a57f

I did the same thing here.
2021-10-08 21:49:00 +01:00
Gaven Rendell
86cf0dc916 Remove Windows check 2021-10-08 21:27:48 +01:00
Gaven Rendell
33fa31e6d0 Exclude Win/Mac from ignoring mod key 2021-10-08 21:25:36 +01:00
Gaven Rendell
7787bb46e0 Handle mod key edge-cases in tiling WMs
This commit ignores keypresses when the mod key is held.

The reasoning is that an odd interaction happens between SDL applications and
tiling window managers. Tiling window managers like Xmonad and i3 usually use
the mod ("windows") key and a number to change workspaces. When changing
workspaces, however, the WMs still send the number key through instead of
"eating" it. It's not clear why, exactly, but it seems universal.

Mod+1 -> Goes to workspace #1
Mod+2 -> Goes to workspace #2
...
Mod+9 -> Goes to workspace #9

Most applications don't even see the number key being sent, so if you move to
workspace 1, Firefox won't type "1" into the browser bar, Vim won't type "1"
into your file, etc. But SDL applications, for whatever reason, DO see this
keydown. Of course, they'll handle it like a regular key press. So if you move
to workspace 1, which contains OpenRCT, it inadvertently toggles x-ray mode.

I first found this bug in another SDL game, The Powder Toy. After some
discussion with the devs, they fixed it like this, by ignoring keydown events
when the mod key is pressed, since the mod key is reserved for the window
manager anyway. It works well and should be in the next release.

c7619387ac...93b920a57f

I did the same thing here.
2021-10-08 21:25:33 +01:00
Ted John
6b965074ec Merge pull request #15527 from hjort96/refactor-window-ViewClipping
Close #13813 : Refactor window to class: ViewClipping
2021-10-08 13:57:25 +01:00
seanmajorpayne
25419bb4e3 Fix #15197: Cannot place flat ride after removing it in construction
Demolishing a flat ride (using the bulldozer icon in the construction menu) will now reopen the construction window to it's default state.
2021-10-08 00:13:04 +02:00
hjort96
dba34d2c17 Removed a line 2021-10-07 22:38:12 +02:00
Duncan
fd18ac7f85 Modify StaffSetPatrolAreaAction to have three modes (#15494)
* Modify StaffSetPatrolAreaAction to have three modes

* Actually serialise mode

* Apply review comments

* Increment network version

* Apply review comment

* Update replay
2021-10-07 18:02:24 +01:00
hjort96
9d57e93df9 Add suggestions from review. 2021-10-07 16:21:19 +02:00
Michael Steenbeek
5563139ed1 Fix #15503: Freeze when doing specific merges 2021-10-06 23:00:06 +02:00
ζeh Matt
c054967230 Merge pull request #15530 from ZehMatt/refactor/wallplaceaction-result
Refactor action result passing for WallPlaceAction
2021-10-06 08:50:57 -07:00
Bepso
c44d1151c2 Close #13766 : Refactor Clear Scenery to class (#15481)
* Add CleanScenery class
2021-10-06 16:46:01 +01:00
ζeh Matt
976d15ce10 Merge pull request #15529 from ZehMatt/refactor/smallsceneryplaceaction-result
Refactor action result passing for SmallSceneryPlaceAction
2021-10-06 08:32:16 -07:00
ζeh Matt
aa50809a85 Merge pull request #15528 from ZehMatt/refactor/staffhireaction-result
Refactor action result passing for StaffHireNewAction
2021-10-06 08:32:00 -07:00
ζeh Matt
d2ffeaa7b0 Refactor action result passing for WallPlaceAction 2021-10-06 18:31:09 +03:00
ζeh Matt
9cb26f7b02 Refactor action result passing for SmallSceneryPlaceAction 2021-10-06 16:12:37 +03:00
Hielke Morsink
782220b42b Show "Update available" in all game-options dropdowns
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
2021-10-06 15:02:35 +02:00
Duncan
6cac668447 Fix incorrect staff costumes being available (#15499)
Noticed this when trying to fix an NSF scenery window issue. The previous code meant that if any single scenery item in a set was researched then the costume was available but I'm pretty sure its meant to be tied to if the whole scenery set is invented.
2021-10-06 12:32:17 +01:00
ζeh Matt
483dea452c Merge pull request #15532 from CookiePLMonster/fix-15299
Fix #15299: Breakpad crash dumps are created in game directory
2021-10-05 11:54:46 -07:00
hjort96
763c31ce5b Fix clang-format 2021-10-05 20:06:17 +02:00
Silent
5fcbc3a53d Fix #15299: Breakpad crash dumps are created in game directory 2021-10-05 18:23:06 +02:00
Soham Roy
4d27417fd2 Fix #11354: Coding style causes undefined behaviour
An underscore followed by a capital letter used as a prefix might cause
undefined behaviour
2021-10-05 13:58:50 +02:00
Jonathan Hjorth
9a2a12af98 Cleaning code 2021-10-05 11:09:37 +02:00
Jonathan Hjorth
0195ce45a2 Added OnToolUpdate, OnToolDrag, OnToolUp, OnPrepareDraw to new window 2021-10-05 10:54:15 +02:00
Jonathan Hjorth
4fe21e3274 OnToolUpdate, OnToolDrag, OnToolUp now being used 2021-10-05 10:53:40 +02:00
Jonathan Hjorth
0a392841c2 Added functions OnToolUpdate, OnToolDrag, OnToolUp to rct_window 2021-10-05 10:52:44 +02:00
Jonathan Hjorth
dbe07554c9 Added OnOpen() to ViewClippingWindow 2021-10-05 10:52:14 +02:00
Jonathan Hjorth
762005f25a Fixed crash caused by window not being properly initialized 2021-10-05 10:51:24 +02:00
Jonathan Hjorth
419201f476 Work on refactoring ViewClipping.cpp to the new window framework. 2021-10-05 10:50:47 +02:00
OpenRCT2 git bot
36a0a28e3f Merge Localisation/master into OpenRCT2/develop 2021-10-05 04:08:34 +00:00
ζeh Matt
8effeb26b0 Refactor action result passing for StaffHireNewAction 2021-10-04 17:01:27 +03:00
Michael Steenbeek
233b1e99b4 Fix Windows compilation of OrcaStream 2021-10-03 22:41:55 +02:00
Michael Steenbeek
7530a03b8e Merge pull request #15508 from Broxzier/refactor/widget-references
Use (const) references to widgets and scrolls where possible
2021-10-03 21:07:31 +02:00
Silent
445fb747bf Fix Scenario description missing when loading a park from a save file
Saved games do not have a valid info chunk,
so scenario names/descriptions did not load.
2021-10-03 20:57:17 +02:00
ζeh Matt
cf7b4ded08 Move static declaration into cpp file 2021-10-03 21:13:04 +03:00
ζeh Matt
dc44d1f79d Merge pull request #15511 from ZehMatt/refactor/ridecreateaction-result
Refactor RideCreateAction result data passing
2021-10-03 07:55:14 -07:00
ζeh Matt
24ec2e1b67 Merge pull request #15510 from ZehMatt/refactor/largescenerayplace-result
Refactor LargeSceneryPlaceAction result data passing
2021-10-03 07:54:59 -07:00
Hielke Morsink
b246a4919d Fix #15514: Two “quit to menu” menu items available in track designer 2021-10-03 15:20:45 +02:00
OpenRCT2 git bot
b7bda6e938 Merge Localisation/master into OpenRCT2/develop 2021-10-02 04:08:15 +00:00
ζeh Matt
76c2f9db85 Refactor LargeSceneryPlaceAction result data passing 2021-10-02 00:56:59 +03:00
ζeh Matt
2597c04eb4 Refactor RideCreateAction result data passing 2021-10-02 00:50:03 +03:00
Hielke Morsink
1d62a902e7 Make scenery_small_entry_has_flag a member function (#15509) 2021-10-01 16:50:05 -03:00
Michael Steenbeek
06dc75845a Fix #15476: Crash in map_place_clear_func() 2021-10-01 16:10:25 +00:00
Michael Steenbeek
d320a5cfe7 Merge pull request #15505 from Gymnasiast/fix/15496
Fix #15496 and clean up paint_swinging_inverter_ship_structure() a bit
2021-10-01 18:03:22 +02:00
Hielke Morsink
5b9b52c028 Use (const) references to scrolls where possible 2021-10-01 15:21:01 +02:00
Hielke Morsink
6de1868ad8 Use (const) references to widgets where possible
Note: The change from `w->widgets[WIDX_ENTRY_PRICE]` to `entryPriceWidget` is intended.
2021-10-01 15:21:00 +02:00
Michael Steenbeek
317e562845 Merge pull request #15495 from ZehMatt/refactor/xyz-access
Use GetLocation in more places
2021-10-01 14:02:34 +02:00
Gymnasiast
d3cfa07a2a Fix #15496: crash in paint_swinging_inverter_ship_structure() 2021-10-01 13:51:00 +02:00
Gymnasiast
c74984740b Pass ride ref to paint_swinging_inverter_ship_structure() 2021-10-01 13:48:27 +02:00
Michael Steenbeek
26d1186240 Merge pull request #15493 from Broxzier/refactor/minor-cleanups
Minor code cleanups
2021-09-30 15:03:33 +02:00