Sophie

Sophie

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

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: src/randr.c 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>src/randr.c File Reference</h1><code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
<code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;time.h&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;xcb/xcb.h&gt;</code><br/>
<code>#include &lt;xcb/randr.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="a00047_source.html">queue.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00041_source.html">i3.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00036_source.html">data.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00051_source.html">table.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00052_source.html">util.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00043_source.html">layout.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00054_source.html">xcb.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00034_source.html">config.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00053_source.html">workspace.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00044_source.html">log.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00038_source.html">ewmh.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00042_source.html">ipc.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="a00032_source.html">client.h</a>&quot;</code><br/>
<div class="dynheader">
Include dependency graph for randr.c:</div>
<div class="dynsection">
</div>

<p><a href="a00073_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#af9b4a4c33615b5ed4920fc012eed3e33">WIN</a>(variable, condition)</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
xcb_randr_get_crtc_info_reply_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a9245e8649a64978e379c7fb613823869">crtc_info</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef xcb_randr_mode_info_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a0e9a01a2276ee7092ebeaeb6effb4ec4">mode_info</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
xcb_randr_get_screen_resources_current_reply_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a97f36df51cdd1efbad0a2b067f63c7bc">resources_reply</a></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00026.html">Output</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#aa855dcabb5bc4a5f61663aea37b63f5b">get_output_by_id</a> (xcb_randr_output_t id)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00026.html">Output</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a2c185a55a45ce9d522bc3b3b69e06132">get_output_by_name</a> (const char *name)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the output with the given name if it is active (!) or NULL.  <a href="#a2c185a55a45ce9d522bc3b3b69e06132"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00026.html">Output</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a514adc4dcfc06b1e9329e41633c65fb0">get_first_output</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the first output which is active.  <a href="#a514adc4dcfc06b1e9329e41633c65fb0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00026.html">Output</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#abb7e75366265212195afd09ab85235f6">get_output_containing</a> (int x, int y)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the active (!) output which contains the coordinates x, y or NULL if there is no output which contains these coordinates.  <a href="#abb7e75366265212195afd09ab85235f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00026.html">Output</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#ab437b557cdb16bda702e52c99efcfe4a">get_output_most</a> (<a class="el" href="a00036.html#ae9ae980041e438eed7a3af43ce4e9f6b">direction_t</a> direction, <a class="el" href="a00026.html">Output</a> *current)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the output which is the last one in the given direction, for example the output on the most bottom when direction == D_DOWN, the output most right when direction == D_RIGHT and so on.  <a href="#ab437b557cdb16bda702e52c99efcfe4a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a3b4d451b80a25c4d2df53a45f85ee637">initialize_output</a> (xcb_connection_t *conn, <a class="el" href="a00026.html">Output</a> *output, <a class="el" href="a00025.html">Workspace</a> *workspace)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the specified output, assigning the specified workspace to it.  <a href="#a3b4d451b80a25c4d2df53a45f85ee637"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a0d7c5d1d6273f607dc9285621e988e08">disable_randr</a> (xcb_connection_t *conn)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables RandR support by creating exactly one output with the size of the X11 screen.  <a href="#a0d7c5d1d6273f607dc9285621e988e08"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a601f4c6e49b7082de5d5a228030bbe40">output_change_mode</a> (xcb_connection_t *conn, <a class="el" href="a00026.html">Output</a> *output)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a80da9f337292bbd64123b233f0a43a7a">handle_output</a> (xcb_connection_t *conn, xcb_randr_output_t id, xcb_randr_get_output_info_reply_t *output, xcb_timestamp_t cts, <a class="el" href="a00073.html#a97f36df51cdd1efbad0a2b067f63c7bc">resources_reply</a> *res)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#aaf667527eed0bcd14d62a3dd1e4484d7">init_workspaces</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#ace31eff56142111b49e1e88608c8964a">randr_query_outputs</a> (xcb_connection_t *conn)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">(Re-)queries the outputs via RandR and stores them in the list of outputs.  <a href="#ace31eff56142111b49e1e88608c8964a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a6a7a017cf0668c2b9aba5011bdd7e9f3">initialize_randr</a> (xcb_connection_t *conn, int *event_base)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We have just established a connection to the X server and need the initial XRandR information to setup workspaces for each screen.  <a href="#a6a7a017cf0668c2b9aba5011bdd7e9f3"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct outputs_head&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a9fecba0738529e3d9ff0d4fa7c31ffa9">outputs</a> = TAILQ_HEAD_INITIALIZER(<a class="el" href="a00048.html#a9fecba0738529e3d9ff0d4fa7c31ffa9">outputs</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html#a93c5408e1e62034f8b292cc65ee9ab7f">randr_disabled</a> = false</td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="af9b4a4c33615b5ed4920fc012eed3e33"></a><!-- doxytag: member="randr.c::WIN" ref="af9b4a4c33615b5ed4920fc012eed3e33" args="(variable, condition)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WIN</td>
          <td>(</td>
          <td class="paramtype">variable, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">condition&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (variable condition) { \
                                candidate = output; \
                                position = variable; \
                        } \
                        <span class="keywordflow">break</span>;
</pre></div>
<p>Referenced by <a class="el" href="a00073_source.html#l00122">get_output_most()</a>.</p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a9245e8649a64978e379c7fb613823869"></a><!-- doxytag: member="randr.c::crtc_info" ref="a9245e8649a64978e379c7fb613823869" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef xcb_randr_get_crtc_info_reply_t <a class="el" href="a00073.html#a9245e8649a64978e379c7fb613823869">crtc_info</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00042">42</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0e9a01a2276ee7092ebeaeb6effb4ec4"></a><!-- doxytag: member="randr.c::mode_info" ref="a0e9a01a2276ee7092ebeaeb6effb4ec4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef xcb_randr_mode_info_t <a class="el" href="a00073.html#a0e9a01a2276ee7092ebeaeb6effb4ec4">mode_info</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00043">43</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

</div>
</div>
<a class="anchor" id="a97f36df51cdd1efbad0a2b067f63c7bc"></a><!-- doxytag: member="randr.c::resources_reply" ref="a97f36df51cdd1efbad0a2b067f63c7bc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef xcb_randr_get_screen_resources_current_reply_t <a class="el" href="a00073.html#a97f36df51cdd1efbad0a2b067f63c7bc">resources_reply</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00044">44</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a0d7c5d1d6273f607dc9285621e988e08"></a><!-- doxytag: member="randr.c::disable_randr" ref="a0d7c5d1d6273f607dc9285621e988e08" args="(xcb_connection_t *conn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void disable_randr </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>Disables RandR support by creating exactly one output with the size of the X11 screen. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00216">216</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00036_source.html#l00516">xoutput::name</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00073_source.html#l00049">randr_disabled</a>, <a class="el" href="a00036_source.html#l00531">xoutput::rect</a>, <a class="el" href="a00077_source.html#l00074">scalloc()</a>, <a class="el" href="a00047_source.html#l00363">TAILQ_INSERT_TAIL</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</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="a00073_source.html#l00522">initialize_randr()</a>, <a class="el" href="a00080_source.html#l00104">initialize_xinerama()</a>, and <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</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="a514adc4dcfc06b1e9329e41633c65fb0"></a><!-- doxytag: member="randr.c::get_first_output" ref="a514adc4dcfc06b1e9329e41633c65fb0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00026.html">Output</a>* get_first_output </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the first output which is active. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00084">84</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, and <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>, and <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</a>.</p>

</div>
</div>
<a class="anchor" id="aa855dcabb5bc4a5f61663aea37b63f5b"></a><!-- doxytag: member="randr.c::get_output_by_id" ref="aa855dcabb5bc4a5f61663aea37b63f5b" args="(xcb_randr_output_t id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00026.html">Output</a>* get_output_by_id </td>
          <td>(</td>
          <td class="paramtype">xcb_randr_output_t&nbsp;</td>
          <td class="paramname"> <em>id</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00057">57</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00514">xoutput::id</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, and <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>.</p>

<p>Referenced by <a class="el" href="a00073_source.html#l00303">handle_output()</a>.</p>

</div>
</div>
<a class="anchor" id="a2c185a55a45ce9d522bc3b3b69e06132"></a><!-- doxytag: member="randr.c::get_output_by_name" ref="a2c185a55a45ce9d522bc3b3b69e06132" args="(const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00026.html">Output</a>* get_output_by_name </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the output with the given name if it is active (!) or NULL. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00070">70</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00036_source.html#l00516">xoutput::name</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, and <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>.</p>

<p>Referenced by <a class="el" href="a00078_source.html#l00301">get_first_workspace_for_output()</a>, <a class="el" href="a00073_source.html#l00166">initialize_output()</a>, and <a class="el" href="a00078_source.html#l00271">workspace_initialize()</a>.</p>

</div>
</div>
<a class="anchor" id="abb7e75366265212195afd09ab85235f6"></a><!-- doxytag: member="randr.c::get_output_containing" ref="abb7e75366265212195afd09ab85235f6" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00026.html">Output</a>* get_output_containing </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>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>Returns the active (!) output which contains the coordinates x, y or NULL if there is no output which contains these coordinates. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00099">99</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00036_source.html#l00531">xoutput::rect</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</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="a00067_source.html#l00133">check_crossing_screen_boundary()</a>, <a class="el" href="a00061_source.html#l00084">focus_thing()</a>, <a class="el" href="a00071_source.html#l00193">main()</a>, <a class="el" href="a00072_source.html#l00151">reparent_window()</a>, <a class="el" href="a00069_source.html#l00206">reposition_client()</a>, and <a class="el" href="a00074_source.html#l00076">resize_graphical_handler()</a>.</p>

</div>
</div>
<a class="anchor" id="ab437b557cdb16bda702e52c99efcfe4a"></a><!-- doxytag: member="randr.c::get_output_most" ref="ab437b557cdb16bda702e52c99efcfe4a" args="(direction_t direction, Output *current)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00026.html">Output</a>* get_output_most </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00036.html#ae9ae980041e438eed7a3af43ce4e9f6b">direction_t</a>&nbsp;</td>
          <td class="paramname"> <em>direction</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>current</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the output which is the last one in the given direction, for example the output on the most bottom when direction == D_DOWN, the output most right when direction == D_RIGHT and so on. </p>
<p>This function always returns a output. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00122">122</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00036_source.html#l00064">D_DOWN</a>, <a class="el" href="a00036_source.html#l00064">D_LEFT</a>, <a class="el" href="a00036_source.html#l00064">D_RIGHT</a>, <a class="el" href="a00036_source.html#l00064">D_UP</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00036_source.html#l00531">xoutput::rect</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00073.html#af9b4a4c33615b5ed4920fc012eed3e33">WIN</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="a00061_source.html#l00084">focus_thing()</a>, and <a class="el" href="a00074_source.html#l00076">resize_graphical_handler()</a>.</p>

</div>
</div>
<a class="anchor" id="a80da9f337292bbd64123b233f0a43a7a"></a><!-- doxytag: member="randr.c::handle_output" ref="a80da9f337292bbd64123b233f0a43a7a" args="(xcb_connection_t *conn, xcb_randr_output_t id, xcb_randr_get_output_info_reply_t *output, xcb_timestamp_t cts, resources_reply *res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void handle_output </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">xcb_randr_output_t&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_randr_get_output_info_reply_t *&nbsp;</td>
          <td class="paramname"> <em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_timestamp_t&nbsp;</td>
          <td class="paramname"> <em>cts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00073.html#a97f36df51cdd1efbad0a2b067f63c7bc">resources_reply</a> *&nbsp;</td>
          <td class="paramname"> <em>res</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00303">303</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00052_source.html#l00029">FREE</a>, <a class="el" href="a00073_source.html#l00057">get_output_by_id()</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00077_source.html#l00074">scalloc()</a>, <a class="el" href="a00047_source.html#l00363">TAILQ_INSERT_TAIL</a>, and <a class="el" href="a00077_source.html#l00057">update_if_necessary()</a>.</p>

<p>Referenced by <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</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="aaf667527eed0bcd14d62a3dd1e4484d7"></a><!-- doxytag: member="randr.c::init_workspaces" ref="aaf667527eed0bcd14d62a3dd1e4484d7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void init_workspaces </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00367">367</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00036_source.html#l00528">xoutput::current_workspace</a>, <a class="el" href="a00078_source.html#l00301">get_first_workspace_for_output()</a>, <a class="el" href="a00071_source.html#l00058">global_conn</a>, <a class="el" href="a00073_source.html#l00166">initialize_output()</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00069_source.html#l00771">render_layout()</a>, and <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>.</p>

<p>Referenced by <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</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="a3b4d451b80a25c4d2df53a45f85ee637"></a><!-- doxytag: member="randr.c::initialize_output" ref="a3b4d451b80a25c4d2df53a45f85ee637" args="(xcb_connection_t *conn, Output *output, Workspace *workspace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void initialize_output </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>workspace</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes the specified output, assigning the specified workspace to it. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00166">166</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00534">xoutput::bar</a>, <a class="el" href="a00036_source.html#l00535">xoutput::bargc</a>, <a class="el" href="a00062_source.html#l00037">config</a>, <a class="el" href="a00079_source.html#l00093">create_window()</a>, <a class="el" href="a00036_source.html#l00528">xoutput::current_workspace</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="a00073_source.html#l00070">get_output_by_name()</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="a00068_source.html#l00121">ipc_send_event()</a>, <a class="el" href="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00036_source.html#l00184">Workspace::num</a>, <a class="el" href="a00036_source.html#l00239">Workspace::output</a>, <a class="el" href="a00036_source.html#l00219">Workspace::preferred_output</a>, <a class="el" href="a00036_source.html#l00531">xoutput::rect</a>, <a class="el" href="a00036_source.html#l00199">Workspace::rect</a>, <a class="el" href="a00047_source.html#l00128">SLIST_INIT</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00078_source.html#l00223">workspace_assign_to()</a>, <a class="el" href="a00078_source.html#l00342">workspace_map_clients()</a>, <a class="el" href="a00076_source.html#l00034">workspaces</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, <a class="el" href="a00054_source.html#l00022">XCB_CURSOR_LEFT_PTR</a>, and <a class="el" href="a00036_source.html#l00098">Rect::y</a>.</p>

<p>Referenced by <a class="el" href="a00073_source.html#l00367">init_workspaces()</a>, <a class="el" href="a00080_source.html#l00104">initialize_xinerama()</a>, and <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</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="a6a7a017cf0668c2b9aba5011bdd7e9f3"></a><!-- doxytag: member="randr.c::initialize_randr" ref="a6a7a017cf0668c2b9aba5011bdd7e9f3" args="(xcb_connection_t *conn, int *event_base)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void initialize_randr </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">int *&nbsp;</td>
          <td class="paramname"> <em>event_base</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>We have just established a connection to the X server and need the initial XRandR information to setup workspaces for each screen. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00522">522</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00073_source.html#l00216">disable_randr()</a>, <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</a>, and <a class="el" href="a00071_source.html#l00085">root</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</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="a601f4c6e49b7082de5d5a228030bbe40"></a><!-- doxytag: member="randr.c::output_change_mode" ref="a601f4c6e49b7082de5d5a228030bbe40" args="(xcb_connection_t *conn, Output *output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void output_change_mode </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><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00246">246</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00534">xoutput::bar</a>, <a class="el" href="a00036_source.html#l00452">Client::child</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="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#l00331">Font::height</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00036_source.html#l00239">Workspace::output</a>, <a class="el" href="a00036_source.html#l00199">Workspace::rect</a>, <a class="el" href="a00036_source.html#l00359">Client::rect</a>, <a class="el" href="a00036_source.html#l00531">xoutput::rect</a>, <a class="el" href="a00047_source.html#l00115">SLIST_FOREACH</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00076_source.html#l00034">workspaces</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="a00073_source.html#l00387">randr_query_outputs()</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="ace31eff56142111b49e1e88608c8964a"></a><!-- doxytag: member="randr.c::randr_query_outputs" ref="ace31eff56142111b49e1e88608c8964a" args="(xcb_connection_t *conn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void randr_query_outputs </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>(Re-)queries the outputs via RandR and stores them in the list of outputs. </p>

<p>Definition at line <a class="el" href="a00073_source.html#l00387">387</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00520">xoutput::active</a>, <a class="el" href="a00036_source.html#l00524">xoutput::changed</a>, <a class="el" href="a00036_source.html#l00528">xoutput::current_workspace</a>, <a class="el" href="a00052_source.html#l00019">die</a>, <a class="el" href="a00073_source.html#l00216">disable_randr()</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00044_source.html#l00020">ELOG</a>, <a class="el" href="a00065_source.html#l00058">ewmh_update_workarea()</a>, <a class="el" href="a00073_source.html#l00084">get_first_output()</a>, <a class="el" href="a00073_source.html#l00303">handle_output()</a>, <a class="el" href="a00036_source.html#l00100">Rect::height</a>, <a class="el" href="a00073_source.html#l00367">init_workspaces()</a>, <a class="el" href="a00073_source.html#l00166">initialize_output()</a>, <a class="el" href="a00077_source.html#l00044">min()</a>, <a class="el" href="a00036_source.html#l00516">xoutput::name</a>, <a class="el" href="a00036_source.html#l00239">Workspace::output</a>, <a class="el" href="a00073_source.html#l00246">output_change_mode()</a>, <a class="el" href="a00073_source.html#l00047">outputs</a>, <a class="el" href="a00073_source.html#l00049">randr_disabled</a>, <a class="el" href="a00036_source.html#l00531">xoutput::rect</a>, <a class="el" href="a00071_source.html#l00085">root</a>, <a class="el" href="a00047_source.html#l00112">SLIST_EMPTY</a>, <a class="el" href="a00047_source.html#l00110">SLIST_FIRST</a>, <a class="el" href="a00047_source.html#l00137">SLIST_INSERT_HEAD</a>, <a class="el" href="a00047_source.html#l00146">SLIST_REMOVE_HEAD</a>, <a class="el" href="a00047_source.html#l00332">TAILQ_EMPTY</a>, <a class="el" href="a00047_source.html#l00325">TAILQ_END</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00047_source.html#l00326">TAILQ_NEXT</a>, <a class="el" href="a00036_source.html#l00525">xoutput::to_be_disabled</a>, <a class="el" href="a00077_source.html#l00057">update_if_necessary()</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00078_source.html#l00223">workspace_assign_to()</a>, <a class="el" href="a00076_source.html#l00034">workspaces</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="a00067_source.html#l00444">handle_screen_change()</a>, and <a class="el" href="a00073_source.html#l00522">initialize_randr()</a>.</p>

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

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a9fecba0738529e3d9ff0d4fa7c31ffa9"></a><!-- doxytag: member="randr.c::outputs" ref="a9fecba0738529e3d9ff0d4fa7c31ffa9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct outputs_head <a class="el" href="a00048.html#a9fecba0738529e3d9ff0d4fa7c31ffa9">outputs</a> = TAILQ_HEAD_INITIALIZER(<a class="el" href="a00048.html#a9fecba0738529e3d9ff0d4fa7c31ffa9">outputs</a>)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00047">47</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>Referenced by <a class="el" href="a00059_source.html#l00128">button_press_bar()</a>, <a class="el" href="a00060_source.html#l00156">client_enter_fullscreen()</a>, <a class="el" href="a00073_source.html#l00216">disable_randr()</a>, <a class="el" href="a00073_source.html#l00084">get_first_output()</a>, <a class="el" href="a00073_source.html#l00057">get_output_by_id()</a>, <a class="el" href="a00073_source.html#l00070">get_output_by_name()</a>, <a class="el" href="a00073_source.html#l00099">get_output_containing()</a>, <a class="el" href="a00073_source.html#l00122">get_output_most()</a>, <a class="el" href="a00080_source.html#l00036">get_screen_at()</a>, <a class="el" href="a00067_source.html#l00770">handle_expose_event()</a>, <a class="el" href="a00073_source.html#l00303">handle_output()</a>, <a class="el" href="a00075_source.html#l00151">handle_signal()</a>, <a class="el" href="a00073_source.html#l00367">init_workspaces()</a>, <a class="el" href="a00080_source.html#l00104">initialize_xinerama()</a>, <a class="el" href="a00068_source.html#l00241">IPC_HANDLER()</a>, <a class="el" href="a00080_source.html#l00050">query_screens()</a>, <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</a>, and <a class="el" href="a00069_source.html#l00771">render_layout()</a>.</p>

</div>
</div>
<a class="anchor" id="a93c5408e1e62034f8b292cc65ee9ab7f"></a><!-- doxytag: member="randr.c::randr_disabled" ref="a93c5408e1e62034f8b292cc65ee9ab7f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="a00073.html#a93c5408e1e62034f8b292cc65ee9ab7f">randr_disabled</a> = false<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="a00073_source.html#l00049">49</a> of file <a class="el" href="a00073_source.html">randr.c</a>.</p>

<p>Referenced by <a class="el" href="a00073_source.html#l00216">disable_randr()</a>, and <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</a>.</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>