1938 Commits

Author SHA1 Message Date
Christian Prochaska
adc4314fd6 sculpt: update falkon preset
Issue #5501
2025-04-15 15:14:41 +02:00
Sebastian Sumpf
d57e527505 phone_manager: watch 'menu_hover' to keep display alive
Since the introduction of the "menu_hover" report, keep alive
information of the Leitzentrale is lost (e.g., dialing pad, activity in
main menu, ...)  leading to premature screensaver activation. With this
commit we add support to monitor the "menu_hover" report's sequence
numbers through Watch_rom_seq_number, and thus, avoid triggering the
screensaver even though activity has been performed.

issue #5496
2025-04-15 09:44:25 +02:00
Johannes Schlatow
a43c0b2cb4 fixup! fixup "sculpt: use nitpicker's clicked report for popup" (MAYBE/NO/YES)
Issue #5485
2025-04-15 08:50:04 +02:00
Johannes Schlatow
a48a993961 fixup! fixup "sculpt: use nitpicker's clicked report for popup" (MAYBE/NO/YES)
Issue #5485
2025-04-15 08:50:04 +02:00
Stefan Kalkowski
a51c77a2d8 pkg/file_fault: add missing lib, correct route
* Add missing dialog.lib.so requirement
* Correct label-matching rule for fonts file-system
2025-04-14 17:26:43 +02:00
Alexander Boettcher
26f725f826 sculpt_manager: support vesa_fb via UI
Issue #5501
2025-04-14 17:13:04 +02:00
Norman Feske
238b7935b2 sculpt: refresh popup when toggling launchers
Update the popup view whenever a runtime-state change is detected.
Otherwise the toggling of an item in the options tab is not always
reflected at the dialog. Observed when running Sculpt on Linux.
2025-04-14 17:03:39 +02:00
Norman Feske
a51ea642f1 fixup "sculpt: use nitpicker's clicked report for popup" (MAYBE/NO/YES)
Issue #5496
Issue #5485
2025-04-14 17:03:39 +02:00
Norman Feske
4311f32d35 menu_view: report hover info of most recent dialog
This change prevents the reporting of amibiguous hovering information in
the presence of multiple dialogs by reporting only the hovering
information of the dialog that observed the most recent hover change.

Issue #5496
Issue #5485
2025-04-14 17:03:39 +02:00
Norman Feske
57b4c1d517 Revert "menu_view: unhover on touch-release"
This reverts commit e92846254ac6b1d619098037a2d6a295a2a29e9a.
2025-04-14 17:03:39 +02:00
Norman Feske
f357c4923a sculpt: use nitpicker's clicked report for popup
By using the clicked report instead of the hover report, we prevent the
misinterpretation of a regular hover update as an overly delayed hover
report matching a previous click (inside the popup). With this patch, the
popup stays open when the pointer leaves the popup after the click.

Issue #5496
Issue #5485
2025-04-11 19:27:57 +02:00
Norman Feske
0a626d09dd fixup "leitzentrale/phone: add menu_hover"
The old "hover" route is no longer needed. ("hover" has merely been
renamed")

issue #5496
issue #5485
2025-04-11 18:30:00 +02:00
Sebastian Sumpf
ebefd26835 leitzentrale/phone: add menu_hover
adjust to 'touch control of popup dialog'

issue #5496
issue #5485
2025-04-11 18:30:00 +02:00
Norman Feske
2732762d43 sculpt: distinguish touch from click for popup
This patch separates the handling of touch input from pointer input in
the logic of closing the popup dialog. For the detection of a touch
outside the popup dialog, nitpicker's new "touch" report is observed
whereas the detection of a click outside the popup is based on
nitpicker's hover report.

Issue #5496
Issue #5485
2025-04-11 18:30:00 +02:00
Norman Feske
b540716cf4 menu_view: unhover on touch-release
Issue #5496
Issue #5485
2025-04-11 18:30:00 +02:00
Christian Helmuth
3b28ea3e59 sculpt: update touchpad for 25.04
Issue #5501
2025-04-11 15:57:13 +02:00
Sebastian Sumpf
4e6ea61c5f phone_manager: use Gui::info for screensaver's driver ready
Report 'display_driver_ready' to screensaver depending if <capture> node
is present in Gui::info. The Gui::panorama call does not suffice because
it reports the dimensions of the very last Capture client closed as
fallback.

issue #5496
2025-04-10 16:41:18 +02:00
Sebastian Sumpf
b8acdc8a28 recipe: add dialog.lib.so to touch_keyboard
issue #5496
2025-04-10 16:41:18 +02:00
Sebastian Sumpf
e12198dce4 dialog: ignore sequence numbers in input
* ignore sequence numbers from nitpicker in _handle_input because it
  generates it's own numbers

* send sequence number on single click

issue #5496
issue #5491
2025-04-10 16:41:18 +02:00
Sebastian Sumpf
5d45065b06 phone_manager: adjust to window clipping
Since "wm/decorator/layouter: window clipping" we need to separate
resize and window-layout ROMs while also adding the <boundary> nodes for
wm/decorator/layouter to function correctly.

issue #5496
2025-04-10 16:41:18 +02:00
Sebastian Sumpf
a71780f89a phone_manager: adjust to root dir via session label
* adjust touch_keyboard.h to updated session label handling for font_fs.
* add dialog.lib.so

issue #5496
2025-04-10 16:41:18 +02:00
Josef Söntgen
5fdfc4fcea Remove lx_block component
The 'lx_block' component uses the aged Block::Driver framework
internally and most if not all use-cases where it could be employed
can be addressed by using the 'vfs_block' component instead.

This commit also removes some run-scripts that make use of 'lx_block'
whose components are already excercised otherwise.

Issue #5522.
2025-04-10 16:32:58 +02:00
Stefan Kalkowski
3adca95137 cpu_sampler.run: fix 'assert'-proc change
Ref #5432
2025-04-10 16:05:41 +02:00
Alexander Boettcher
74b7374b7c gui_fader: sanitize buffer(mode) RPC
to avoid invalid ram dataspace capability errors if the mode is
invalid, e.g. 0x0

Fixes #5521
2025-04-10 15:53:41 +02:00
Norman Feske
016d63703d depot: update recipe hashes 2025-04-10 14:55:59 +02:00
Norman Feske
4c01ba1663 sculpt: version 25.04
Issue #5501
2025-04-10 14:55:59 +02:00
Norman Feske
1ef80e86e2 base: introduce Local_rm for local Region_map
The new 'Local_rm' type offers a narrow interface for the interaction
with the component-local address space, managing the lifetime of
attachments by using the 'Allocation' API.

Fixes #5516
2025-04-10 14:55:57 +02:00
Christian Helmuth
8c4bd7d9da gui_fader: restore previous dither-matrix indexing
The dither matrix is not perfectly random but provides a kind of
pseudo-random pattern that fits the original dithering approach with
global coordinate based indexing. If the matrix is offset by one line
each 16 pixels the pattern becomes visible as alternating light and dark
columns.

Follow-up commit to "gui_fader: precompute dithered 16x16 tile".

Issue #5501
2025-04-10 14:55:21 +02:00
Norman Feske
84eb264786 util/attempt.h: mark 'Attempt' types as nodiscard
This catches bugs early on. E.g., when leaving an 'Allocation'
unused, it gets immediately deallocated, which is most probably not
intended. For regular 'Attempt' objects, this change encourages
the proper propagation of errors, or at least the logging of unexpected
conditions.

Fixes #5513
2025-04-10 14:55:21 +02:00
Norman Feske
e380d0da95 base: use 'Allocation' interface for mem alloc
This patch converts the memory-allocator interfaces ('Allocator',
'Range_allocator') and their implementations ('Heap', 'Sliced heap',
'Slab', 'Allocator_avl', 'Synced_allocator') to the new 'Allocation'
utility. The new interface resides at base/memory.h whereas the
traditional allocators implement the new interface.

Down the road, the traditional allocators can successively be decoupled
from the traditional 'Allocator' and 'Range_allocator' interfaces.

Issue #5502
Issue #5245
2025-04-10 14:55:21 +02:00
Norman Feske
fee2f354dc util/attempt.h: introduce 'Ok' type
This type alleviates the need to re-introduce custom '*_ok' types
whenever a result can be an error but no value.
2025-04-10 14:55:20 +02:00
Christian Helmuth
dea2ed1e41 dialog: adaptation to root dir via session label
This is a follow-up fix for "file-system session: root dir via session
label".

Issue #5445
2025-04-10 14:27:21 +02:00
Christian Helmuth
0736db0863 Revert "sculpt: consider screen pos for pointer tracking"
Absolute motion events already carry global coordinates (fader
session).

This reverts commit 3dc05a0a89f00e40d194e7d895b525b405f57f7e.

Issue #5501
2025-04-10 14:26:47 +02:00
Christian Helmuth
2354a6bddb Remove stale raw/download_coreplus recipe
Issue #5492
2025-04-10 14:24:31 +02:00
Norman Feske
ff83de2bbc base: decouple 'Pd_session' from 'Ram_allocator'
With this patch, the 'Pd_session' interface no longer implements the
'Ram_allocator' interface, which allows us to change the
'Genode::Ram_allocator' semantics (as a subsequent step) without
affecting core's PD service.

The patch also replaces the client-local implementation of
'Pd_session_client::dataspace_size' by the proper RPC call 'ram_size' to
core, which mitigates the potential risk of de-referencing a dataspace
cap of an untrusted origin. E.g., in scenarios where the monitor
component requests the size of a dataspace allocated by the debugging
target.

Since 'ram_size' is an RPC call, it cannot be const. Hence, the
'Ram_alloctor::dataspace_size' has become non-const.

The new 'Pd_ram_allocator' implements the 'Ram_allocator' interface by
using a PD session.

Issue #5502
2025-04-10 14:24:31 +02:00
Norman Feske
af3e8725ca Rename 'Constrained_ram_*' to 'Accounted_ram_*'
Fixes #5495
2025-04-10 14:24:11 +02:00
Norman Feske
37ec1db5ea Remove unused vfs_replay component
Fixes #5493
2025-04-10 14:24:11 +02:00
Johannes Schlatow
bdac10cb05 sculpt_manager: improve hover-seq coordination
When a single TOUCH and TOUCH_RELEASE event are submitted
simultaneously, the input sequence number is incremented twice. In
consequence, menu view will never generate a hover report for the
intermediate sequence number. However, this is the report that the
sculpt manager is waiting for to correlate it with the TOUCH event.

Only incrementing the input sequence number when the state changed from
not clicked to clicked exposes another corner case: When the last event
unfocused a dialog (e.g. the popup dialog) and when the current event
touches the dialog, the seq event is not delivered to the dialog because it
is not focused. Therefore, the seq event should be submitted after submitting
the TOUCH event.

genodelabs/genode#5491
2025-04-10 14:24:11 +02:00
Norman Feske
6edbfbf7c3 gems: don't copy Xml_node
Issue #5411
2025-04-10 14:24:11 +02:00
Norman Feske
636eb7b53f os: don't copy Xml_node
As this patch changes 'Vfs::File_system_factory::create', the
VFS plugins must be adapted, now taking 'Xml_node const &' as
argument.

Issue #5411
2025-04-10 14:18:41 +02:00
Norman Feske
7aefaff646 os/buffered_xml.h: don't copy Xml_node
The public 'xml' const member replaces 'with_xml_node()' and the 'xml()'
accessor.

Issue #5411
2025-04-10 14:14:07 +02:00
Christian Helmuth
5cfe44ab72 Check stable output in file_vault_client test
Just output the date (not hours and minutes) in ls as RTC is fixed to
2018-01-01 00:01.

Issue #4371
2025-04-10 14:13:26 +02:00
Johannes Schlatow
9e2e592283 sculpt_manager: touch control of popup dialog
When trying to control the popup dialog with touch events, the dialog
was immediately closed (on any touch). This was a consequence of
evaluating the dialog's hover state without waiting for the
corresponding hover report. For regular motiong events, the hover report
is updated when the pointer moves. For touch events, however, the
hover report is only updated when the touch occurs. We therefore need to
wait for the hover report that corresponds to the touch event before
deciding about closing the popup dialog.

Since menu_view's hover report is not updated for clicks/touches outside any
dialog, we are now using nitpicker's hover report, which also got
augmented by the sequence number in order to be correlated with the
click/touch event.

Fixes #5485
2025-04-10 14:13:26 +02:00
Norman Feske
5b9a9f4d9e sculpt: update panel width on screen-size change
As the panel dialog's min width is propagated via the menu-view config,
we need to re-generate the runtime config whenever the leitzentrale's
size changes. Otherwise the update merely happens as a side effect of
dynamically adjusting the font size, which does not happen with the
fixed config/fonts file.

Issue #5370
2025-04-10 14:13:26 +02:00
Norman Feske
a6ae7c7c58 sculpt: consider screen pos for pointer tracking
When inferring the global pointer position from input events referring
to the leitzentrale, we must take the leitzentrale's panorama position
into account. Otherwise, the hovered display cannot always be reliably
determined.

Issue #5370
2025-04-10 14:13:26 +02:00
Alexander Boettcher
eb443e751f sculpt: support disabling connector manually
via config/fb

Fix #5478
2025-04-10 14:13:26 +02:00
Roman Iten
f4d5e480e3 gems: use 'assert'-proc in run scripts
Issue #5432
2025-04-10 14:12:21 +02:00
Christian Helmuth
2d89b53b0c depot: update recipe hashes 2025-02-27 12:53:40 +01:00
Stefan Kalkowski
b1d53fd4c8 sculpt: add F&S i.MX 8MP Armstone 2025-02-24 16:39:56 +01:00
Norman Feske
2c8beb462f file-system session: root dir via session label
This patch changes the way of how the client-selected sub directory is
communicated to the server. The former opaque session argument is now
passed as last label element, which allows for the flexible tweaking
of this argument by init's session-routing and label-rewriting
mechansims. In particular, it alleviates the need for creating chroot
component instances.

This change requires the following four adaptations at the
configuration level:

- Each file-system session request must now carry a path starting
  with / as last session arguments. Hence, <vfs> <fs> nodes that
  feature a 'label' attributes must extend the attribute value
  with " -> /". For <fs> nodes with no label attribute, "/" is
  used as last label argument by default.

- For matching session-routing rules at init's configuration,
  the matching of full labels should be replaced by 'label_prefix'
  matches, excluding the last (path) argument.

- Wherever a label of a file-system session is rewritten by using
  init's 'label' attribute of a <parent> or <child> target node,
  the new attribute 'identity' should be used instead. This replaces
  the identity part of the label while preserving the client's
  directory argument.

- Analogously to the matching of session-routing rules, server-side
  policy-selection rules that formerly matched a concrete 'label'
  must be changed to match a 'label_prefix' instead.

As a good practice, 'label_prefix' values should end with " ->" if
possible, which clearly delimits the identity part of the label
used by the matching.

Issue #5445
2025-02-24 16:39:20 +01:00