Sophie

Sophie

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

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/handlers.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/handlers.h File Reference</h1><code>#include &lt;xcb/randr.h&gt;</code><br/>
<div class="dynheader">
Include dependency graph for handlers.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="a00040_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="a00040.html#abcdedd21ed4dd7e762b2fb2ac49b6527">handle_key_press</a> (void *ignored, xcb_connection_t *conn, xcb_key_press_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">There was a key press.  <a href="#abcdedd21ed4dd7e762b2fb2ac49b6527"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ade0bc204de173bdbeacb7b10b5631aec">handle_enter_notify</a> (void *ignored, xcb_connection_t *conn, xcb_enter_notify_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When the user moves the mouse pointer onto a window, this callback gets called.  <a href="#ade0bc204de173bdbeacb7b10b5631aec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a23c1d18838f1993a18c1bd891a0fcd3e">handle_motion_notify</a> (void *ignored, xcb_connection_t *conn, xcb_motion_notify_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When the user moves the mouse but does not change the active window (e.g.  <a href="#a23c1d18838f1993a18c1bd891a0fcd3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a2ca89397c76485894e1de2fcb65ec697">handle_mapping_notify</a> (void *ignored, xcb_connection_t *conn, xcb_mapping_notify_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called when the keyboard mapping changes (for example by using Xmodmap), we need to update our key bindings then (re-translate symbols).  <a href="#a2ca89397c76485894e1de2fcb65ec697"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ac97f2eddd5082f584d9370459628f503">handle_button_press</a> (void *ignored, xcb_connection_t *conn, xcb_button_press_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks if the button press was on a stack window, handles focus setting and returns true if so, or false otherwise.  <a href="#ac97f2eddd5082f584d9370459628f503"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ae301f3f0db441a1c22a39e88989a96c3">handle_map_request</a> (void *prophs, xcb_connection_t *conn, xcb_map_request_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A new window appeared on the screen (=was mapped), so let’s manage it.  <a href="#ae301f3f0db441a1c22a39e88989a96c3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#aa17e023a1acbf56eb18628e82c8ed55e">handle_configure_event</a> (void *prophs, xcb_connection_t *conn, xcb_configure_notify_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configuration notifies are only handled because we need to set up ignore for the following enter notify events.  <a href="#aa17e023a1acbf56eb18628e82c8ed55e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a38db143e8cde0e72a7fe1aa1a9412c0e">handle_screen_change</a> (void *prophs, xcb_connection_t *conn, xcb_generic_event_t *e)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets triggered upon a RandR screen change event, that is when the user changes the screen configuration in any way (mode, position, …).  <a href="#a38db143e8cde0e72a7fe1aa1a9412c0e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#abef279a14e8384ccf48371d6a3f6f962">handle_configure_request</a> (void *prophs, xcb_connection_t *conn, xcb_configure_request_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configure requests are received when the application wants to resize windows on their own.  <a href="#abef279a14e8384ccf48371d6a3f6f962"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#af9fc851cafbabe50fa229f4bfb5f0d22">handle_unmap_notify_event</a> (void *data, xcb_connection_t *conn, xcb_unmap_notify_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Our window decorations were unmapped.  <a href="#af9fc851cafbabe50fa229f4bfb5f0d22"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a8c3b4a8b74d993af20e5078e4a20efed">handle_destroy_notify_event</a> (void *data, xcb_connection_t *conn, xcb_destroy_notify_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A destroy notify event is sent when the window is not unmapped, but immediately destroyed (for example when starting a window and immediately killing the program which started it).  <a href="#a8c3b4a8b74d993af20e5078e4a20efed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a763f921cc825269f3034ac3237f911f2">handle_windowname_change</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *prop)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called when a window changes its title.  <a href="#a763f921cc825269f3034ac3237f911f2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ac3e59ebb6684722fada02f66582a1787">handle_windowname_change_legacy</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *prop)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We handle legacy window names (titles) which are in COMPOUND_TEXT encoding.  <a href="#ac3e59ebb6684722fada02f66582a1787"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a3fdeb5f8c0fbef80784d1d62e4653ed9">handle_windowclass_change</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *prop)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Store the window classes for jumping to them later.  <a href="#a3fdeb5f8c0fbef80784d1d62e4653ed9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#aef74cebc820b8224d196fa6eb9c13ac4">handle_expose_event</a> (void *data, xcb_connection_t *conn, xcb_expose_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Expose event means we should redraw our windows (= title bar).  <a href="#aef74cebc820b8224d196fa6eb9c13ac4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#aa3ab831816987a97999392d7b54e4aee">handle_client_message</a> (void *data, xcb_connection_t *conn, xcb_client_message_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handle client messages (EWMH).  <a href="#aa3ab831816987a97999392d7b54e4aee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a9f7d547fc847e3dc11747b7d04077c46">handle_window_type</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *property)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handles _NET_WM_WINDOW_TYPE changes.  <a href="#a9f7d547fc847e3dc11747b7d04077c46"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a37b6d4793feaffd6a4a25db3416c0d3f">handle_normal_hints</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *reply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handles the size hints set by a window, but currently only the part necessary for displaying clients proportionally inside their frames (mplayer for example).  <a href="#a37b6d4793feaffd6a4a25db3416c0d3f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a875fb3362eee6f327b57a6033ed29a51">handle_hints</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *reply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handles the WM_HINTS property for extracting the urgency state of the window.  <a href="#a875fb3362eee6f327b57a6033ed29a51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a770ba9d5b30d95d843fe637e2b3910eb">handle_transient_for</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *reply)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handles the transient for hints set by a window, signalizing that this window is a popup window for some other window.  <a href="#a770ba9d5b30d95d843fe637e2b3910eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a3651e94bba743f088fd461a90892ff2f">handle_clientleader_change</a> (void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *prop)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handles changes of the WM_CLIENT_LEADER atom which specifies if this is a toolwindow (or similar) and to which window it belongs (logical parent).  <a href="#a3651e94bba743f088fd461a90892ff2f"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ac97f2eddd5082f584d9370459628f503"></a><!-- doxytag: member="handlers.h::handle_button_press" ref="ac97f2eddd5082f584d9370459628f503" args="(void *ignored, xcb_connection_t *conn, xcb_button_press_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_button_press </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ignored</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_button_press_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if the button press was on a stack window, handles focus setting and returns true if so, or false otherwise. </p>

<p>Definition at line <a class="el" href="a00059_source.html#l00255">255</a> of file <a class="el" href="a00059_source.html">click.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00068">BIND_SHIFT</a>, <a class="el" href="a00059_source.html#l00128">button_press_bar()</a>, <a class="el" href="a00059_source.html#l00060">button_press_stackwin()</a>, <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00077_source.html#l00041">by_parent</a>, <a class="el" href="a00076_source.html#l00245">cell_exists()</a>, <a class="el" href="a00036_source.html#l00364">Client::child_rect</a>, <a class="el" href="a00060_source.html#l00339">client_is_floating()</a>, <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#l00353">Client::container</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00431">Client::dock</a>, <a class="el" href="a00066_source.html#l00234">floating_border_click()</a>, <a class="el" href="a00066_source.html#l00279">floating_drag_window()</a>, <a class="el" href="a00059_source.html#l00187">floating_mod_on_tiled_client()</a>, <a class="el" href="a00034_source.html#l00111">Config::floating_modifier</a>, <a class="el" href="a00066_source.html#l00350">floating_resize_window()</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="a00036_source.html#l00411">Client::fullscreen</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="a00049_source.html#l00017">O_HORIZONTAL</a>, <a class="el" href="a00049_source.html#l00017">O_VERTICAL</a>, <a class="el" href="a00036_source.html#l00359">Client::rect</a>, <a class="el" href="a00074_source.html#l00076">resize_graphical_handler()</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="a00077_source.html#l00232">set_focus()</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, <a class="el" href="a00036_source.html#l00488">Container::workspace</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, <a class="el" href="a00079_source.html#l00259">xcb_raise_window()</a>, and <a class="el" href="a00036_source.html#l00098">Rect::y</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="aa3ab831816987a97999392d7b54e4aee"></a><!-- doxytag: member="handlers.h::handle_client_message" ref="aa3ab831816987a97999392d7b54e4aee" args="(void *data, xcb_connection_t *conn, xcb_client_message_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_client_message </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_client_message_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handle client messages (EWMH). </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00840">840</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00054_source.html#l00051">_NET_WM_STATE</a>, <a class="el" href="a00054_source.html#l00017">_NET_WM_STATE_ADD</a>, <a class="el" href="a00054_source.html#l00050">_NET_WM_STATE_FULLSCREEN</a>, <a class="el" href="a00054_source.html#l00016">_NET_WM_STATE_REMOVE</a>, <a class="el" href="a00054_source.html#l00018">_NET_WM_STATE_TOGGLE</a>, <a class="el" href="a00071_source.html#l00083">atoms</a>, <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00060_source.html#l00281">client_toggle_fullscreen()</a>, <a class="el" href="a00044_source.html#l00020">ELOG</a>, <a class="el" href="a00036_source.html#l00411">Client::fullscreen</a>, and <a class="el" href="a00077_source.html#l00114">table_get()</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="a3651e94bba743f088fd461a90892ff2f"></a><!-- doxytag: member="handlers.h::handle_clientleader_change" ref="a3651e94bba743f088fd461a90892ff2f" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *prop)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_clientleader_change </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>prop</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handles changes of the WM_CLIENT_LEADER atom which specifies if this is a toolwindow (or similar) and to which window it belongs (logical parent). </p>

<p>Definition at line <a class="el" href="a00067_source.html#l01076">1076</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00408">Client::leader</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, and <a class="el" href="a00054_source.html#l00064">WM_CLIENT_LEADER</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>, and <a class="el" href="a00072_source.html#l00151">reparent_window()</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="aa17e023a1acbf56eb18628e82c8ed55e"></a><!-- doxytag: member="handlers.h::handle_configure_event" ref="aa17e023a1acbf56eb18628e82c8ed55e" args="(void *prophs, xcb_connection_t *conn, xcb_configure_notify_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_configure_event </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>prophs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_configure_notify_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Configuration notifies are only handled because we need to set up ignore for the following enter notify events. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00431">431</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

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

</div>
</div>
<a class="anchor" id="abef279a14e8384ccf48371d6a3f6f962"></a><!-- doxytag: member="handlers.h::handle_configure_request" ref="abef279a14e8384ccf48371d6a3f6f962" args="(void *prophs, xcb_connection_t *conn, xcb_configure_request_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_configure_request </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>prophs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_configure_request_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Configure requests are received when the application wants to resize windows on their own. </p>
<p>We generate a synthethic configure notify event to signalize the client its "new" position. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00292">292</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00427">Client::borderless</a>, <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00076_source.html#l00036">c_ws</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="a00036_source.html#l00353">Client::container</a>, <a class="el" href="a00067.html#a91bd15dcdcdde1b9b0e46e9ed5a51178">COPY_MASK_MEMBER</a>, <a class="el" href="a00036_source.html#l00384">Client::desired_height</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00431">Client::dock</a>, <a class="el" href="a00079_source.html#l00190">fake_absolute_configure_notify()</a>, <a class="el" href="a00079_source.html#l00165">fake_configure_notify()</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00036_source.html#l00411">Client::fullscreen</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="a00054.html#a50c1fc0de5343536d542c8349ab7ab0d">load_font()</a>, <a class="el" href="a00013.html#ac094306ab77e360742aba04d7cbd0fe6">Container::mode</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="a00036_source.html#l00199">Workspace::rect</a>, <a class="el" href="a00069_source.html#l00680">render_workspace()</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="a00077_source.html#l00114">table_get()</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#l00488">Container::workspace</a>, <a class="el" href="a00036_source.html#l00356">Client::workspace</a>, <a class="el" href="a00036_source.html#l00097">Rect::x</a>, <a class="el" href="a00036_source.html#l00098">Rect::y</a>, and <a class="el" href="a00068_source.html#l00041">y</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="a8c3b4a8b74d993af20e5078e4a20efed"></a><!-- doxytag: member="handlers.h::handle_destroy_notify_event" ref="a8c3b4a8b74d993af20e5078e4a20efed" args="(void *data, xcb_connection_t *conn, xcb_destroy_notify_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_destroy_notify_event </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_destroy_notify_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A destroy notify event is sent when the window is not unmapped, but immediately destroyed (for example when starting a window and immediately killing the program which started it). </p>
<p>We just pass on the event to the unmap notify handler (by copying the important fields in the event data structure). </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00588">588</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, and <a class="el" href="a00067_source.html#l00460">handle_unmap_notify_event()</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="ade0bc204de173bdbeacb7b10b5631aec"></a><!-- doxytag: member="handlers.h::handle_enter_notify" ref="ade0bc204de173bdbeacb7b10b5631aec" args="(void *ignored, xcb_connection_t *conn, xcb_enter_notify_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_enter_notify </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ignored</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_enter_notify_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>When the user moves the mouse pointer onto a window, this callback gets called. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00173">173</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00077_source.html#l00041">by_parent</a>, <a class="el" href="a00076_source.html#l00036">c_ws</a>, <a class="el" href="a00067_source.html#l00133">check_crossing_screen_boundary()</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="a00036_source.html#l00149">Stack_Window::container</a>, <a class="el" href="a00036_source.html#l00469">Container::currently_focused</a>, <a class="el" href="a00034_source.html#l00099">Config::disable_focus_follows_mouse</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00067_source.html#l00062">event_is_ignored()</a>, <a class="el" href="a00013.html#ac094306ab77e360742aba04d7cbd0fe6">Container::mode</a>, <a class="el" href="a00036_source.html#l00239">Workspace::output</a>, <a class="el" href="a00077_source.html#l00232">set_focus()</a>, <a class="el" href="a00047_source.html#l00115">SLIST_FOREACH</a>, <a class="el" href="a00071_source.html#l00078">stack_wins</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00036_source.html#l00144">Stack_Window::window</a>, and <a class="el" href="a00036_source.html#l00356">Client::workspace</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="aef74cebc820b8224d196fa6eb9c13ac4"></a><!-- doxytag: member="handlers.h::handle_expose_event" ref="aef74cebc820b8224d196fa6eb9c13ac4" args="(void *data, xcb_connection_t *conn, xcb_expose_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_expose_event </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_expose_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Expose event means we should redraw our windows (= title bar). </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00770">770</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00034_source.html#l00050">Colortriple::background</a>, <a class="el" href="a00036_source.html#l00534">xoutput::bar</a>, <a class="el" href="a00036_source.html#l00427">Client::borderless</a>, <a class="el" href="a00077_source.html#l00041">by_parent</a>, <a class="el" href="a00010.html#a2cfc8e52ae874b8a76b8103b8da7b520">Config::client</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="a00036_source.html#l00149">Stack_Window::container</a>, <a class="el" href="a00063_source.html#l00023">container_mode()</a>, <a class="el" href="a00051_source.html#l00021">CUR_CELL</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="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="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="a00073_source.html#l00047">outputs</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="a00069_source.html#l00771">render_layout()</a>, <a class="el" href="a00047_source.html#l00115">SLIST_FOREACH</a>, <a class="el" href="a00071_source.html#l00078">stack_wins</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</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#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#l00144">Stack_Window::window</a>, and <a class="el" href="a00079_source.html#l00133">xcb_change_gc_single()</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>, and <a class="el" href="a00069_source.html#l00248">resize_client()</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="a875fb3362eee6f327b57a6033ed29a51"></a><!-- doxytag: member="handlers.h::handle_hints" ref="a875fb3362eee6f327b57a6033ed29a51" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *reply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_hints </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>reply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handles the WM_HINTS property for extracting the urgency state of the window. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00994">994</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00076_source.html#l00036">c_ws</a>, <a class="el" href="a00036_source.html#l00452">Client::child</a>, <a class="el" href="a00032_source.html#l00151">CLIENT_LOG</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="a00044_source.html#l00019">LOG</a>, <a class="el" href="a00036_source.html#l00239">Workspace::output</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="a00047_source.html#l00110">SLIST_FIRST</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00036_source.html#l00434">Client::urgent</a>, <a class="el" href="a00036_source.html#l00356">Client::workspace</a>, <a class="el" href="a00078_source.html#l00105">workspace_is_visible()</a>, and <a class="el" href="a00078_source.html#l00431">workspace_update_urgent_flag()</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="abcdedd21ed4dd7e762b2fb2ac49b6527"></a><!-- doxytag: member="handlers.h::handle_key_press" ref="abcdedd21ed4dd7e762b2fb2ac49b6527" args="(void *ignored, xcb_connection_t *conn, xcb_key_press_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_key_press </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ignored</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_key_press_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>There was a key press. </p>
<p>We compare this key code with our bindings table and pass the bound action to <a class="el" href="a00061.html#a321767a534b7214d81f4cfeaa4bd0736" title="Parses a command, see file CMDMODE for more information.">parse_command()</a>. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00090">90</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00075">BIND_MODE_SWITCH</a>, <a class="el" href="a00036_source.html#l00283">Binding::command</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="a00062_source.html#l00109">get_binding()</a>, <a class="el" href="a00061_source.html#l00950">parse_command()</a>, <a class="el" href="a00054.html#ac430ae06cbf6f5ef252c9ebfca47e644">xcb_numlock_mask</a>, and <a class="el" href="a00071_source.html#l00056">xkb_current_group</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="ae301f3f0db441a1c22a39e88989a96c3"></a><!-- doxytag: member="handlers.h::handle_map_request" ref="ae301f3f0db441a1c22a39e88989a96c3" args="(void *prophs, xcb_connection_t *conn, xcb_map_request_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_map_request </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>prophs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_map_request_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A new window appeared on the screen (=was mapped), so let’s manage it. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00274">274</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, and <a class="el" href="a00072_source.html#l00092">manage_window()</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="a2ca89397c76485894e1de2fcb65ec697"></a><!-- doxytag: member="handlers.h::handle_mapping_notify" ref="a2ca89397c76485894e1de2fcb65ec697" args="(void *ignored, xcb_connection_t *conn, xcb_mapping_notify_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_mapping_notify </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ignored</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_mapping_notify_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called when the keyboard mapping changes (for example by using Xmodmap), we need to update our key bindings then (re-translate symbols). </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00253">253</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00062_source.html#l00188">grab_all_keys()</a>, <a class="el" href="a00071_source.html#l00066">keysyms</a>, <a class="el" href="a00062_source.html#l00138">translate_keysyms()</a>, <a class="el" href="a00062_source.html#l00080">ungrab_all_keys()</a>, and <a class="el" href="a00079_source.html#l00205">xcb_get_numlock_mask()</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="a23c1d18838f1993a18c1bd891a0fcd3e"></a><!-- doxytag: member="handlers.h::handle_motion_notify" ref="a23c1d18838f1993a18c1bd891a0fcd3e" args="(void *ignored, xcb_connection_t *conn, xcb_motion_notify_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_motion_notify </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>ignored</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_motion_notify_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>When the user moves the mouse but does not change the active window (e.g. </p>
<p>when having no windows opened but moving mouse on the root screen and crossing virtual screen boundaries), this callback gets called. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00237">237</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00067_source.html#l00133">check_crossing_screen_boundary()</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="a37b6d4793feaffd6a4a25db3416c0d3f"></a><!-- doxytag: member="handlers.h::handle_normal_hints" ref="a37b6d4793feaffd6a4a25db3416c0d3f" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *reply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_normal_hints </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>reply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handles the size hints set by a window, but currently only the part necessary for displaying clients proportionally inside their frames (mplayer for example). </p>
<p>See ICCCM 4.1.2.3 for more details </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00880">880</a> of file <a class="el" href="a00067_source.html">handlers.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="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00036_source.html#l00452">Client::child</a>, <a class="el" href="a00032_source.html#l00151">CLIENT_LOG</a>, <a class="el" href="a00036_source.html#l00353">Client::container</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00440">Client::force_reconfigure</a>, <a class="el" href="a00036_source.html#l00411">Client::fullscreen</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="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="a00069_source.html#l00348">render_container()</a>, <a class="el" href="a00069_source.html#l00248">resize_client()</a>, <a class="el" href="a00077_source.html#l00114">table_get()</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#l00356">Client::workspace</a>, and <a class="el" href="a00078_source.html#l00105">workspace_is_visible()</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="a38db143e8cde0e72a7fe1aa1a9412c0e"></a><!-- doxytag: member="handlers.h::handle_screen_change" ref="a38db143e8cde0e72a7fe1aa1a9412c0e" args="(void *prophs, xcb_connection_t *conn, xcb_generic_event_t *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_screen_change </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>prophs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_generic_event_t *&nbsp;</td>
          <td class="paramname"> <em>e</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 triggered upon a RandR screen change event, that is when the user changes the screen configuration in any way (mode, position, …). </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00444">444</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00068_source.html#l00121">ipc_send_event()</a>, and <a class="el" href="a00073_source.html#l00387">randr_query_outputs()</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="a770ba9d5b30d95d843fe637e2b3910eb"></a><!-- doxytag: member="handlers.h::handle_transient_for" ref="a770ba9d5b30d95d843fe637e2b3910eb" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t name, xcb_get_property_reply_t *reply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_transient_for </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>reply</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handles the transient for hints set by a window, signalizing that this window is a popup window for some other window. </p>
<p>See ICCCM 4.1.2.6 for more details </p>

<p>Definition at line <a class="el" href="a00067_source.html#l01044">1044</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00007.html#ad5e886955e668cc51fbb17acb2871cea">Client::floating</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, and <a class="el" href="a00066_source.html#l00041">toggle_floating_mode()</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="af9fc851cafbabe50fa229f4bfb5f0d22"></a><!-- doxytag: member="handlers.h::handle_unmap_notify_event" ref="af9fc851cafbabe50fa229f4bfb5f0d22" args="(void *data, xcb_connection_t *conn, xcb_unmap_notify_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_unmap_notify_event </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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_unmap_notify_event_t *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Our window decorations were unmapped. </p>
<p>That means, the window will be killed now, so we better clean up before. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00460">460</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00036_source.html#l00445">Client::awaiting_useless_unmap</a>, <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00077_source.html#l00041">by_parent</a>, <a class="el" href="a00076_source.html#l00036">c_ws</a>, <a class="el" href="a00036_source.html#l00452">Client::child</a>, <a class="el" href="a00076_source.html#l00319">cleanup_table()</a>, <a class="el" href="a00060_source.html#l00339">client_is_floating()</a>, <a class="el" href="a00060_source.html#l00038">client_remove_from_container()</a>, <a class="el" href="a00060_source.html#l00402">client_unmap()</a>, <a class="el" href="a00036_source.html#l00353">Client::container</a>, <a class="el" href="a00051_source.html#l00021">CUR_CELL</a>, <a class="el" href="a00036_source.html#l00469">Container::currently_focused</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00431">Client::dock</a>, <a class="el" href="a00076_source.html#l00384">fix_colrowspan()</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00052_source.html#l00029">FREE</a>, <a class="el" href="a00036_source.html#l00411">Client::fullscreen</a>, <a class="el" href="a00036_source.html#l00226">Workspace::fullscreen_client</a>, <a class="el" href="a00077_source.html#l00217">get_last_focused_client()</a>, <a class="el" href="a00068_source.html#l00121">ipc_send_event()</a>, <a class="el" href="a00036_source.html#l00387">Client::name</a>, <a class="el" href="a00036_source.html#l00239">Workspace::output</a>, <a class="el" href="a00069_source.html#l00771">render_layout()</a>, <a class="el" href="a00071_source.html#l00085">root</a>, <a class="el" href="a00077_source.html#l00232">set_focus()</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#l00150">SLIST_REMOVE</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00077_source.html#l00100">table_remove()</a>, <a class="el" href="a00047_source.html#l00335">TAILQ_FOREACH</a>, <a class="el" href="a00047_source.html#l00387">TAILQ_REMOVE</a>, <a class="el" href="a00036_source.html#l00434">Client::urgent</a>, <a class="el" href="a00036_source.html#l00401">Client::window_class_class</a>, <a class="el" href="a00036_source.html#l00400">Client::window_class_instance</a>, <a class="el" href="a00036_source.html#l00488">Container::workspace</a>, <a class="el" href="a00036_source.html#l00356">Client::workspace</a>, <a class="el" href="a00078_source.html#l00105">workspace_is_visible()</a>, <a class="el" href="a00078_source.html#l00431">workspace_update_urgent_flag()</a>, and <a class="el" href="a00076_source.html#l00034">workspaces</a>.</p>

<p>Referenced by <a class="el" href="a00067_source.html#l00588">handle_destroy_notify_event()</a>, and <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="a9f7d547fc847e3dc11747b7d04077c46"></a><!-- doxytag: member="handlers.h::handle_window_type" ref="a9f7d547fc847e3dc11747b7d04077c46" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *property)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_window_type </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>atom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>property</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handles _NET_WM_WINDOW_TYPE changes. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00865">865</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00044_source.html#l00020">ELOG</a>.</p>

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

</div>
</div>
<a class="anchor" id="a3fdeb5f8c0fbef80784d1d62e4653ed9"></a><!-- doxytag: member="handlers.h::handle_windowclass_change" ref="a3fdeb5f8c0fbef80784d1d62e4653ed9" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *prop)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_windowclass_change </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>atom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>prop</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Store the window classes for jumping to them later. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00738">738</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00042">by_child</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00052_source.html#l00029">FREE</a>, <a class="el" href="a00044_source.html#l00019">LOG</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00036_source.html#l00401">Client::window_class_class</a>, and <a class="el" href="a00036_source.html#l00400">Client::window_class_instance</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>, and <a class="el" href="a00072_source.html#l00151">reparent_window()</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="a763f921cc825269f3034ac3237f911f2"></a><!-- doxytag: member="handlers.h::handle_windowname_change" ref="a763f921cc825269f3034ac3237f911f2" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *prop)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_windowname_change </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>atom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>prop</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called when a window changes its title. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00603">603</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00042">by_child</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="a00077_source.html#l00175">convert_utf8_to_ucs2()</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="a00036_source.html#l00431">Client::dock</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00052_source.html#l00029">FREE</a>, <a class="el" href="a00044_source.html#l00019">LOG</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="a00069_source.html#l00348">render_container()</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00036_source.html#l00450">Client::titlegc</a>, <a class="el" href="a00036_source.html#l00396">Client::uses_net_wm_name</a>, <a class="el" href="a00036_source.html#l00356">Client::workspace</a>, and <a class="el" href="a00078_source.html#l00105">workspace_is_visible()</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>, and <a class="el" href="a00072_source.html#l00151">reparent_window()</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="ac3e59ebb6684722fada02f66582a1787"></a><!-- doxytag: member="handlers.h::handle_windowname_change_legacy" ref="ac3e59ebb6684722fada02f66582a1787" args="(void *data, xcb_connection_t *conn, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *prop)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int handle_windowname_change_legacy </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">uint8_t&nbsp;</td>
          <td class="paramname"> <em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_window_t&nbsp;</td>
          <td class="paramname"> <em>window</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_atom_t&nbsp;</td>
          <td class="paramname"> <em>atom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">xcb_get_property_reply_t *&nbsp;</td>
          <td class="paramname"> <em>prop</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 handle legacy window names (titles) which are in COMPOUND_TEXT encoding. </p>
<p>However, we just pass them along, so when containing non-ASCII characters, those will be rendering incorrectly. In order to correctly render unicode window titles in i3, an application has to set _NET_WM_NAME, which is in UTF-8 encoding.</p>
<p>On every update, a message is put out to the user, so he may improve the situation and update applications which display filenames in their title to correctly use _NET_WM_NAME and therefore support unicode. </p>

<p>Definition at line <a class="el" href="a00067_source.html#l00675">675</a> of file <a class="el" href="a00067_source.html">handlers.c</a>.</p>

<p>References <a class="el" href="a00077_source.html#l00042">by_child</a>, <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="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00036_source.html#l00431">Client::dock</a>, <a class="el" href="a00036_source.html#l00448">Client::frame</a>, <a class="el" href="a00044_source.html#l00019">LOG</a>, <a class="el" href="a00013.html#ac094306ab77e360742aba04d7cbd0fe6">Container::mode</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="a00069_source.html#l00348">render_container()</a>, <a class="el" href="a00077_source.html#l00114">table_get()</a>, <a class="el" href="a00036_source.html#l00450">Client::titlegc</a>, <a class="el" href="a00036_source.html#l00396">Client::uses_net_wm_name</a>, <a class="el" href="a00036_source.html#l00356">Client::workspace</a>, and <a class="el" href="a00078_source.html#l00105">workspace_is_visible()</a>.</p>

<p>Referenced by <a class="el" href="a00071_source.html#l00193">main()</a>, and <a class="el" href="a00072_source.html#l00151">reparent_window()</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>