mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-12 16:02:57 +00:00
d3d6b643f1
This patch simplifies the propagation of pointer shapes from window-manager clients to the pointer. The "shape" report is routed to the wm server, which, in turn, reports it to the pointer. This way, the pointer can easily correlate the label of the application's "shape" report with the label of the application's Nitpicker session. The formerly used manual rewriting of the "shape" label is not needed anymore. Since the wm server provides a "Report" service now, its <provides> declaration must cover "Report" in addition to "Nitpicker" to avoid runtime error messages. Vice versa, the wm is now expected to request "shape" reports, which should be routed to the pointer (using the 'label_last' routing attribute). Fixes #3165
93 lines
3.7 KiB
Plaintext
93 lines
3.7 KiB
Plaintext
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="PD"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
<service name="Nitpicker"/>
|
|
<service name="Timer"/>
|
|
<service name="Report"/>
|
|
</parent-provides>
|
|
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<default caps="100"/>
|
|
|
|
<service name="Nitpicker">
|
|
<default-policy> <child name="wm"/> </default-policy>
|
|
</service>
|
|
|
|
<service name="ROM">
|
|
<policy label_suffix="layouter -> window_list">
|
|
<child name="report_rom" label="layouter -> window_list"/> </policy>
|
|
<policy label_suffix="layouter -> focus_request">
|
|
<child name="report_rom" label="layouter -> focus_request"/> </policy>
|
|
<policy label_suffix="layouter -> hover">
|
|
<child name="report_rom" label="layouter -> hover"/> </policy>
|
|
<policy label_suffix="layouter -> decorator_margins">
|
|
<child name="report_rom" label="layouter -> decorator_margins"/> </policy>
|
|
<policy label_suffix="layouter -> rules">
|
|
<child name="report_rom" label="layouter -> rules"/> </policy>
|
|
<policy label_suffix="decorator -> window_layout">
|
|
<child name="report_rom" label="decorator -> window_layout"/> </policy>
|
|
<policy label_suffix="decorator -> pointer">
|
|
<child name="report_rom" label="decorator -> pointer"/> </policy>
|
|
</service>
|
|
|
|
<service name="Report">
|
|
<policy label_suffix="layouter -> window_layout">
|
|
<child name="report_rom" label="layouter -> window_layout"/> </policy>
|
|
<policy label_suffix="layouter -> resize_request">
|
|
<child name="report_rom" label="layouter -> resize_request"/> </policy>
|
|
<policy label_suffix="layouter -> focus">
|
|
<child name="report_rom" label="layouter -> focus"/> </policy>
|
|
<policy label_suffix="layouter -> rules">
|
|
<child name="report_rom" label="layouter -> rules"/> </policy>
|
|
<policy label_suffix="decorator -> hover">
|
|
<child name="report_rom" label="decorator -> hover"/> </policy>
|
|
<policy label_suffix="decorator -> decorator_margins">
|
|
<child name="report_rom" label="decorator -> decorator_margins"/> </policy>
|
|
<policy label_suffix="-> shape"> <child name="wm"/> </policy>
|
|
</service>
|
|
|
|
<start name="report_rom">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides>
|
|
<service name="Report"/>
|
|
<service name="ROM"/>
|
|
</provides>
|
|
<config>
|
|
<policy label="layouter -> window_list" report="wm -> window_list"/>
|
|
<policy label="layouter -> focus_request" report="wm -> focus_request"/>
|
|
<policy label="layouter -> hover" report="decorator -> hover"/>
|
|
<policy label="layouter -> decorator_margins" report="decorator -> decorator_margins"/>
|
|
<policy label="layouter -> rules" report="layouter -> rules"/>
|
|
<policy label="decorator -> window_layout" report="layouter -> window_layout"/>
|
|
<policy label="decorator -> pointer" report="wm -> pointer"/>
|
|
<policy label="wm -> resize_request" report="layouter -> resize_request"/>
|
|
<policy label="wm -> focus" report="layouter -> focus"/>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="wm" caps="250">
|
|
<resource name="RAM" quantum="8M"/>
|
|
<provides>
|
|
<service name="Nitpicker"/> <service name="Report"/>
|
|
</provides>
|
|
<config>
|
|
<policy label_suffix="decorator -> " role="decorator"/>
|
|
<policy label_suffix="layouter -> " role="layouter"/>
|
|
<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" label_last="shape"> <parent/> </service>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
</config>
|