You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
10 KiB

5 years ago
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `wl_subsurface` mod in crate `wayland_client`."><meta name="keywords" content="rust, rustlang, rust-lang, wl_subsurface"><title>wayland_client::protocol::wl_subsurface - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../wayland_client/index.html'><div class='logo-container'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module wl_subsurface</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#constants">Constants</a></li><li><a href="#traits">Traits</a></li></ul></div><p class='location'><a href='../../index.html'>wayland_client</a>::<wbr><a href='../index.html'>protocol</a></p><script>window.sidebarCurrent = {name: 'wl_subsurface', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/wayland_client/home/mrh/source/Trac3r-rust/target/debug/build/wayland-client-893466244f089367/out/wayland_c_api.rs.html#1' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>wayland_client</a>::<wbr><a href='../index.html'>protocol</a>::<wbr><a class="mod" href=''>wl_subsurface</a></span></h1><div class='docblock'><p>sub-surface interface to a wl_surface</p>
<p>An additional interface to a wl_surface object, which has been
made a sub-surface. A sub-surface has one parent surface. A
sub-surface's size and position are not limited to that of the parent.
Particularly, a sub-surface is not automatically clipped to its
parent's area.</p>
<p>A sub-surface becomes mapped, when a non-NULL wl_buffer is applied
and the parent surface is mapped. The order of which one happens
first is irrelevant. A sub-surface is hidden if the parent becomes
hidden, or if a NULL wl_buffer is applied. These rules apply
recursively through the tree of surfaces.</p>
<p>The behaviour of a wl_surface.commit request on a sub-surface
depends on the sub-surface's mode. The possible modes are
synchronized and desynchronized, see methods
wl_subsurface.set_sync and wl_subsurface.set_desync. Synchronized
mode caches the wl_surface state to be applied when the parent's
state gets applied, and desynchronized mode applies the pending
wl_surface state directly. A sub-surface is initially in the
synchronized mode.</p>
<p>Sub-surfaces have also other kind of state, which is managed by
wl_subsurface requests, as opposed to wl_surface requests. This
state includes the sub-surface position relative to the parent
surface (wl_subsurface.set_position), and the stacking order of
the parent and its sub-surfaces (wl_subsurface.place_above and
.place_below). This state is applied when the parent surface's
wl_surface state is applied, regardless of the sub-surface's mode.
As the exception, set_sync and set_desync are effective immediately.</p>
<p>The main surface can be thought to be always in desynchronized mode,
since it does not have a parent in the sub-surfaces sense.</p>
<p>Even if a sub-surface is in desynchronized mode, it will behave as
in synchronized mode, if its parent surface behaves as in
synchronized mode. This rule is applied recursively throughout the
tree of surfaces. This means, that one can set a sub-surface into
synchronized mode, and then assume that all its child and grand-child
sub-surfaces are synchronized, too, without explicitly setting them.</p>
<p>If the wl_surface associated with the wl_subsurface is destroyed, the
wl_subsurface object becomes inert. Note, that destroying either object
takes effect immediately. If you need to synchronize the removal
of a sub-surface to the parent surface update, unmap the sub-surface
first by attaching a NULL wl_buffer, update parent, and then destroy
the sub-surface.</p>
<p>If the parent wl_surface object is destroyed, the sub-surface is
unmapped.</p>
</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table><tr class='module-item'><td><a class="struct" href="struct.WlSubsurface.html" title='wayland_client::protocol::wl_subsurface::WlSubsurface struct'>WlSubsurface</a></td><td class='docblock-short'></td></tr></table><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<table><tr class='module-item'><td><a class="enum" href="enum.Error.html" title='wayland_client::protocol::wl_subsurface::Error enum'>Error</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="enum" href="enum.Event.html" title='wayland_client::protocol::wl_subsurface::Event enum'>Event</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="enum" href="enum.Request.html" title='wayland_client::protocol::wl_subsurface::Request enum'>Request</a></td><td class='docblock-short'></td></tr></table><h2 id='constants' class='section-header'><a href="#constants">Constants</a></h2>
<table><tr class='module-item'><td><a class="constant" href="constant.REQ_DESTROY_SINCE.html" title='wayland_client::protocol::wl_subsurface::REQ_DESTROY_SINCE constant'>REQ_DESTROY_SINCE</a></td><td class='docblock-short'><p>The minimal object version supporting this request</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REQ_PLACE_ABOVE_SINCE.html" title='wayland_client::protocol::wl_subsurface::REQ_PLACE_ABOVE_SINCE constant'>REQ_PLACE_ABOVE_SINCE</a></td><td class='docblock-short'><p>The minimal object version supporting this request</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REQ_PLACE_BELOW_SINCE.html" title='wayland_client::protocol::wl_subsurface::REQ_PLACE_BELOW_SINCE constant'>REQ_PLACE_BELOW_SINCE</a></td><td class='docblock-short'><p>The minimal object version supporting this request</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REQ_SET_DESYNC_SINCE.html" title='wayland_client::protocol::wl_subsurface::REQ_SET_DESYNC_SINCE constant'>REQ_SET_DESYNC_SINCE</a></td><td class='docblock-short'><p>The minimal object version supporting this request</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REQ_SET_POSITION_SINCE.html" title='wayland_client::protocol::wl_subsurface::REQ_SET_POSITION_SINCE constant'>REQ_SET_POSITION_SINCE</a></td><td class='docblock-short'><p>The minimal object version supporting this request</p>
</td></tr><tr class='module-item'><td><a class="constant" href="constant.REQ_SET_SYNC_SINCE.html" title='wayland_client::protocol::wl_subsurface::REQ_SET_SYNC_SINCE constant'>REQ_SET_SYNC_SINCE</a></td><td class='docblock-short'><p>The minimal object version supporting this request</p>
</td></tr></table><h2 id='traits' class='section-header'><a href="#traits">Traits</a></h2>
<table><tr class='module-item'><td><a class="trait" href="trait.RequestsTrait.html" title='wayland_client::protocol::wl_subsurface::RequestsTrait trait'>RequestsTrait</a></td><td class='docblock-short'></td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../../";window.currentCrate = "wayland_client";</script><script src="../../../aliases.js"></script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>