Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > c67c6057ffd14254a26624517a2352e6 > files > 157

i3-doc-3.e-3.bf1.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>i3: include/layout.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>include/layout.h File Reference</h1><code>#include &lt;xcb/xcb.h&gt;</code><br/>
<div class="dynheader">
Include dependency graph for layout.h:</div>
<div class="dynsection">
</div>
<div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dynsection">
</div>

<p><a href="a00043_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a58500d1d5e56285ceb2bd514dbee8a2f">get_unoccupied_x</a> (<a class="el" href="a00025.html">Workspace</a> *workspace)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the unoccupied space (= space which is available for windows which were resized by the user) This is necessary to render both, customly resized windows and never touched windows correctly, meaning that the aspect ratio will be maintained when opening new windows.  <a href="#a58500d1d5e56285ceb2bd514dbee8a2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a9ca57ef4162045e82bf24e326ec8a936">get_unoccupied_y</a> (<a class="el" href="a00025.html">Workspace</a> *workspace)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See get_unoccupied_x.  <a href="#a9ca57ef4162045e82bf24e326ec8a936"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a1ea737657e6613d21ad663bb45c82dd2">decorate_window</a> (xcb_connection_t *conn, <a class="el" href="a00007.html">Client</a> *client, xcb_drawable_t drawable, xcb_gcontext_t gc, int offset_x, int offset_y)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">(Re-)draws window decorations for a given <a class="el" href="a00007.html" title="A client is X11-speak for a window.">Client</a> onto the given drawable/graphic context.  <a href="#a1ea737657e6613d21ad663bb45c82dd2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#ac78b8a4b371d2c4c2800c765f46e5df3">redecorate_window</a> (xcb_connection_t *conn, <a class="el" href="a00007.html">Client</a> *client)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Redecorates the given client correctly by checking if it’s in a stacking container and re-rendering the stack window or just calling decorate_window if it’s not in a stacking container.  <a href="#ac78b8a4b371d2c4c2800c765f46e5df3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a1d68fface3cf11ff882c23a5bfa586ab">reposition_client</a> (xcb_connection_t *conn, <a class="el" href="a00007.html">Client</a> *client)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pushes the client’s x and y coordinates to X11.  <a href="#a1d68fface3cf11ff882c23a5bfa586ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a83463931ef26f7c3261dc1b804282299">resize_client</a> (xcb_connection_t *conn, <a class="el" href="a00007.html">Client</a> *client)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pushes the client’s width/height to X11 and resizes the child window.  <a href="#a83463931ef26f7c3261dc1b804282299"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a2a1fee0aebdaf2497fb52ea57a1033a4">render_container</a> (xcb_connection_t *conn, <a class="el" href="a00013.html">Container</a> *container)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renders the given container.  <a href="#a2a1fee0aebdaf2497fb52ea57a1033a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a8a6aa6f7ea9bdaae274ff67183940dce">ignore_enter_notify_forall</a> (xcb_connection_t *conn, <a class="el" href="a00025.html">Workspace</a> *workspace, bool ignore_enter_notify)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Modifies the event mask of all clients on the given workspace to either ignore or to handle enter notifies.  <a href="#a8a6aa6f7ea9bdaae274ff67183940dce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#ab3e248d886080e290648c0d791a40b64">render_workspace</a> (xcb_connection_t *conn, <a class="el" href="a00026.html">Output</a> *output, <a class="el" href="a00025.html">Workspace</a> *r_ws)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renders the given workspace on the given screen.  <a href="#ab3e248d886080e290648c0d791a40b64"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#a47ffef7db851301198762179187ac997">render_layout</a> (xcb_connection_t *conn)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renders the whole layout, that is: Go through each screen, each workspace, each container and render each client.  <a href="#a47ffef7db851301198762179187ac997"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a1ea737657e6613d21ad663bb45c82dd2"></a><!-- doxytag: member="layout.h::decorate_window" ref="a1ea737657e6613d21ad663bb45c82dd2" args="(xcb_connection_t *conn, Client *client, xcb_drawable_t drawable, xcb_gcontext_t gc, int offset_x, int offset_y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void decorate_window </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00007.html">Client</a> *&nbsp;</td>
          <td class="paramname"> <em>client</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_drawable_t&nbsp;</td>
          <td class="paramname"> <em>drawable</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_gcontext_t&nbsp;</td>
          <td class="paramname"> <em>gc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset_y</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(Re-)draws window decorations for a given <a class="el" href="a00007.html" title="A client is X11-speak for a window.">Client</a> onto the given drawable/graphic context. </p>
<p>When in stacking mode, the window decorations are drawn onto an own window. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00098">98</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00034_source.html#l00050">Colortriple::background</a>, <a class="el" href="a00034_source.html#l00049">Colortriple::border</a>, <a class="el" href="a00036_source.html#l00427">Client::borderless</a>, <a class="el" href="a00076_source.html#l00036">c_ws</a>, <a class="el" href="a00010.html#a2cfc8e52ae874b8a76b8103b8da7b520">Config::client</a>, <a class="el" href="a00060_source.html#l00339">client_is_floating()</a>, <a class="el" href="a00062_source.html#l00037">config</a>, <a class="el" href="a00036_source.html#l00353">Client::container</a>, <a class="el" href="a00063_source.html#l00023">container_mode()</a>, <a class="el" href="a00036_source.html#l00469">Container::currently_focused</a>, <a class="el" href="a00036_source.html#l00431">Client::dock</a>, <a class="el" href="a00034_source.html#l00115">Config::config_client::focused</a>, <a class="el" href="a00034_source.html#l00116">Config::config_client::focused_inactive</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00079_source.html#l00077">get_colorpixel()</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00036_source.html#l00331">Font::height</a>, <a class="el" href="a00036_source.html#l00333">Font::id</a>, <a class="el" href="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00036_source.html#l00387">Client::name</a>, <a class="el" href="a00036_source.html#l00393">Client::name_len</a>, <a class="el" href="a00036_source.html#l00359">Client::rect</a>, <a class="el" href="a00047_source.html#l00110">SLIST_FIRST</a>, <a class="el" href="a00034_source.html#l00051">Colortriple::text</a>, <a class="el" href="a00007.html#a990cfbc44d87127fd05d8f6a5293d2fd">Client::titlebar_position</a>, <a class="el" href="a00036_source.html#l00450">Client::titlegc</a>, <a class="el" href="a00034_source.html#l00117">Config::config_client::unfocused</a>, <a class="el" href="a00034_source.html#l00118">Config::config_client::urgent</a>, <a class="el" href="a00036_source.html#l00434">Client::urgent</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00036_source.html#l00480">Container::width</a>, <a class="el" href="a00036_source.html#l00356">Client::workspace</a>, <a class="el" href="a00079_source.html#l00133">xcb_change_gc_single()</a>, and <a class="el" href="a00079_source.html#l00141">xcb_draw_line()</a>.</p>

<p>Referenced by <a class="el" href="a00067_source.html#l00770">handle_expose_event()</a>, <a class="el" href="a00067_source.html#l00603">handle_windowname_change()</a>, <a class="el" href="a00067_source.html#l00675">handle_windowname_change_legacy()</a>, <a class="el" href="a00069_source.html#l00081">redecorate_window()</a>, and <a class="el" href="a00069_source.html#l00348">render_container()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a58500d1d5e56285ceb2bd514dbee8a2f"></a><!-- doxytag: member="layout.h::get_unoccupied_x" ref="a58500d1d5e56285ceb2bd514dbee8a2f" args="(Workspace *workspace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int get_unoccupied_x </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00025.html">Workspace</a> *&nbsp;</td>
          <td class="paramname"> <em>workspace</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the unoccupied space (= space which is available for windows which were resized by the user) This is necessary to render both, customly resized windows and never touched windows correctly, meaning that the aspect ratio will be maintained when opening new windows. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00040">40</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00202">Workspace::cols</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00199">Workspace::rect</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, and <a class="el" href="a00036_source.html#l00250">Workspace::width_factor</a>.</p>

<p>Referenced by <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, and <a class="el" href="a00074_source.html#l00164">resize_container()</a>.</p>

</div>
</div>
<a class="anchor" id="a9ca57ef4162045e82bf24e326ec8a936"></a><!-- doxytag: member="layout.h::get_unoccupied_y" ref="a9ca57ef4162045e82bf24e326ec8a936" args="(Workspace *workspace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int get_unoccupied_y </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00025.html">Workspace</a> *&nbsp;</td>
          <td class="paramname"> <em>workspace</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See get_unoccupied_x. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00058">58</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00251">Workspace::height_factor</a>, <a class="el" href="a00036_source.html#l00204">Workspace::rows</a>, and <a class="el" href="a00078_source.html#l00463">workspace_height()</a>.</p>

<p>Referenced by <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, and <a class="el" href="a00074_source.html#l00164">resize_container()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a8a6aa6f7ea9bdaae274ff67183940dce"></a><!-- doxytag: member="layout.h::ignore_enter_notify_forall" ref="a8a6aa6f7ea9bdaae274ff67183940dce" args="(xcb_connection_t *conn, Workspace *workspace, bool ignore_enter_notify)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ignore_enter_notify_forall </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00025.html">Workspace</a> *&nbsp;</td>
          <td class="paramname"> <em>workspace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>ignore_enter_notify</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Modifies the event mask of all clients on the given workspace to either ignore or to handle enter notifies. </p>
<p>It is handy to ignore notifies because they will be sent when a window is mapped under the cursor, thus when the user didn’t enter the window actively at all. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00652">652</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00452">Client::child</a>, <a class="el" href="a00054_source.html#l00033">CHILD_EVENT_MASK</a>, <a class="el" href="a00047_source.html#l00439">CIRCLEQ_FOREACH</a>, <a class="el" href="a00052_source.html#l00026">FOR_TABLE</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00054_source.html#l00038">FRAME_EVENT_MASK</a>, and <a class="el" href="a00036_source.html#l00244">Workspace::table</a>.</p>

<p>Referenced by <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, <a class="el" href="a00078_source.html#l00342">workspace_map_clients()</a>, and <a class="el" href="a00078_source.html#l00375">workspace_unmap_clients()</a>.</p>

</div>
</div>
<a class="anchor" id="ac78b8a4b371d2c4c2800c765f46e5df3"></a><!-- doxytag: member="layout.h::redecorate_window" ref="ac78b8a4b371d2c4c2800c765f46e5df3" args="(xcb_connection_t *conn, Client *client)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void redecorate_window </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00007.html">Client</a> *&nbsp;</td>
          <td class="paramname"> <em>client</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Redecorates the given client correctly by checking if it’s in a stacking container and re-rendering the stack window or just calling decorate_window if it’s not in a stacking container. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00081">81</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00353">Client::container</a>, <a class="el" href="a00069_source.html#l00098">decorate_window()</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00013.html#ac094306ab77e360742aba04d7cbd0fe6">Container::mode</a>, <a class="el" href="a00036_source.html#l00359">Client::rect</a>, <a class="el" href="a00069_source.html#l00348">render_container()</a>, <a class="el" href="a00036_source.html#l00450">Client::titlegc</a>, and <a class="el" href="a00036_source.html#l00099">Rect::width</a>.</p>

<p>Referenced by <a class="el" href="a00060_source.html#l00377">client_change_border()</a>, <a class="el" href="a00060_source.html#l00244">client_leave_fullscreen()</a>, <a class="el" href="a00067_source.html#l00994">handle_hints()</a>, <a class="el" href="a00072_source.html#l00151">reparent_window()</a>, <a class="el" href="a00077_source.html#l00232">set_focus()</a>, <a class="el" href="a00066_source.html#l00041">toggle_floating_mode()</a>, and <a class="el" href="a00078_source.html#l00113">workspace_show()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a2a1fee0aebdaf2497fb52ea57a1033a4"></a><!-- doxytag: member="layout.h::render_container" ref="a2a1fee0aebdaf2497fb52ea57a1033a4" args="(xcb_connection_t *conn, Container *container)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void render_container </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00013.html">Container</a> *&nbsp;</td>
          <td class="paramname"> <em>container</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Renders the given container. </p>
<p>Is called by <a class="el" href="a00069.html#a47ffef7db851301198762179187ac997" title="Renders the whole layout, that is: Go through each screen, each workspace, each container...">render_layout()</a> or individually (for example when focus changes in a stacking container) </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00348">348</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00079_source.html#l00271">cached_pixmap_prepare()</a>, <a class="el" href="a00047_source.html#l00439">CIRCLEQ_FOREACH</a>, <a class="el" href="a00062_source.html#l00037">config</a>, <a class="el" href="a00076_source.html#l00037">current_col</a>, <a class="el" href="a00076_source.html#l00038">current_row</a>, <a class="el" href="a00069_source.html#l00098">decorate_window()</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00036_source.html#l00440">Client::force_reconfigure</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00036_source.html#l00226">Workspace::fullscreen_client</a>, <a class="el" href="a00036_source.html#l00126">Cached_Pixmap::gc</a>, <a class="el" href="a00079_source.html#l00077">get_colorpixel()</a>, <a class="el" href="a00036_source.html#l00331">Font::height</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00036_source.html#l00481">Container::height</a>, <a class="el" href="a00036_source.html#l00123">Cached_Pixmap::id</a>, <a class="el" href="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00044_source.html#l00019">LOG</a>, <a class="el" href="a00077_source.html#l00048">max()</a>, <a class="el" href="a00077_source.html#l00044">min()</a>, <a class="el" href="a00013.html#ac094306ab77e360742aba04d7cbd0fe6">Container::mode</a>, <a class="el" href="a00036_source.html#l00145">Stack_Window::pixmap</a>, <a class="el" href="a00036_source.html#l00146">Stack_Window::rect</a>, <a class="el" href="a00036_source.html#l00359">Client::rect</a>, <a class="el" href="a00069_source.html#l00248">resize_client()</a>, <a class="el" href="a00013.html#a8d99003f0507fe6554189568f84505be">Container::stack_limit</a>, <a class="el" href="a00036_source.html#l00500">Container::stack_limit_value</a>, <a class="el" href="a00036_source.html#l00485">Container::stack_win</a>, <a class="el" href="a00047_source.html#l00325">TAILQ_END</a>, <a class="el" href="a00047_source.html#l00324">TAILQ_FIRST</a>, <a class="el" href="a00077_source.html#l00057">update_if_necessary()</a>, <a class="el" href="a00036_source.html#l00480">Container::width</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00036_source.html#l00144">Stack_Window::window</a>, <a class="el" href="a00036_source.html#l00488">Container::workspace</a>, <a class="el" href="a00036_source.html#l00477">Container::x</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, <a class="el" href="a00079_source.html#l00133">xcb_change_gc_single()</a>, <a class="el" href="a00036_source.html#l00478">Container::y</a>, and <a class="el" href="a00036_source.html#l00098">Rect::y</a>.</p>

<p>Referenced by <a class="el" href="a00060_source.html#l00377">client_change_border()</a>, <a class="el" href="a00067_source.html#l00770">handle_expose_event()</a>, <a class="el" href="a00067_source.html#l00880">handle_normal_hints()</a>, <a class="el" href="a00067_source.html#l00603">handle_windowname_change()</a>, <a class="el" href="a00067_source.html#l00675">handle_windowname_change_legacy()</a>, <a class="el" href="a00069_source.html#l00081">redecorate_window()</a>, <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, <a class="el" href="a00072_source.html#l00151">reparent_window()</a>, and <a class="el" href="a00066_source.html#l00041">toggle_floating_mode()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a47ffef7db851301198762179187ac997"></a><!-- doxytag: member="layout.h::render_layout" ref="a47ffef7db851301198762179187ac997" args="(xcb_connection_t *conn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void render_layout </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Renders the whole layout, that is: Go through each screen, each workspace, each container and render each client. </p>
<p>This also renders the bars.</p>
<p>If you don’t need to render *everything*, you should call render_container on the container you want to refresh. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00771">771</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00528">xoutput::current_workspace</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, and <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>.</p>

<p>Referenced by <a class="el" href="a00060_source.html#l00377">client_change_border()</a>, <a class="el" href="a00060_source.html#l00244">client_leave_fullscreen()</a>, <a class="el" href="a00067_source.html#l00770">handle_expose_event()</a>, <a class="el" href="a00067_source.html#l00460">handle_unmap_notify_event()</a>, <a class="el" href="a00073_source.html#l00367">init_workspaces()</a>, <a class="el" href="a00061_source.html#l00406">move_current_container()</a>, <a class="el" href="a00061_source.html#l00287">move_current_window_in_container()</a>, <a class="el" href="a00061_source.html#l00638">move_current_window_to_workspace()</a>, <a class="el" href="a00061_source.html#l00566">move_floating_window_to_workspace()</a>, <a class="el" href="a00061_source.html#l00950">parse_command()</a>, <a class="el" href="a00072_source.html#l00151">reparent_window()</a>, <a class="el" href="a00074_source.html#l00164">resize_container()</a>, <a class="el" href="a00061_source.html#l00484">snap_current_container()</a>, <a class="el" href="a00077_source.html#l00347">switch_layout_mode()</a>, and <a class="el" href="a00078_source.html#l00113">workspace_show()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="ab3e248d886080e290648c0d791a40b64"></a><!-- doxytag: member="layout.h::render_workspace" ref="ab3e248d886080e290648c0d791a40b64" args="(xcb_connection_t *conn, Output *output, Workspace *r_ws)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void render_workspace </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00026.html">Output</a> *&nbsp;</td>
          <td class="paramname"> <em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00025.html">Workspace</a> *&nbsp;</td>
          <td class="paramname"> <em>r_ws</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Renders the given workspace on the given screen. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00680">680</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00475">Container::col</a>, <a class="el" href="a00036_source.html#l00202">Workspace::cols</a>, <a class="el" href="a00036_source.html#l00470">Container::colspan</a>, <a class="el" href="a00062_source.html#l00037">config</a>, <a class="el" href="a00036_source.html#l00384">Client::desired_height</a>, <a class="el" href="a00034_source.html#l00105">Config::disable_workspace_bar</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00052_source.html#l00026">FOR_TABLE</a>, <a class="el" href="a00036_source.html#l00440">Client::force_reconfigure</a>, <a class="el" href="a00069_source.html#l00040">get_unoccupied_x()</a>, <a class="el" href="a00069_source.html#l00058">get_unoccupied_y()</a>, <a class="el" href="a00036_source.html#l00481">Container::height</a>, <a class="el" href="a00036_source.html#l00331">Font::height</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00036_source.html#l00251">Workspace::height_factor</a>, <a class="el" href="a00069_source.html#l00652">ignore_enter_notify_forall()</a>, <a class="el" href="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00036_source.html#l00199">Workspace::rect</a>, <a class="el" href="a00069_source.html#l00576">render_bars()</a>, <a class="el" href="a00069_source.html#l00348">render_container()</a>, <a class="el" href="a00069_source.html#l00596">render_internal_bar()</a>, <a class="el" href="a00069_source.html#l00206">reposition_client()</a>, <a class="el" href="a00069_source.html#l00248">resize_client()</a>, <a class="el" href="a00036_source.html#l00474">Container::row</a>, <a class="el" href="a00036_source.html#l00204">Workspace::rows</a>, <a class="el" href="a00036_source.html#l00471">Container::rowspan</a>, <a class="el" href="a00047_source.html#l00115">SLIST_FOREACH</a>, <a class="el" href="a00036_source.html#l00244">Workspace::table</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00036_source.html#l00480">Container::width</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00036_source.html#l00250">Workspace::width_factor</a>, <a class="el" href="a00036_source.html#l00477">Container::x</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, <a class="el" href="a00036_source.html#l00478">Container::y</a>, and <a class="el" href="a00036_source.html#l00098">Rect::y</a>.</p>

<p>Referenced by <a class="el" href="a00067_source.html#l00292">handle_configure_request()</a>, <a class="el" href="a00067_source.html#l00994">handle_hints()</a>, <a class="el" href="a00061_source.html#l00312">move_current_window()</a>, <a class="el" href="a00061_source.html#l00950">parse_command()</a>, <a class="el" href="a00069_source.html#l00771">render_layout()</a>, and <a class="el" href="a00078_source.html#l00223">workspace_assign_to()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a1d68fface3cf11ff882c23a5bfa586ab"></a><!-- doxytag: member="layout.h::reposition_client" ref="a1d68fface3cf11ff882c23a5bfa586ab" args="(xcb_connection_t *conn, Client *client)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void reposition_client </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00007.html">Client</a> *&nbsp;</td>
          <td class="paramname"> <em>client</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pushes the client’s x and y coordinates to X11. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00206">206</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00060_source.html#l00339">client_is_floating()</a>, <a class="el" href="a00036_source.html#l00528">xoutput::current_workspace</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00066_source.html#l00149">floating_assign_to_workspace()</a>, <a class="el" href="a00036_source.html#l00440">Client::force_reconfigure</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00073_source.html#l00099">get_output_containing()</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00036_source.html#l00239">Workspace::output</a>, <a class="el" href="a00036_source.html#l00359">Client::rect</a>, <a class="el" href="a00077_source.html#l00232">set_focus()</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00036_source.html#l00356">Client::workspace</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, and <a class="el" href="a00036_source.html#l00098">Rect::y</a>.</p>

<p>Referenced by <a class="el" href="a00060_source.html#l00244">client_leave_fullscreen()</a>, <a class="el" href="a00066_source.html#l00177">DRAGGING_CB()</a>, <a class="el" href="a00066_source.html#l00488">floating_move()</a>, <a class="el" href="a00067_source.html#l00292">handle_configure_request()</a>, <a class="el" href="a00061_source.html#l00566">move_floating_window_to_workspace()</a>, <a class="el" href="a00069_source.html#l00576">render_bars()</a>, <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, <a class="el" href="a00072_source.html#l00151">reparent_window()</a>, and <a class="el" href="a00066_source.html#l00041">toggle_floating_mode()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
<a class="anchor" id="a83463931ef26f7c3261dc1b804282299"></a><!-- doxytag: member="layout.h::resize_client" ref="a83463931ef26f7c3261dc1b804282299" args="(xcb_connection_t *conn, Client *client)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void resize_client </td>
          <td>(</td>
          <td class="paramtype">xcb_connection_t *&nbsp;</td>
          <td class="paramname"> <em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00007.html">Client</a> *&nbsp;</td>
          <td class="paramname"> <em>client</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pushes the client’s width/height to X11 and resizes the child window. </p>
<p>This function also updates the client’s position, so if you work on tiling clients only, you can use this function instead of separate calls to reposition_client and resize_client to reduce flickering. </p>

<p>Definition at line <a class="el" href="a00069_source.html#l00248">248</a> of file <a class="el" href="a00069_source.html">layout.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00371">Client::base_height</a>, <a class="el" href="a00036_source.html#l00372">Client::base_width</a>, <a class="el" href="a00036_source.html#l00375">Client::border_width</a>, <a class="el" href="a00036_source.html#l00427">Client::borderless</a>, <a class="el" href="a00036_source.html#l00452">Client::child</a>, <a class="el" href="a00036_source.html#l00364">Client::child_rect</a>, <a class="el" href="a00062_source.html#l00037">config</a>, <a class="el" href="a00036_source.html#l00353">Client::container</a>, <a class="el" href="a00063_source.html#l00023">container_mode()</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00079_source.html#l00190">fake_absolute_configure_notify()</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00067_source.html#l00770">handle_expose_event()</a>, <a class="el" href="a00036_source.html#l00331">Font::height</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00036_source.html#l00380">Client::height_increment</a>, <a class="el" href="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00036_source.html#l00368">Client::proportional_height</a>, <a class="el" href="a00036_source.html#l00369">Client::proportional_width</a>, <a class="el" href="a00036_source.html#l00359">Client::rect</a>, <a class="el" href="a00007.html#a990cfbc44d87127fd05d8f6a5293d2fd">Client::titlebar_position</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00036_source.html#l00379">Client::width_increment</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, <a class="el" href="a00079_source.html#l00328">xcb_set_window_rect()</a>, and <a class="el" href="a00036_source.html#l00098">Rect::y</a>.</p>

<p>Referenced by <a class="el" href="a00060_source.html#l00377">client_change_border()</a>, <a class="el" href="a00060_source.html#l00244">client_leave_fullscreen()</a>, <a class="el" href="a00066_source.html#l00177">DRAGGING_CB()</a>, <a class="el" href="a00067_source.html#l00292">handle_configure_request()</a>, <a class="el" href="a00067_source.html#l00880">handle_normal_hints()</a>, <a class="el" href="a00061_source.html#l00869">parse_resize_command()</a>, <a class="el" href="a00069_source.html#l00576">render_bars()</a>, <a class="el" href="a00069_source.html#l00348">render_container()</a>, <a class="el" href="a00069_source.html#l00680">render_workspace()</a>, <a class="el" href="a00072_source.html#l00151">reparent_window()</a>, and <a class="el" href="a00066_source.html#l00041">toggle_floating_mode()</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
</div>
</p>

</div>
</div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>