5461 Commits

Author SHA1 Message Date
Torbjörn Andersson 02b6e11e1c GUI: When filtering a list, also reset the fluid scroller's position
Turns out my initial fix for bug #16698 was only enough to keep the
search result in view. Clicking on it didn't work. Now it should.
2026-05-15 10:53:54 +02:00
Torbjörn Andersson 1bee3bca11 GUI: When filtering a list, make sure the result is in view (bug #16698)
This may be a regression from the recent scroll changes.
2026-05-14 18:50:15 +03:00
Scorp 1d4b5b1b66 GUI: Fix ScrollContainerWidget clicks after scrolling
ScrollContainerWidget already reports child absolute positions with the current scroll offset applied through getChildX() and getChildY().

Do not add the scroll offset again when converting mouse down/up events to child-local coordinates. This keeps controls in scrolled containers, such as keymapper rows, clickable after the view has been scrolled.
2026-05-09 11:55:12 +03:00
Cameron Cawley a3fd645179 GRAPHICS: MACGUI: Support rendering with any 8/16/32bpp pixel format 2026-05-05 13:45:11 +02:00
Eugene Sandulenko 4548d3a2ba GUI: I18N: Normalize GUI option capitalization 2026-05-04 12:15:35 +02:00
Le Philousophe 2cade9bb4d GUI: Make OptionsContainerWidget inherit its clipping rectangle
The OptionsContainerWidget is a bare container without any graphical
existence. By making it inheriting the clipping rectangle from its boss,
this avoids clipping issues on checkboxes which slightly stick out from
their expected size.
2026-05-03 12:24:42 +03:00
Miro Kropacek b0cf50b286 GUI: Don't redraw the whole screen when a tooltip is opened or closed 2026-04-26 21:06:07 +10:00
Miro Kropacek bac2fd6348 GUI: Implement clipping for drawDDText 2026-04-26 21:06:07 +10:00
Le Philousophe 2c2f3bd175 GUI: Allow GUI manager to fetch the dirty rect of a Dialog
Co-authored-by: Miro Kropacek <miro.kropacek@gmail.com>
2026-04-26 21:06:07 +10:00
Le Philousophe 7203d1078f GUI: Let drawDialog not reset the clipping rectangle
This will allow for optimized redrawing of select parts of the dialog.
2026-04-26 21:06:07 +10:00
Le Philousophe 854826756c GUI: Improve tooltip redrawing performance
When displaying or hiding a tooltip, just render them on the screen
buffer and redraw the underneath foreground dialog.
For this, the tooltip is detached from the usual dialog stack and is
treated as a special case.
2026-04-26 21:06:07 +10:00
Le Philousophe 03b8f6d3a3 GUI: Don't close GridItemTray too hastily if mouse is outside of it
The mouse can end up outside of the tray when scrolling and the just
clicked game has a short name.
Instead, register the case and close the tray only when mouse ended up
in it and left again.

Fix #16688.
2026-04-26 12:11:55 +02:00
Le Philousophe 334801ca9e GUI: Add override keywords to TextViewerDialog 2026-04-25 18:34:24 +02:00
Le Philousophe 092c725701 GUI: Make swapClipRect in widgets more robust
Always restore the clip rect if we modified it.
Also only swap it once.
2026-04-25 18:15:29 +02:00
Le Philousophe 93fa9318d5 GUI: Keep using _scrollPos as an integer when calculating
Only keep it float for scrolling stuff.
2026-04-25 13:06:27 +02:00
Le Philousophe 9b21baacd4 GUI: Properly chain focus change on dialog opening
Release focus first, then give it to the new dialog.
This is the reverse of closeTopDialog.
2026-04-25 12:57:30 +02:00
Mohit Bankar e45bcd350c GUI: Fix ScrollContainerWidget focus regression 2026-04-24 10:57:34 +02:00
Mohit Bankar c535f5576c GUI: Fix stuck drag state in ScrollContainer when clicking popups 2026-04-24 10:57:34 +02:00
Thierry Crozat c390af49ea GUI: Fix clicking on indirect children of a ScrollContainerWidget
This fixes a regression introduced in 441f97f4e4 (Implement drag to
scroll in ScrollContainer). The computation of the X and Y location
in the child when forwarding mouse down and up events assumed that
that child was a direct child of the ScrollContainerWidget (i.e.
that the child getRelX() and getRelY() are the position relative
to the ScrollContainerWidget). That caused incorrect x and y for
children of children.

One place where this could be seen are the custom game options
(Game tab of the Game Options dialog).

This commit fixes the issue by computing the relative position
of the child to the ScrollContainerWidget from their respective
absolute location).
2026-04-23 23:00:33 +01:00
Mohit Bankar c041092694 GUI: Centralize scroll step size logic in FluidScroller 2026-04-20 23:33:23 +02:00
Mohit Bankar 84dab33d07 GUI: Implenet Fluid Scroll in ScrollContainer 2026-04-20 23:33:23 +02:00
Mohit Bankar 441f97f4e4 GUI: Implement drag to scroll in ScrollContainer 2026-04-20 23:33:23 +02:00
Mohit Bankar 5ef242d112 GUI: Implenet Fluid Scroll in Richtext widget
- Implement Fluid Scroll in HelpDialog
2026-04-20 23:33:23 +02:00
Mohit Bankar a2abc4c1e5 GUI: Centralize mouse wheel handling in FluidScroller 2026-04-20 23:33:23 +02:00
Mohit Bankar cb71d7b6cf GUI: Implement Fluid scroll in Launcher List 2026-04-20 23:33:23 +02:00
Mohit Bankar af56d299da GUI: Implement drag to scroll in List 2026-04-20 23:33:23 +02:00
Mohit Bankar 15c1eaefcf GUI: Implement Fluid scroll in Launcher Grid 2026-04-20 23:33:23 +02:00
Mohit Bankar c1f0043775 GUI: Implement drag to scroll in Grid 2026-04-20 23:33:23 +02:00
Mohit Bankar 67facd983f GUI: Implement fluid wheel scrolling in AboutDialog 2026-04-20 23:33:23 +02:00
Mohit Bankar 15a0877a89 GUI: Add accelerated wheel scrolling to FluidScroller 2026-04-20 23:33:23 +02:00
Le Philousophe a98e2fd512 GUI: Avoid useless checks in MetadataParser
Don't check the node name once we found a match.
2026-04-18 23:35:13 +02:00
Eugene Sandulenko d42aeebe38 GUI: Clarify code to avoid potential side effect. CID 1639945 2026-04-17 02:09:46 +02:00
Mohit Bankar 1be746527b GUI: Implement fluid scrolling in About dialog 2026-04-15 00:09:10 +02:00
Mohit Bankar b0e2f6c0b4 GUI: Add FluidScroller and VelocityTracker class for physics-based scrolling
These utilities provide momentum, physics-based spring-back, and rubber-banding logic for fluid, iOS-style scrolling interactions.
2026-04-15 00:09:10 +02:00
Cameron Cawley 8a01c2a0b0 GUI: Use Common::SharedPtr for reusing surfaces 2026-04-14 18:46:14 +03:00
Cameron Cawley 70050f9d0c GRAPHICS: Remove duplicate scaling function 2026-04-14 18:46:14 +03:00
Lothar Serra Mari bbe40c58c5 BASE: GUI: Show version build date/time only on non-release builds
Historically, we should the version build date wherever we display
the current ScummVM version.

However, this leads to issues with toolchains that care about reproducible
builds and thus set "fake" timestamps, e.g.

https://github.com/flathub/org.scummvm.ScummVM/pull/60#issuecomment-4150167445

Since we can derive the approximate release date based on our
new versioning scheme, it makes sense to hide the build date
from release builds and only use it for development builds
to keep track of "old" and "new" builds.
2026-04-12 14:38:56 +02:00
Mohit Bankar ff93dafae5 GUI: Use a rectangle to mimic a viewport in About Dialog
Restrict About dialog text to a rectangle to mimic a viewport
2026-04-08 22:02:13 +02:00
Mohit Bankar fabb473963 GUI: Close about dialog only on Esc key press
Disable the dialog close on any key press except Esc
2026-04-08 22:02:13 +02:00
Mohit Bankar 0d08a7d6b0 GUI: Add mouse drag scrolling in about dialog 2026-04-08 22:02:13 +02:00
Mohit Bankar 75657ecf1c GUI: Add a close button in about dialog
Add a dedicated close button and disable closing the dialog on click anywhere
2026-04-08 22:02:13 +02:00
Mohit Bankar 07d14672fc GUI: Add a scrollbar in about dialog 2026-04-08 22:02:13 +02:00
Cameron Cawley b93419019d ENGINES: Change SaveStateDescriptor description to use Common::String 2026-04-08 15:16:28 +03:00
Antonio 84e4dd0cdf GUI: Preserve multi-selection when changing grouping 2026-04-07 13:52:03 +02:00
Cameron Cawley d98f910947 GUI: Provide default title and button label for SaveLoadChooser 2026-04-06 23:30:42 +03:00
Eugene Sandulenko a6184d7877 GUI: Regenerate themes 2026-04-06 18:13:11 +02:00
Eugene Sandulenko 43db60276a GUI: Bump theme version 2026-04-06 18:13:11 +02:00
Priyanshu f08ac3cb8d GUI: Add offset variable for glk 2026-04-06 17:59:56 +02:00
tunnelsociety ded2ecc94f JANITORIAL: GUI: Reformat Tooltip 2026-04-05 21:17:50 +02:00
tunnelsociety 3f3363ab0e GUI: Handle mouse movement when tooltip is shown 2026-04-05 21:17:50 +02:00