mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-11 23:43:15 +00:00
8e9cabf819
This patch makes Sculpt's leitzentrale GUI able to respond to touch events. It formerly assumed that click/clack events are always preceded by hover reports that identify the clicked-on widgets. For touch events, however, the most up-to-date hover information referred to the previous click because there is no motion without touching. So the GUI tended to identify the wrong widgets as click targets. The patch solved this problem by testing the freshness of the hover information at the time of the click. If the hover information is older than the click, the action is deferred until up-to-date hover information becomes available. Fixes #4398
324 lines
13 KiB
Plaintext
324 lines
13 KiB
Plaintext
<config>
|
|
<input name="leitzentrale_enabled" rom="leitzentrale" node="leitzentrale">
|
|
<attribute name="enabled" /> </input>
|
|
|
|
<output node="config">
|
|
<inline>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
<service name="Report"/>
|
|
<service name="Gui"/>
|
|
<service name="Timer"/>
|
|
<service name="File_system"/>
|
|
</parent-provides>
|
|
|
|
<default-route> <any-service> <parent/> </any-service> </default-route>
|
|
|
|
<default caps="100"/>
|
|
|
|
<service name="Gui">
|
|
<default-policy> <child name="wm"/> </default-policy> </service>
|
|
|
|
<service name="Capture">
|
|
<default-policy> <child name="nitpicker"/> </default-policy> </service>
|
|
|
|
<service name="Event">
|
|
<default-policy> <child name="nitpicker"/> </default-policy> </service>
|
|
|
|
<service name="File_system">
|
|
<default-policy> <child name="fonts_fs"/> </default-policy> </service>
|
|
|
|
<service name="ROM">
|
|
<default-policy> <child name="report_rom"/> </default-policy> </service>
|
|
|
|
<service name="Report">
|
|
<default-policy> <child name="report_rom"/> </default-policy> </service>
|
|
</inline>
|
|
<if>
|
|
<has_value input="leitzentrale_enabled" value="yes" />
|
|
<then>
|
|
<inline>
|
|
<start name="fader">
|
|
<binary name="gui_fader"/>
|
|
<resource name="RAM" quantum="50M"/>
|
|
<provides> <service name="Gui"/> </provides>
|
|
<config initial_fade_in_steps="100" fade_in_steps="20" alpha="210"/>
|
|
<route>
|
|
<service name="Gui"> <child name="manager"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
</inline>
|
|
</then>
|
|
<else>
|
|
<inline>
|
|
<start name="fader">
|
|
<binary name="gui_fader"/>
|
|
<resource name="RAM" quantum="50M"/>
|
|
<provides> <service name="Gui"/> </provides>
|
|
<config fade_out_steps="30" alpha="0"/>
|
|
<route>
|
|
<service name="Gui"> <child name="manager"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
</inline>
|
|
</else>
|
|
</if>
|
|
<inline>
|
|
<start name="gui_fb">
|
|
<resource name="RAM" quantum="18M"/>
|
|
<provides> <service name="Framebuffer"/> <service name="Input"/> </provides>
|
|
<config/>
|
|
<route>
|
|
<service name="Gui"> <child name="fader"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="nitpicker" caps="200">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides>
|
|
<service name="Gui"/> <service name="Capture"/> <service name="Event"/>
|
|
</provides>
|
|
<config focus="rom" request_input="yes" request_framebuffer="yes">
|
|
<background color="#272f45"/>
|
|
<domain name="default" layer="1" content="client" label="no" hover="always" focus="click"/>
|
|
<default-policy domain="default"/>
|
|
<capture/>
|
|
<event/>
|
|
<report clicked="yes"/>
|
|
</config>
|
|
<route>
|
|
<service name="Input"> <child name="gui_fb"/> </service>
|
|
<service name="Framebuffer"> <child name="gui_fb"/> </service>
|
|
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="report_rom" caps="200">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides>
|
|
<service name="Report"/>
|
|
<service name="ROM"/>
|
|
</provides>
|
|
<config verbose="no">
|
|
<policy label="decorator -> window_layout" report="manager -> window_layout"/>
|
|
<policy label="wm -> resize_request" report="manager -> window_layout"/>
|
|
<policy label="wm -> focus" report="manager -> wm_focus"/>
|
|
<policy label="decorator -> pointer" report="wm -> pointer"/>
|
|
<policy label="manager -> window_list" report="wm -> window_list"/>
|
|
<policy label="manager -> decorator_margins" report="decorator -> decorator_margins"/>
|
|
<policy label="manager -> clicked" report="nitpicker -> clicked"/>
|
|
<policy label="nitpicker -> focus" report="manager -> focus"/>
|
|
<policy label="runtime -> leitzentrale -> menu_view -> dialog"
|
|
report="manager -> menu_dialog"/>
|
|
<policy label="runtime -> leitzentrale -> network_view -> dialog"
|
|
report="manager -> network_dialog"/>
|
|
<policy label="runtime -> leitzentrale -> settings_view -> dialog"
|
|
report="manager -> settings_dialog"/>
|
|
<policy label="runtime -> leitzentrale -> file_browser_view -> dialog"
|
|
report="manager -> file_browser_dialog"/>
|
|
<policy label="runtime -> leitzentrale -> popup_view -> dialog"
|
|
report="manager -> popup_dialog"/>
|
|
<policy label="runtime -> leitzentrale -> panel_view -> dialog"
|
|
report="manager -> panel_dialog"/>
|
|
<policy label="runtime -> leitzentrale -> runtime_view -> dialog"
|
|
report="manager -> runtime_dialog"/>
|
|
<policy label="manager -> menu_view_hover"
|
|
report="runtime -> leitzentrale -> menu_view -> hover"/>
|
|
<policy label="manager -> network_view_hover"
|
|
report="runtime -> leitzentrale -> network_view -> hover"/>
|
|
<policy label="manager -> settings_view_hover"
|
|
report="runtime -> leitzentrale -> settings_view -> hover"/>
|
|
<policy label="manager -> file_browser_view_hover"
|
|
report="runtime -> leitzentrale -> file_browser_view -> hover"/>
|
|
<policy label="manager -> runtime_view_hover"
|
|
report="runtime -> leitzentrale -> runtime_view -> hover"/>
|
|
<policy label="manager -> panel_view_hover"
|
|
report="runtime -> leitzentrale -> panel_view -> hover"/>
|
|
<policy label="manager -> popup_view_hover"
|
|
report="runtime -> leitzentrale -> popup_view -> hover"/>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="wm" caps="300">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides>
|
|
<service name="Gui"/> <service name="Report"/> <service name="ROM"/>
|
|
</provides>
|
|
<config>
|
|
<policy label_prefix="decorator" role="decorator"/>
|
|
<default-policy/>
|
|
</config>
|
|
<route>
|
|
<service name="ROM" label="resize_request"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<service name="Gui"> <child name="nitpicker"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="decorator" caps="350">
|
|
<binary name="themed_decorator"/>
|
|
<resource name="RAM" quantum="10M"/>
|
|
<config>
|
|
<libc/>
|
|
<vfs>
|
|
<dir name="theme">
|
|
<inline name="metadata">
|
|
<theme>
|
|
<aura top="5" bottom="5" left="5" right="5"/>
|
|
<decor top="6" bottom="6" left="6" right="6"/>
|
|
</theme>
|
|
</inline>
|
|
<rom name="default.png"/>
|
|
</dir>
|
|
<dir name="dev"> <log/> </dir>
|
|
</vfs>
|
|
<policy label="log" decoration="yes" motion="20"/>
|
|
<policy label="runtime -> leitzentrale -> settings_view" decoration="no" motion="20"/>
|
|
<policy label="runtime -> leitzentrale -> file_browser_view" decoration="no" motion="30"/>
|
|
<policy label="runtime -> leitzentrale -> network_view" decoration="no" motion="20"/>
|
|
<policy label="runtime -> leitzentrale -> runtime_view" decoration="no" motion="30"/>
|
|
<policy label="runtime -> leitzentrale -> menu_view" decoration="no" motion="30"/>
|
|
<policy label="runtime -> leitzentrale -> popup_view" decoration="no" motion="20"/>
|
|
<policy label="runtime -> leitzentrale -> panel_view" decoration="no" motion="20"/>
|
|
<policy label_prefix="logo" decoration="no"/>
|
|
<default-policy/>
|
|
</config>
|
|
<route>
|
|
<service name="ROM" label="default.png"> <parent label="drop_shadow.png"/> </service>
|
|
<service name="ROM" label="window_layout"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="pointer"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="decorator_margins"> <child name="report_rom"/> </service>
|
|
<service name="Report" label="hover"> <child name="report_rom"/> </service>
|
|
<service name="Gui"> <child name="wm"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="config_fs_report">
|
|
<binary name="fs_report"/>
|
|
<resource name="RAM" quantum="2M"/>
|
|
<provides> <service name="Report"/> </provides>
|
|
<config> <vfs> <fs/> </vfs> </config>
|
|
<route>
|
|
<service name="File_system"> <parent label="config"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="manager" caps="300">
|
|
<binary name="sculpt_manager"/>
|
|
<resource name="RAM" quantum="3M"/>
|
|
<provides> <service name="Gui"/> </provides>
|
|
<config/>
|
|
<route>
|
|
<service name="Report" label="runtime_config">
|
|
<child name="config_fs_report" label="managed -> runtime"/> </service>
|
|
<service name="Report" label="deploy_config">
|
|
<child name="config_fs_report" label="managed -> deploy"/> </service>
|
|
<service name="Report" label="wifi_config">
|
|
<child name="config_fs_report" label="managed -> wifi"/> </service>
|
|
<service name="Report" label="fonts_config">
|
|
<child name="config_fs_report" label="managed -> fonts"/> </service>
|
|
<service name="Report" label="nic_router_config">
|
|
<child name="config_fs_report" label="managed -> nic_router"/> </service>
|
|
<service name="Report" label="fb_drv_config">
|
|
<child name="config_fs_report" label="managed -> fb_drv"/> </service>
|
|
<service name="Report" label="event_filter_config">
|
|
<child name="config_fs_report" label="managed -> event_filter"/> </service>
|
|
<service name="Report" label="installation_config">
|
|
<child name="config_fs_report" label="managed -> installation"/> </service>
|
|
<service name="Report" label="depot_query">
|
|
<child name="config_fs_report" label="managed -> depot_query"/> </service>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label_prefix="report ->"> <parent/> </service>
|
|
<service name="ROM" label_suffix="_hover"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="window_list"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="decorator_margins"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="clicked"> <child name="report_rom"/> </service>
|
|
<service name="Gui"> <parent/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="fonts_fs" caps="100">
|
|
<binary name="vfs"/>
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="File_system"/> </provides>
|
|
<route>
|
|
<service name="ROM" label="config">
|
|
<parent label="config -> managed/fonts"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="log_terminal">
|
|
<binary name="terminal"/>
|
|
<resource name="RAM" quantum="8M"/>
|
|
<provides> <service name="Terminal"/> </provides>
|
|
<config>
|
|
<initial width="400"/>
|
|
<palette>
|
|
<color index="0" value="#2f3953"/>
|
|
<color index="8" value="#2f3953"/>
|
|
</palette>
|
|
<vfs>
|
|
<rom name="VeraMono.ttf"/>
|
|
<dir name="fonts">
|
|
<dir name="monospace">
|
|
<ttf name="regular" path="/VeraMono.ttf" size_px="10"/>
|
|
</dir>
|
|
</dir>
|
|
</vfs>
|
|
</config>
|
|
<route>
|
|
<service name="Gui"> <child name="wm" label="log"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="log" caps="100">
|
|
<binary name="stdin2out"/>
|
|
<resource name="RAM" quantum="2M" />
|
|
<config>
|
|
<libc stdin="/report/log" stdout="/dev/terminal"/>
|
|
<vfs>
|
|
<dir name="dev"> <terminal/> </dir>
|
|
<dir name="report"> <fs label="report"/> </dir>
|
|
</vfs>
|
|
</config>
|
|
<route>
|
|
<service name="File_system"> <parent label="report"/> </service>
|
|
<any-service> <child name="log_terminal"/> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="backdrop" caps="150">
|
|
<resource name="RAM" quantum="4M" />
|
|
<config width="300" height="150">
|
|
<libc/>
|
|
<vfs> <rom name="genode_logo.png"/> </vfs>
|
|
<fill color="#272f45"/>
|
|
<image png="genode_logo.png" anchor="bottom_right" alpha="100"
|
|
xpos="-20" ypos="-20" />
|
|
</config>
|
|
<route>
|
|
<service name="Gui"> <child name="wm" label="logo"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
</inline>
|
|
</output>
|
|
</config>
|