<!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/click.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 Page</span></a></li> <li><a href="annotated.html"><span>Data 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 List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="contents"> <h1>src/click.c File Reference</h1><code>#include <stdio.h></code><br/> <code>#include <assert.h></code><br/> <code>#include <string.h></code><br/> <code>#include <stdlib.h></code><br/> <code>#include <time.h></code><br/> <code>#include <stdbool.h></code><br/> <code>#include <math.h></code><br/> <code>#include <xcb/xcb.h></code><br/> <code>#include <xcb/xcb_atom.h></code><br/> <code>#include <xcb/xcb_icccm.h></code><br/> <code>#include <X11/XKBlib.h></code><br/> <code>#include "<a class="el" href="a00041_source.html">i3.h</a>"</code><br/> <code>#include "<a class="el" href="a00047_source.html">queue.h</a>"</code><br/> <code>#include "<a class="el" href="a00051_source.html">table.h</a>"</code><br/> <code>#include "<a class="el" href="a00034_source.html">config.h</a>"</code><br/> <code>#include "<a class="el" href="a00052_source.html">util.h</a>"</code><br/> <code>#include "<a class="el" href="a00054_source.html">xcb.h</a>"</code><br/> <code>#include "<a class="el" href="a00032_source.html">client.h</a>"</code><br/> <code>#include "<a class="el" href="a00053_source.html">workspace.h</a>"</code><br/> <code>#include "<a class="el" href="a00033_source.html">commands.h</a>"</code><br/> <code>#include "<a class="el" href="a00039_source.html">floating.h</a>"</code><br/> <code>#include "<a class="el" href="a00049_source.html">resize.h</a>"</code><br/> <code>#include "<a class="el" href="a00044_source.html">log.h</a>"</code><br/> <code>#include "<a class="el" href="a00048_source.html">randr.h</a>"</code><br/> <div class="dynheader"> Include dependency graph for click.c:</div> <div class="dynsection"> </div> <p><a href="a00059_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">static struct <a class="el" href="a00023.html">Stack_Window</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html#a50998b0795a55494eee733fb83743161">get_stack_window</a> (xcb_window_t window_id)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html#a2d18c18dfda759f1c2c3abf2819e9bc8">button_press_stackwin</a> (xcb_connection_t *conn, xcb_button_press_event_t *event)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html#aae48d4ad42c0215fd08b8b0df6924097">button_press_bar</a> (xcb_connection_t *conn, xcb_button_press_event_t *event)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html#aaecf36bc71be706314569ed075f6ed50">floating_mod_on_tiled_client</a> (xcb_connection_t *conn, <a class="el" href="a00007.html">Client</a> *client, xcb_button_press_event_t *event)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html#ac97f2eddd5082f584d9370459628f503">handle_button_press</a> (void *ignored, xcb_connection_t *conn, xcb_button_press_event_t *event)</td></tr> <tr><td class="mdescLeft"> </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> </table> <hr/><h2>Function Documentation</h2> <a class="anchor" id="aae48d4ad42c0215fd08b8b0df6924097"></a><!-- doxytag: member="click.c::button_press_bar" ref="aae48d4ad42c0215fd08b8b0df6924097" args="(xcb_connection_t *conn, xcb_button_press_event_t *event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool button_press_bar </td> <td>(</td> <td class="paramtype">xcb_connection_t * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">xcb_button_press_event_t * </td> <td class="paramname"> <em>event</em></td><td> </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="a00059_source.html#l00128">128</a> of file <a class="el" href="a00059_source.html">click.c</a>.</p> <p>References <a class="el" href="a00036_source.html#l00534">xoutput::bar</a>, <a class="el" href="a00076_source.html#l00036">c_ws</a>, <a class="el" href="a00044_source.html#l00021">DLOG</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="a00073_source.html#l00047">outputs</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="a00047_source.html#l00330">TAILQ_PREV</a>, <a class="el" href="a00036_source.html#l00196">Workspace::text_width</a>, <a class="el" href="a00078_source.html#l00113">workspace_show()</a>, and <a class="el" href="a00076_source.html#l00034">workspaces</a>.</p> <p>Referenced by <a class="el" href="a00059_source.html#l00255">handle_button_press()</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="a2d18c18dfda759f1c2c3abf2819e9bc8"></a><!-- doxytag: member="click.c::button_press_stackwin" ref="a2d18c18dfda759f1c2c3abf2819e9bc8" args="(xcb_connection_t *conn, xcb_button_press_event_t *event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool button_press_stackwin </td> <td>(</td> <td class="paramtype">xcb_connection_t * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">xcb_button_press_event_t * </td> <td class="paramname"> <em>event</em></td><td> </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="a00059_source.html#l00060">60</a> of file <a class="el" href="a00059_source.html">click.c</a>.</p> <p>References <a class="el" href="a00047_source.html#l00439">CIRCLEQ_FOREACH</a>, <a class="el" href="a00062_source.html#l00037">config</a>, <a class="el" href="a00036_source.html#l00149">Stack_Window::container</a>, <a class="el" href="a00051_source.html#l00021">CUR_CELL</a>, <a class="el" href="a00036_source.html#l00064">D_DOWN</a>, <a class="el" href="a00036_source.html#l00064">D_UP</a>, <a class="el" href="a00044_source.html#l00021">DLOG</a>, <a class="el" href="a00061_source.html#l00038">focus_window_in_container()</a>, <a class="el" href="a00034_source.html#l00087">Config::font</a>, <a class="el" href="a00059_source.html#l00042">get_stack_window()</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#l00146">Stack_Window::rect</a>, <a class="el" href="a00077_source.html#l00232">set_focus()</a>, <a class="el" href="a00013.html#a8d99003f0507fe6554189568f84505be">Container::stack_limit</a>, <a class="el" href="a00036_source.html#l00500">Container::stack_limit_value</a>, <a class="el" href="a00036_source.html#l00099">Rect::width</a>, and <a class="el" href="a00036_source.html#l00480">Container::width</a>.</p> <p>Referenced by <a class="el" href="a00059_source.html#l00255">handle_button_press()</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="aaecf36bc71be706314569ed075f6ed50"></a><!-- doxytag: member="click.c::floating_mod_on_tiled_client" ref="aaecf36bc71be706314569ed075f6ed50" args="(xcb_connection_t *conn, Client *client, xcb_button_press_event_t *event)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool floating_mod_on_tiled_client </td> <td>(</td> <td class="paramtype">xcb_connection_t * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00007.html">Client</a> * </td> <td class="paramname"> <em>client</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">xcb_button_press_event_t * </td> <td class="paramname"> <em>event</em></td><td> </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="a00059_source.html#l00187">187</a> of file <a class="el" href="a00059_source.html">click.c</a>.</p> <p>References <a class="el" href="a00076_source.html#l00245">cell_exists()</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="a00036_source.html#l00353">Client::container</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="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="a00036_source.html#l00099">Rect::width</a>, and <a class="el" href="a00036_source.html#l00488">Container::workspace</a>.</p> <p>Referenced by <a class="el" href="a00059_source.html#l00255">handle_button_press()</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="a50998b0795a55494eee733fb83743161"></a><!-- doxytag: member="click.c::get_stack_window" ref="a50998b0795a55494eee733fb83743161" args="(xcb_window_t window_id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static struct <a class="el" href="a00023.html">Stack_Window</a>* get_stack_window </td> <td>(</td> <td class="paramtype">xcb_window_t </td> <td class="paramname"> <em>window_id</em></td> <td> ) </td> <td><code> [static, read]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="a00059_source.html#l00042">42</a> of file <a class="el" href="a00059_source.html">click.c</a>.</p> <p>References <a class="el" href="a00047_source.html#l00115">SLIST_FOREACH</a>, <a class="el" href="a00071_source.html#l00078">stack_wins</a>, and <a class="el" href="a00036_source.html#l00144">Stack_Window::window</a>.</p> <p>Referenced by <a class="el" href="a00059_source.html#l00060">button_press_stackwin()</a>.</p> </div> </div> <a class="anchor" id="ac97f2eddd5082f584d9370459628f503"></a><!-- doxytag: member="click.c::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 * </td> <td class="paramname"> <em>ignored</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">xcb_connection_t * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">xcb_button_press_event_t * </td> <td class="paramname"> <em>event</em></td><td> </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> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <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>