4058 Commits

Author SHA1 Message Date
Le Philousophe
ef73bdac50 EVENTRECORDER: Update screen resolution in GUI before showing anything
This properly fix bug encountered in 5af11925809267eee1abd5ddf251530f6f5f5572
Now the UI is notified size has changed and properly reiszes overlay
surface.
2021-08-04 13:27:07 +02:00
antoniou
84323fc78e ANDROID: Remove checkbox for Android SAF from global options
Themes rebuilt, and version bumped to SCUMMVM_STX0.8.50
2021-08-02 22:57:37 +03:00
Eugene Sandulenko
8d8e6765a2
GUI: Display last browse path and add button for resetting it
This bumps the theme version.

The primary target is Android where a user may navigate to a location
where there is no read permission which leads to them being stuck.

This option has no effect on those native browse dialogs that do not
use the "browser_lastpath" config setting. Particularly, macOS is
not affected.
2021-08-02 17:09:03 +02:00
antoniou
250206bd00 ANDROID: Add a checkbox for a revoke SAF permissions button
Themes were updated to version SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.48"
2021-08-01 16:10:54 +03:00
SupSuper
782cd55c31 GUI: Fix RTL Add Game dialog leaving UI in a broken state (#12765)
Make sure we clear all RTL dialog paddings once we go back to the launcher.
2021-07-28 09:37:25 +01:00
sluicebox
85f789a8ad GUI: Fix shading being applied more than once 2021-07-28 07:29:40 +02:00
Thierry Crozat
fe41c9bd7d GUI: Fix loading fonts when translations are disabled
This fixes bug #12737.
The issue is that ThemeEngine::addFont was skipping every font
when translations are disabled, including those for the English
language. Indeed for those the function is called with language
of "*" (since this is what is specified in the theme) and not
an empty string as the implementation assumed.
2021-07-16 21:23:29 +01:00
Martin Gerhardy
115f2fcf13 EVENTRECORDER: handle new recorder event for TimeDate 2021-07-14 20:05:08 +02:00
antoniou
d62202801a GUI: Check for writable for save game path
This is done in Global Options, but it was skipped here in Game domain scope

This resulted in allowing bad paths (without write access) in this field
2021-07-13 16:51:56 +03:00
Martin Gerhardy
7a172206d5 EVENTRECORDER: don't execute getMillis while resolving the random seed in playback mode 2021-07-12 22:56:02 +02:00
Orgad Shaneh
dc66c05a40 GUI: Remove unused member 2021-07-11 11:16:54 +03:00
Martin Gerhardy
a0c237f7b9 EVENTRECORDER: added new event for OSystem::getTimeAndDate 2021-07-09 19:23:21 +02:00
Paul Gilbert
005561d305 COMMON: Increase Stream pos, seek, size from int32 to int64 2021-07-08 18:24:28 -07:00
Orgad Shaneh
484cfc5644 EVENTRECORDER: Fix date on initial name
Month was off by 1.
2021-07-09 00:07:55 +03:00
Martin Gerhardy
930aefbaa9 EVENTRECORDER: fixed missing events in eventQueue of DefaultEventManager
due to the fact that we aborted every event that wasn't a key-repeat event, we never filled the event queue
2021-07-08 15:05:35 +02:00
Martin Gerhardy
669e3fcba3 EVENTRECORDER: don't skip events by calling getMillis() during processMillis()
If for some reason getMillis() was called in any of the functions that are called
inside of processMillis() the getNextEvent would skip events. To prevent this we
detect recursive calls to processMillis() now and assume that no further millisecond
has passed since the initial call.
2021-07-08 15:05:35 +02:00
Martin Gerhardy
f35cc92aaf EVENTRECORDER: ignore other event sources when playing back a record 2021-07-08 15:05:35 +02:00
Martin Gerhardy
c17f25d1ab GUI: sort the event recorder files
the default name only contains the date and the game id. Combined
with the random sort of the filesystem, it is almost impossible to
select the 'latest' record of the same game at the same day.
2021-07-07 19:20:10 +02:00
Martin Gerhardy
ef6e6b6451 GUI: doxygen 2021-07-07 19:19:43 +02:00
Martin Gerhardy
47162088a5 GUI: fixed typo in documentation 2021-07-07 19:19:36 +02:00
Le Philousophe
58c5c29f88 Revert "GUI: Fix int/int32 build failures"
This reverts commit c2bd0cfb90ab7a852d27515bd59b48969c12d9d1.
2021-07-07 19:10:32 +02:00
Le Philousophe
b47e8c6291 Revert "GUI: Amiga compilation fix"
This reverts commit 07ff61ea8d8f4ad11aa9ae519918f159884d9b81.
2021-07-07 19:10:04 +02:00
Paul Gilbert
0136043f09 COMMON: Revert Change Rect and Point to have int32 fields
This reverts commit 1c3e7fb4e9e761b26840ca7dd785e80dfa639f18.
2021-07-06 20:35:42 -07:00
Le Philousophe
c2bd0cfb90 GUI: Fix int/int32 build failures
All of this is because Rect and Surface have moved to int32
2021-07-05 23:21:55 +02:00
Paul Gilbert
07ff61ea8d GUI: Amiga compilation fix 2021-07-04 19:34:08 -07:00
Paul Gilbert
1c3e7fb4e9 COMMON: Change Rect and Point to have int32 fields 2021-07-04 18:24:26 -07:00
Le Philousophe
6a6d681990 GUI: THEMES: Use scalable cursor in modern theme 2021-07-05 00:57:42 +02:00
Lothar Serra Mari
ab45666098 I18N: Update translations datafile 2021-07-04 22:11:57 +02:00
Lothar Serra Mari
69d5c5164f CREDITS: Add myself to the Win32/Win64 subsection 2021-07-04 17:35:49 +02:00
antoniou79
0b10088110 JANITORIAL: Fix wrong spacing for return commands 2021-06-30 18:12:32 +02:00
antoniou79
8a04060c68 GUI: Increase scope of setGfx() fix to more setGfx() of relevant widgets
Fix is to not proceed with setGfx except for freeing _gfx mem, if widget or its boss is invisible
2021-06-30 18:12:32 +02:00
antoniou79
6fb05fceeb GUI: If GraphicsWidget is hidden do not proceed with GraphicsWidget::setGfx()
Removes interfering invisible thumbnail with list item selection in saveload-dialog (OpenGL, large scale)

I'm issuing this as a PR because I'm unsure if this fix is ok, since it affects all GraphicsWidget objects, not just the one for thumbnail in saveload-dialog. Also not sure if some similar check should be done in the other setGfx() methods in widget.cpp to prevent similar issues.
Note that an alternative fix, which also works, would be to only modify gui/saveload-dialog.cpp and method SaveLoadChooserSimple::updateSelection(), to check for _gfxWidget isVisible status before calling: _gfxWidget->setGfx(thumb, true);
2021-06-30 18:12:32 +02:00
antoniou79
e128d69748 GUI: Don't draw invisible thumbnail obstucting selection in Load Save dialogue
This fix is particular to the Load Save ScummVM dialogue where the issue is observed

A more general fix is proposed in PR https://github.com/scummvm/scummvm/pull/3080.
2021-06-26 16:44:23 +03:00
Fiodar
1db270c4cd
GUI: Fix warnings for header search failure
WARNING: Can't find following headers in User or System Include Paths "scrollbar.h"
2021-06-26 08:44:55 +03:00
Cameron Cawley
b2d41daabc GUI: Add improved scaler selection to the Options dialog 2021-06-23 21:29:53 +02:00
Martin Gerhardy
c7463600c1 GUI: fixed endless recursion in EventRecorder::pollEvent
warpMouse is calling purgeMouseEvents - which in turn calls pollEvents again

with this fix I was able to perform a small playback of twine in the menu
2021-06-21 20:56:01 +02:00
Martin Gerhardy
6bb711d037 GUI: removed unused prototype from EventRecorder class 2021-06-21 20:50:34 +02:00
antoniou79
ae5277f942 GUI: Update domain name for backendOptions upon renaming Game id
Without this, the ports using backendOptions Widget could error trying to access the domain with the old name

For example, the Android port, upon editing and renaming the Game Id, would error with a message like "E/ScummVM: ConfigManager::removeKey(onscreen_control, bladerunner-final-win) called on non-existent domain". This is because in its AndroidOptionsWidget::save() method (called within OptionsDialog::apply()), there were calls to removeKey() which internally was using the stale/old _domain (domain name before the renaming)
2021-06-20 22:50:12 +03:00
Le Philousophe
aa9cbdc6ab GUI: Fix invalid rect when list width goes too small 2021-06-20 13:33:38 +02:00
Le Philousophe
e62e9e84d5 GUI: Don't draw text when the rect planned for it is too small
Rect is not valid anymore and we get assertion failures
2021-06-20 11:48:19 +02:00
antoniou79
da461da6f6 GUI: Fix tooltip behavior to be less interruptive
The tooltip will show only if mouse cursor was moved but not on a hovered focused editText field

Changes and implications in this commit:
- Fix _lastMousePosition coordinates and time being updated upon giving focus to the tooltip
- Check for mouse cursor movement first in the decision for showing the tooltip, then check if sufficient time for mouse resting position has passed (kTooltipDelay).
- Prevents showing a tooltip for a widget if it is an editable field (editText) and has both mouse hovering above it and the current focus.
This is so that typing text is not interrupted / slowed down by a periodical display of the tooltip, if the mouse is hovering over the same text field that the user is editing.
- If mouse cursor is moved but lands on the same widget as the one that had its tooltip shown last, then show the tooltip but after a different (larger) delay kTooltipSameWidgetDelay.
- Still shows tooltip for other widgets, including editText ones, if the mouse is hovered over them and they are not the current focused editText widget.

The bug was mentioned for the Android port on the forums here:
https://forums.scummvm.org/viewtopic.php?p=95531#p95531
However, it is not Android specific, even though the slowdown is a lot more noticeable on an Android device.
2021-06-19 14:39:34 +02:00
Martin Gerhardy
3ddce1cf3a EVENTRECORDER: relax the out-of-sync check
this might happen if you have EventSource instances registered, that
are querying the millis by themselves, too. If the EventRecorder::poll
is registered and thus dispatched after those EventSource instances, it
might look like it ran out-of-sync.
2021-06-19 14:34:52 +02:00
Martin Gerhardy
adc2671449 COMMON: fixed endless loop in recordings with only one screenshot
the stream was read after its end and the err() state wasn't checked properly
2021-06-19 14:34:52 +02:00
Martin Gerhardy
5af1192580 BACKENDS: fixed segfault in EventRecorder with buffer out of bounds writes
==3124361== Invalid write of size 8
==3124361==    at 0x483F803: memmove (vg_replace_strmem.c:1270)
==3124361==    by 0x4DBF61: SurfaceSdlGraphicsManager::grabOverlay(void*, int) const (surfacesdl-graphics.cpp:1753)
==3124361==    by 0x482051: ModularGraphicsBackend::grabOverlay(void*, int) (modular-backend.cpp:215)
==3124361==    by 0x434EE1: GUI::ThemeEngine::clearAll() (ThemeEngine.cpp:376)
==3124361==    by 0x40128E: GUI::EventRecorder::preDrawOverlayGui() (EventRecorder.cpp:558)
==3124361==    by 0x481DB2: ModularGraphicsBackend::updateScreen() (modular-backend.cpp:173)
==3124361==    by 0x559967: Graphics::Screen::updateScreen() (screen.cpp:62)
==3124361==    by 0x55991C: Graphics::Screen::update() (screen.cpp:56)
==3124361==    by 0x38AFC7: TwinE::TwineScreen::update() (twine.cpp:126)
==3124361==    by 0x3B8759: TwinE::Screens::adjustPalette(unsigned char, unsigned char, unsigned char, unsigned int const*, int) (screens.cpp:150)
==3124361==    by 0x3B8A89: TwinE::Screens::fadeToPal(unsigned int const*) (screens.cpp:207)
==3124361==    by 0x3B8403: TwinE::Screens::loadImage(int, int, bool) (screens.cpp:80)
==3124361==  Address 0x31453050 is 16 bytes after a block of size 512,000 alloc'd
==3124361==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==3124361==    by 0x55B38C: Graphics::Surface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (surface.cpp:75)
==3124361==    by 0x551111: Graphics::ManagedSurface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (managed_surface.cpp:153)
==3124361==    by 0x4352D5: GUI::ThemeEngine::setGraphicsMode(GUI::ThemeEngine::GraphicsMode) (ThemeEngine.cpp:453)
==3124361==    by 0x434A52: GUI::ThemeEngine::init() (ThemeEngine.cpp:324)
==3124361==    by 0x43501B: GUI::ThemeEngine::refresh() (ThemeEngine.cpp:394)
==3124361==    by 0x405780: GUI::GuiManager::screenChange() (gui-manager.cpp:603)
==3124361==    by 0x405C6B: GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) (gui-manager.cpp:677)
==3124361==    by 0x404EBA: GUI::GuiManager::runLoop() (gui-manager.cpp:429)
==3124361==    by 0x3FD847: GUI::Dialog::runModal() (dialog.cpp:77)
==3124361==    by 0x36D747: launcherDialog() (main.cpp:106)
==3124361==    by 0x36FF92: scummvm_main (main.cpp:552)

It looks like the _videoMode.overlayHeight in SurfaceSdlGraphicsManager::grabOverlay and ThemeEngine::_backBuffer::h are somehow out of sync after
starting the game in a different resolution as the gui was started with. So the overlayHeight is updated - but the backbuffer (Surface) is not resized.

This is with event recorder being active - right after starting the game and switching the resolution.
2021-06-19 14:34:52 +02:00
Martin Gerhardy
eccf343fcb GUI: removed superfluous break in EventRecorder 2021-06-19 14:34:52 +02:00
sluicebox
f2f28c4549 COMMON: Rename DebugManager methods, update comments 2021-06-14 12:42:38 -05:00
sluicebox
90f836a342 GUI: Revert clearing debug flags on save/load dialog
Fixes clearing all debug flags set on the command line
whenever the ScummVM save/load dialog is displayed from
within a game.

This reverts commit 1c4e15599f4a88aaba903952f0cfb385a5d0f213
2021-06-10 10:43:22 -06:00
lb_ii
7d0a96818d GUI: Mark var as const 2021-06-10 01:56:23 +03:00
lb_ii
a59108911d GUI: Use AchMan to get achievements descriptions 2021-06-10 01:56:23 +03:00
SupSuper
455cdff8df CREDITS: Add Trecision engine 2021-06-09 12:20:52 +01:00