|
190 | 190 | </event> |
191 | 191 | </interface> |
192 | 192 |
|
193 | | - <interface name="wl_compositor" version="5"> |
| 193 | + <interface name="wl_compositor" version="6"> |
194 | 194 | <description summary="the compositor singleton"> |
195 | 195 | A compositor. This object is a singleton global. The |
196 | 196 | compositor is in charge of combining the contents of multiple |
|
262 | 262 | created, but using the new size. This request can only be |
263 | 263 | used to make the pool bigger. |
264 | 264 |
|
265 | | - This request only changes the amount of bytes that are mmapped |
266 | | - by the server and does not touch the file corresponding to the |
267 | | - file descriptor passed at creation time. It is the client's |
268 | | - responsibility to ensure that the file is at least as big as |
269 | | - the new pool size. |
| 265 | + This request only changes the amount of bytes that are mmapped |
| 266 | + by the server and does not touch the file corresponding to the |
| 267 | + file descriptor passed at creation time. It is the client's |
| 268 | + responsibility to ensure that the file is at least as big as |
| 269 | + the new pool size. |
270 | 270 | </description> |
271 | 271 | <arg name="size" type="int" summary="new size of the pool, in bytes"/> |
272 | 272 | </request> |
|
419 | 419 | <entry name="xbgr16161616" value="0x38344258" summary="[63:0] x:B:G:R 16:16:16:16 little endian"/> |
420 | 420 | <entry name="argb16161616" value="0x38345241" summary="[63:0] A:R:G:B 16:16:16:16 little endian"/> |
421 | 421 | <entry name="abgr16161616" value="0x38344241" summary="[63:0] A:B:G:R 16:16:16:16 little endian"/> |
| 422 | + <entry name="c1" value="0x20203143" summary="[7:0] C0:C1:C2:C3:C4:C5:C6:C7 1:1:1:1:1:1:1:1 eight pixels/byte"/> |
| 423 | + <entry name="c2" value="0x20203243" summary="[7:0] C0:C1:C2:C3 2:2:2:2 four pixels/byte"/> |
| 424 | + <entry name="c4" value="0x20203443" summary="[7:0] C0:C1 4:4 two pixels/byte"/> |
| 425 | + <entry name="d1" value="0x20203144" summary="[7:0] D0:D1:D2:D3:D4:D5:D6:D7 1:1:1:1:1:1:1:1 eight pixels/byte"/> |
| 426 | + <entry name="d2" value="0x20203244" summary="[7:0] D0:D1:D2:D3 2:2:2:2 four pixels/byte"/> |
| 427 | + <entry name="d4" value="0x20203444" summary="[7:0] D0:D1 4:4 two pixels/byte"/> |
| 428 | + <entry name="d8" value="0x20203844" summary="[7:0] D"/> |
| 429 | + <entry name="r1" value="0x20203152" summary="[7:0] R0:R1:R2:R3:R4:R5:R6:R7 1:1:1:1:1:1:1:1 eight pixels/byte"/> |
| 430 | + <entry name="r2" value="0x20203252" summary="[7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte"/> |
| 431 | + <entry name="r4" value="0x20203452" summary="[7:0] R0:R1 4:4 two pixels/byte"/> |
| 432 | + <entry name="r10" value="0x20303152" summary="[15:0] x:R 6:10 little endian"/> |
| 433 | + <entry name="r12" value="0x20323152" summary="[15:0] x:R 4:12 little endian"/> |
| 434 | + <entry name="avuy8888" value="0x59555641" summary="[31:0] A:Cr:Cb:Y 8:8:8:8 little endian"/> |
| 435 | + <entry name="xvuy8888" value="0x59555658" summary="[31:0] X:Cr:Cb:Y 8:8:8:8 little endian"/> |
| 436 | + <entry name="p030" value="0x30333050" summary="2x2 subsampled Cr:Cb plane 10 bits per channel packed"/> |
422 | 437 | </enum> |
423 | 438 |
|
424 | 439 | <request name="create_pool"> |
|
454 | 469 | interface. |
455 | 470 |
|
456 | 471 | If the buffer uses a format that has an alpha channel, the alpha channel |
457 | | - is assumed to be premultiplied in the color channels unless otherwise |
458 | | - specified. |
| 472 | + is assumed to be premultiplied in the electrical color channel values |
| 473 | + (after transfer function encoding) unless otherwise specified. |
459 | 474 |
|
460 | 475 | Note, because wl_buffer objects are created from multiple independent |
461 | 476 | factory interfaces, the wl_buffer interface is frozen at version 1. |
|
630 | 645 | <event name="source_actions" since="3"> |
631 | 646 | <description summary="notify the source-side available actions"> |
632 | 647 | This event indicates the actions offered by the data source. It |
633 | | - will be sent right after wl_data_device.enter, or anytime the source |
634 | | - side changes its offered actions through wl_data_source.set_actions. |
| 648 | + will be sent immediately after creating the wl_data_offer object, |
| 649 | + or anytime the source side changes its offered actions through |
| 650 | + wl_data_source.set_actions. |
635 | 651 | </description> |
636 | 652 | <arg name="source_actions" type="uint" summary="actions offered by the data source" |
637 | 653 | enum="wl_data_device_manager.dnd_action"/> |
|
846 | 862 |
|
847 | 863 | <enum name="error"> |
848 | 864 | <entry name="role" value="0" summary="given wl_surface has another role"/> |
| 865 | + <entry name="used_source" value="1" summary="source has already been used"/> |
849 | 866 | </enum> |
850 | 867 |
|
851 | 868 | <request name="start_drag"> |
|
873 | 890 | a drag-and-drop icon. If the icon surface already has another role, |
874 | 891 | it raises a protocol error. |
875 | 892 |
|
876 | | - The current and pending input regions of the icon wl_surface are |
877 | | - cleared, and wl_surface.set_input_region is ignored until the |
878 | | - wl_surface is no longer used as the icon surface. When the use |
879 | | - as an icon ends, the current and pending input regions become |
880 | | - undefined, and the wl_surface is unmapped. |
| 893 | + The input region is ignored for wl_surfaces with the role of a |
| 894 | + drag-and-drop icon. |
| 895 | + |
| 896 | + The given source may not be used in any further set_selection or |
| 897 | + start_drag requests. Attempting to reuse a previously-used source |
| 898 | + may send a used_source error. |
881 | 899 | </description> |
882 | 900 | <arg name="source" type="object" interface="wl_data_source" allow-null="true" summary="data source for the eventual transfer"/> |
883 | 901 | <arg name="origin" type="object" interface="wl_surface" summary="surface where the drag originates"/> |
|
891 | 909 | to the data from the source on behalf of the client. |
892 | 910 |
|
893 | 911 | To unset the selection, set the source to NULL. |
| 912 | + |
| 913 | + The given source may not be used in any further set_selection or |
| 914 | + start_drag requests. Attempting to reuse a previously-used source |
| 915 | + may send a used_source error. |
894 | 916 | </description> |
895 | 917 | <arg name="source" type="object" interface="wl_data_source" allow-null="true" summary="data source for the selection"/> |
896 | 918 | <arg name="serial" type="uint" summary="serial number of the event that triggered this request"/> |
|
1358 | 1380 | </event> |
1359 | 1381 | </interface> |
1360 | 1382 |
|
1361 | | - <interface name="wl_surface" version="5"> |
| 1383 | + <interface name="wl_surface" version="6"> |
1362 | 1384 | <description summary="an onscreen surface"> |
1363 | 1385 | A surface is a rectangular area that may be displayed on zero |
1364 | 1386 | or more outputs, and shown any number of times at the compositor's |
|
1413 | 1435 | <entry name="invalid_size" value="2" summary="buffer size is invalid"/> |
1414 | 1436 | <entry name="invalid_offset" value="3" summary="buffer offset is invalid"/> |
1415 | 1437 | <entry name="defunct_role_object" value="4" |
1416 | | - summary="surface was destroyed before its role object"/> |
| 1438 | + summary="surface was destroyed before its role object"/> |
1417 | 1439 | </enum> |
1418 | 1440 |
|
1419 | 1441 | <request name="destroy" type="destructor"> |
|
1442 | 1464 |
|
1443 | 1465 | When the bound wl_surface version is 5 or higher, passing any |
1444 | 1466 | non-zero x or y is a protocol violation, and will result in an |
1445 | | - 'invalid_offset' error being raised. To achieve equivalent semantics, |
| 1467 | + 'invalid_offset' error being raised. The x and y arguments are ignored |
| 1468 | + and do not change the pending state. To achieve equivalent semantics, |
1446 | 1469 | use wl_surface.offset. |
1447 | 1470 |
|
1448 | 1471 | Surface contents are double-buffered state, see wl_surface.commit. |
|
1795 | 1818 | <arg name="x" type="int" summary="surface-local x coordinate"/> |
1796 | 1819 | <arg name="y" type="int" summary="surface-local y coordinate"/> |
1797 | 1820 | </request> |
| 1821 | + |
| 1822 | + <!-- Version 6 additions --> |
| 1823 | + |
| 1824 | + <event name="preferred_buffer_scale" since="6"> |
| 1825 | + <description summary="preferred buffer scale for the surface"> |
| 1826 | + This event indicates the preferred buffer scale for this surface. It is |
| 1827 | + sent whenever the compositor's preference changes. |
| 1828 | + |
| 1829 | + It is intended that scaling aware clients use this event to scale their |
| 1830 | + content and use wl_surface.set_buffer_scale to indicate the scale they |
| 1831 | + have rendered with. This allows clients to supply a higher detail |
| 1832 | + buffer. |
| 1833 | + </description> |
| 1834 | + <arg name="factor" type="int" summary="preferred scaling factor"/> |
| 1835 | + </event> |
| 1836 | + |
| 1837 | + <event name="preferred_buffer_transform" since="6"> |
| 1838 | + <description summary="preferred buffer transform for the surface"> |
| 1839 | + This event indicates the preferred buffer transform for this surface. |
| 1840 | + It is sent whenever the compositor's preference changes. |
| 1841 | + |
| 1842 | + It is intended that transform aware clients use this event to apply the |
| 1843 | + transform to their content and use wl_surface.set_buffer_transform to |
| 1844 | + indicate the transform they have rendered with. |
| 1845 | + </description> |
| 1846 | + <arg name="transform" type="uint" enum="wl_output.transform" |
| 1847 | + summary="preferred transform"/> |
| 1848 | + </event> |
1798 | 1849 | </interface> |
1799 | 1850 |
|
1800 | | - <interface name="wl_seat" version="8"> |
| 1851 | + <interface name="wl_seat" version="9"> |
1801 | 1852 | <description summary="group of input devices"> |
1802 | 1853 | A seat is a group of keyboards, pointer and touch devices. This |
1803 | 1854 | object is published as a global during start up, or when such a |
|
1930 | 1981 |
|
1931 | 1982 | </interface> |
1932 | 1983 |
|
1933 | | - <interface name="wl_pointer" version="8"> |
| 1984 | + <interface name="wl_pointer" version="9"> |
1934 | 1985 | <description summary="pointer input device"> |
1935 | 1986 | The wl_pointer interface represents one or more input devices, |
1936 | 1987 | such as mice, which control the pointer location and pointer_focus |
|
1965 | 2016 | where (x, y) are the coordinates of the pointer location, in |
1966 | 2017 | surface-local coordinates. |
1967 | 2018 |
|
1968 | | - On surface.attach requests to the pointer surface, hotspot_x |
| 2019 | + On wl_surface.offset requests to the pointer surface, hotspot_x |
1969 | 2020 | and hotspot_y are decremented by the x and y parameters |
1970 | | - passed to the request. Attach must be confirmed by |
| 2021 | + passed to the request. The offset must be applied by |
1971 | 2022 | wl_surface.commit as usual. |
1972 | 2023 |
|
1973 | 2024 | The hotspot can also be updated by passing the currently set |
1974 | 2025 | pointer surface to this request with new values for hotspot_x |
1975 | 2026 | and hotspot_y. |
1976 | 2027 |
|
1977 | | - The current and pending input regions of the wl_surface are |
1978 | | - cleared, and wl_surface.set_input_region is ignored until the |
1979 | | - wl_surface is no longer used as the cursor. When the use as a |
1980 | | - cursor ends, the current and pending input regions become |
1981 | | - undefined, and the wl_surface is unmapped. |
| 2028 | + The input region is ignored for wl_surfaces with the role of |
| 2029 | + a cursor. When the use as a cursor ends, the wl_surface is |
| 2030 | + unmapped. |
1982 | 2031 |
|
1983 | 2032 | The serial parameter must match the latest wl_pointer.enter |
1984 | 2033 | serial number sent to the client. Otherwise the request will be |
|
2287 | 2336 | <arg name="axis" type="uint" enum="axis" summary="axis type"/> |
2288 | 2337 | <arg name="value120" type="int" summary="scroll distance as fraction of 120"/> |
2289 | 2338 | </event> |
| 2339 | + |
| 2340 | + <!-- Version 9 additions --> |
| 2341 | + |
| 2342 | + <enum name="axis_relative_direction"> |
| 2343 | + <description summary="axis relative direction"> |
| 2344 | + This specifies the direction of the physical motion that caused a |
| 2345 | + wl_pointer.axis event, relative to the wl_pointer.axis direction. |
| 2346 | + </description> |
| 2347 | + <entry name="identical" value="0" |
| 2348 | + summary="physical motion matches axis direction"/> |
| 2349 | + <entry name="inverted" value="1" |
| 2350 | + summary="physical motion is the inverse of the axis direction"/> |
| 2351 | + </enum> |
| 2352 | + |
| 2353 | + <event name="axis_relative_direction" since="9"> |
| 2354 | + <description summary="axis relative physical direction event"> |
| 2355 | + Relative directional information of the entity causing the axis |
| 2356 | + motion. |
| 2357 | + |
| 2358 | + For a wl_pointer.axis event, the wl_pointer.axis_relative_direction |
| 2359 | + event specifies the movement direction of the entity causing the |
| 2360 | + wl_pointer.axis event. For example: |
| 2361 | + - if a user's fingers on a touchpad move down and this |
| 2362 | + causes a wl_pointer.axis vertical_scroll down event, the physical |
| 2363 | + direction is 'identical' |
| 2364 | + - if a user's fingers on a touchpad move down and this causes a |
| 2365 | + wl_pointer.axis vertical_scroll up scroll up event ('natural |
| 2366 | + scrolling'), the physical direction is 'inverted'. |
| 2367 | + |
| 2368 | + A client may use this information to adjust scroll motion of |
| 2369 | + components. Specifically, enabling natural scrolling causes the |
| 2370 | + content to change direction compared to traditional scrolling. |
| 2371 | + Some widgets like volume control sliders should usually match the |
| 2372 | + physical direction regardless of whether natural scrolling is |
| 2373 | + active. This event enables clients to match the scroll direction of |
| 2374 | + a widget to the physical direction. |
| 2375 | + |
| 2376 | + This event does not occur on its own, it is coupled with a |
| 2377 | + wl_pointer.axis event that represents this axis value. |
| 2378 | + The protocol guarantees that each axis_relative_direction event is |
| 2379 | + always followed by exactly one axis event with the same |
| 2380 | + axis number within the same wl_pointer.frame. Note that the protocol |
| 2381 | + allows for other events to occur between the axis_relative_direction |
| 2382 | + and its coupled axis event. |
| 2383 | + |
| 2384 | + The axis number is identical to the axis number in the associated |
| 2385 | + axis event. |
| 2386 | + |
| 2387 | + The order of wl_pointer.axis_relative_direction, |
| 2388 | + wl_pointer.axis_discrete and wl_pointer.axis_source is not |
| 2389 | + guaranteed. |
| 2390 | + </description> |
| 2391 | + <arg name="axis" type="uint" enum="axis" summary="axis type"/> |
| 2392 | + <arg name="direction" type="uint" enum="axis_relative_direction" |
| 2393 | + summary="physical direction relative to axis motion"/> |
| 2394 | + </event> |
2290 | 2395 | </interface> |
2291 | 2396 |
|
2292 | | - <interface name="wl_keyboard" version="8"> |
| 2397 | + <interface name="wl_keyboard" version="9"> |
2293 | 2398 | <description summary="keyboard input device"> |
2294 | 2399 | The wl_keyboard interface represents one or more keyboards |
2295 | 2400 | associated with a seat. |
|
2341 | 2446 | The leave notification is sent before the enter notification |
2342 | 2447 | for the new focus. |
2343 | 2448 |
|
2344 | | - After this event client must assume that all keys, including modifiers, |
2345 | | - are lifted and also it must stop key repeating if there's some going on. |
| 2449 | + After this event client must assume that no keys are pressed, |
| 2450 | + it must stop key repeating if there's some going on and until |
| 2451 | + it receives the next wl_keyboard.modifiers event, the client |
| 2452 | + must also assume no modifiers are active. |
2346 | 2453 | </description> |
2347 | 2454 | <arg name="serial" type="uint" summary="serial number of the leave event"/> |
2348 | 2455 | <arg name="surface" type="object" interface="wl_surface" summary="surface that lost keyboard focus"/> |
|
2367 | 2474 |
|
2368 | 2475 | If this event produces a change in modifiers, then the resulting |
2369 | 2476 | wl_keyboard.modifiers event must be sent after this event. |
| 2477 | + |
| 2478 | + The compositor must not send this event without a surface of the client |
| 2479 | + having keyboard focus. |
2370 | 2480 | </description> |
2371 | 2481 | <arg name="serial" type="uint" summary="serial number of the key event"/> |
2372 | 2482 | <arg name="time" type="uint" summary="timestamp with millisecond granularity"/> |
|
2378 | 2488 | <description summary="modifier and group state"> |
2379 | 2489 | Notifies clients that the modifier and/or group state has |
2380 | 2490 | changed, and it should update its local state. |
| 2491 | + |
| 2492 | + The compositor may send this event without a surface of the client |
| 2493 | + having keyboard focus, for example to tie modifier information to |
| 2494 | + pointer focus instead. If a modifier event with pressed modifiers is sent |
| 2495 | + without a prior enter event, the client can assume the modifier state is |
| 2496 | + valid until it receives the next wl_keyboard.modifiers event. In order to |
| 2497 | + reset the modifier state again, the compositor can send a |
| 2498 | + wl_keyboard.modifiers event with no pressed modifiers. |
2381 | 2499 | </description> |
2382 | 2500 | <arg name="serial" type="uint" summary="serial number of the modifiers event"/> |
2383 | 2501 | <arg name="mods_depressed" type="uint" summary="depressed modifiers"/> |
|
2416 | 2534 | </event> |
2417 | 2535 | </interface> |
2418 | 2536 |
|
2419 | | - <interface name="wl_touch" version="8"> |
| 2537 | + <interface name="wl_touch" version="9"> |
2420 | 2538 | <description summary="touchscreen input device"> |
2421 | 2539 | The wl_touch interface represents a touchscreen |
2422 | 2540 | associated with a seat. |
|
0 commit comments