Commit Graph
34 Commits
Author SHA1 Message Date
Henrik Rydgård b4c096d13c Tweaks on DisplayLayoutScreen.cpp 2026-10-26 23:42:20 +01:00
Henrik RydgårdandClaude Opus 5.5 1c067f32a4 UI: Add ScrollView::ScrollToCenter and GetEnclosingScrollView
For bringing a given view into the middle of the scroll view it's in, rather
than just into sight like focusing does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 13:44:43 +01:00
Henrik RydgårdandClaude Opus 5.5 8e353761c7 UI: Let scroll views extend under the bottom inset when they don't quite reach the edge
A vertical ScrollView that extends into the bottom inset (like a navigation bar) adds
that much space after its contents, so the end can be scrolled out from under it.
It only did that when the view reached the very bottom of the screen, and then added
the whole inset. Since 58fa522d48 inset the content area of dialog screens on
screens over 600 dp, a phone like the S21 Ultra (617 dp wide) got a 1.7 dp inset,
which turned the extra space off. Add exactly the part of the view that lies in the
inset instead, and skip the bottom shadow in that case.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 09:41:38 +01:00
Henrik RydgårdandClaude Opus 5.5 81d078efc4 UI: Fix ScrollView's handling of its child's margins
The child was measured inside its margins, then had them subtracted from its bounds
again, and the leading margin along the scroll direction was never applied, so the
end of the content couldn't be scrolled to. Also include the margins when wrapping
the content, and page horizontally by the width rather than the x position.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 12:35:56 +02:00
Henrik RydgårdandClaude Opus 5.5 1fb8c3090b UI: Fade out the scroll bob when the scroll view is left alone
It stays for a second after the last activity, then fades out over half
a second. Any scrolling, touch, bob drag, or the mouse over the bob's
strip brings it back within a tenth of a second. It also shows briefly
when the view appears, so it's clear that it scrolls.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 01:52:34 +02:00
Henrik RydgårdandClaude Opus 5.5 9e04178054 UI: Let ScrollView children see mouse moves without a button held
ScrollView dropped every mouse event without the left button, so views inside
one never saw hovers or right clicks. This kept nested scroll views from
tracking hover for the mouse wheel, and GameButton's right-click info only
worked once a left click had set its hover flag.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-18 11:55:40 +02:00
Eray Cepni f3cde93bc5 UI: Make scrollbar opaque while dragging
Preserve the theme's scrollbar color while forcing full opacity when
the scrollbar is held. Restore theme opacity on release.
2026-10-15 12:13:17 +03:00
Henrik Rydgård 2c0f562ff5 ScrollView: Don't have drags of the "opposite" orientation cancel clicks. 2026-05-10 23:41:39 +02:00
Henrik Rydgård eb476d522e Rename FocusDirection to FocusMove, make into enum class 2026-04-14 18:17:54 -06:00
Henrik Rydgård 75453632f9 Handle inset adjustements on the C++ side, handle them better in the UI. 2026-03-14 18:13:37 +01:00
Henrik Rydgård 160e2c4f9b Refactor: Call GetLayoutBounds on the screen instead of the context where possible.
This will allow screens to influence the layout bounds in a unified way
2026-03-14 13:07:48 +01:00
Henrik Rydgård 8086bd1adc Correct the mouse scroll problem reported by sum2012 in #21315
Fixes #21315

Replaces #21316
2026-03-01 12:14:04 +01:00
Henrik Rydgård 7ea2265ff3 Make the undo save/load buttons not scroll with the savestate list 2026-02-24 00:56:45 +01:00
Henrik Rydgård 16a79e12b6 Scrollview: Disallow scrolling with mouse buttons other than the first.
Some logging cleanup
2026-02-23 11:48:11 +01:00
Henrik Rydgård f036c907a8 Correct display of default for lens flare occlusion on Android/iOS 2026-02-19 00:15:49 +01:00
Henrik Rydgård 5d4ac87b2b In PopupMultiChoice lists, indicate the selected item with a checkmark
See #21223
2026-02-09 14:35:34 +01:00
Henrik Rydgård 18a67b82d2 Do the same with KeyInputFlags. Fix minor UI misalignments 2025-12-19 13:41:58 +01:00
Henrik Rydgård 481d0fd18c Switch TouchInputFlags to enum class, fix some minor UI issues
Scroll views now only wheel-scroll if the mouse is hovering over them.
2025-12-19 11:38:56 +01:00
Henrik Rydgård ed25b5e991 Add convenient UI on the pause screen for changing/locking the screen orientation 2025-11-26 11:14:37 +01:00
Henrik Rydgård 09d195c9ef More layout work. Use GameDB titles on the top of the game screen. 2025-11-15 20:44:14 +01:00
Henrik Rydgård b660dcee2b Various inset and margin fixes and improvements 2025-10-28 13:59:37 +01:00
Henrik Rydgård 58456ae950 Remove the UI::EventReturn return values. Makes editing the UI nicer. 2025-09-15 11:09:00 -06:00
Henrik Rydgård 3268d2afd0 ScrollView: Add a subtle drop shadow to the top. 2025-08-28 23:21:32 +02:00
Henrik Rydgård dc52c62d1a Themes: Add configurable color for the scrollbar bob 2025-02-14 14:47:47 -06:00
Henrik Rydgård 455e28da6c Rename Point to Point2D to avoid a cocoa name clash 2024-05-29 18:52:39 +02:00
Henrik Rydgård 7af6501a6f UI: ScrollView: Improve interaction with the scroll bar thingy, avoid accidental clicks 2024-01-31 09:37:11 +01:00
Henrik Rydgård 84d3bfc506 Add mouse wheel support for Android
Fixes #18471

Tested on a Poco F4 phone with a generic Bluetooth mouse.
2023-12-04 13:41:52 +01:00
Henrik Rydgård 1f2dbfaf25 Vulkan: Allow MSAA on modern-ish mobile devices, but add a little warning sign.
MSAA on tiler GPUs, the way we use it (we are not able to eliminate
load/store operations yet) can consume huge amounts of bandwidth, so let's be a
little bit careful.
2023-12-03 20:59:15 +01:00
Henrik Rydgård 2675d6ea43 Input event and device enums (#17514)
* Switch deviceID from int to enum InputDeviceID, globally

* Switch axisId to enum InputAxis

* Change int keycodes to InputKeyCode where it makes sense.

* SDL input buildfix

* SDL keycode buildfix

* Switch on enum warning fixes

* Qt keycode buildfix

* iOS keycode buildfix

* UWP keycode buildfix

* More iOS buildfix

* More iOS buildfix

* Update DinputDevice.cpp
2023-05-26 18:40:13 +02:00
Henrik Rydgård 838ef03815 Fix ScrollView crash (though the root cause is a race condition most likely) 2023-05-01 10:37:30 +02:00
Henrik Rydgård ee6234ecb6 I18N: Switch to getting categories by index instead of by string lookup
Also gets rid of the shared_ptr usage, and generally makes things nicer.

Needed for later config refactorings, good to get in early.
2023-04-07 10:35:01 +02:00
Unknown W. Brackets 7d13d87435 Windows: Fix MSVC 2017 compile. 2023-01-14 16:35:28 -08:00
Henrik Rydgård 69ff11fb40 UI: Make vertical scrollbars directly draggable. 2023-01-11 11:58:51 +01:00
Henrik Rydgård c27689910e Break out ScrollView from ViewGroup.h, and PopupScreens from UIScreen.h 2023-01-11 10:56:31 +01:00