<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>mouse y and line y not aligned when ALLEGRO_MENU displayted</title>
		<link>http://www.allegro.cc/forums/view/617007</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 18 Aug 2017 12:14:35 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So I have an editor I&#39;ve been working on for a project.</p><p>Basically I have a grid of 48x48 cells that I can click on with the mouse to set information for each cell. Now I decided to add an ALLEGRO_MENU since I&#39;m using Allegro 5.2 and have access to it. The problem is that when I click on a cell to add a tile it toggles the wrong cell. What it seems is that the lines are being drawn at every 48 pixels but the ev.mouse.x value is not matching to the pixel values for my lines.</p><p>Additionally this works perfectly fine when the menu is not displayed its only when the menu is displayed (effectively reducing the usable screen area) that the problem occurs.</p><p>I feel there could be something really obvious I am missing but I&#39;m not sure what it is.</p><p>Here is some of the important bits of code
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">//setting mouseX and mouseY</span>
<span class="number">  2</span><span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  mouseX <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>
<span class="number">  5</span>  mouseY <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>
<span class="number">  6</span><span class="k2">}</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="c">//adding a tile</span>
<span class="number">  9</span>addTile<span class="k2">(</span>mouseX, mouseY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="c">//getting tile values from mouse values</span>
<span class="number"> 12</span><span class="k1">int</span> tileX <span class="k3">=</span> mouseXToTileX<span class="k2">(</span>mouseX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span><span class="k1">int</span> tileY <span class="k3">=</span> mouseYToTileY<span class="k2">(</span>mouseY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="c">//mouseYToTileY (mouseY) / (16*3)</span>
<span class="number"> 17</span><span class="k1">return</span> <span class="k2">(</span>mouseY<span class="k2">)</span> <span class="k3">/</span> <span class="k2">(</span>TILE_HEIGHT<span class="k3">*</span>scaleFactor_<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>
<span class="number"> 19</span>
<span class="number"> 20</span>
<span class="number"> 21</span><span class="c">//draw horizontal lines</span>
<span class="number"> 22</span><span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> SCREEN_HEIGHT<span class="k2">;</span> i <span class="k3">+</span><span class="k3">=</span> TILE_HEIGHT<span class="k2">)</span>
<span class="number"> 23</span><span class="k2">{</span>
<span class="number"> 24</span><span class="k1">float</span> y <span class="k3">=</span> i<span class="k3">*</span>scaleFactor_<span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span><span class="c">//wordWidth_ = 160*2*3</span>
<span class="number"> 27</span><span class="c">//scaleFactor_ = 3</span>
<span class="number"> 28</span><span class="c">//MODE0_X_SCALE = 2</span>
<span class="number"> 29</span><span class="c">//SCREEN_HEIGHT = 200</span>
<span class="number"> 30</span><span class="c">//looks like x2 is way to big but I don't think thats a cause of my issue</span>
<span class="number"> 31</span><a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span><span class="n">0</span>, y, worldWidth_<span class="k3">*</span>scaleFactor_<span class="k3">*</span>MODE0_X_SCALE, y, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span><span class="k2">}</span>
</div></div><p>


As an edit I have produced the same behaviour with a subset of the code.<br />This should make it clearer what I am trying to do and what I might be doing wrong.<br />This was compiled with Visual Studio 2015 on Windows.
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">   5</span>
<span class="number">   6</span><span class="k1">const</span> <span class="k1">int</span> WIDTH_ <span class="k3">=</span> <span class="n">800</span><span class="k2">;</span>
<span class="number">   7</span><span class="k1">const</span> <span class="k1">int</span> HEIGHT_ <span class="k3">=</span> <span class="n">600</span><span class="k2">;</span>
<span class="number">   8</span><span class="k1">const</span> <span class="k1">int</span> TILE_SIZE_ <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>
<span class="number">   9</span><span class="k1">const</span> <span class="k1">int</span> CELLS_X_ <span class="k3">=</span> WIDTH_ <span class="k3">/</span> TILE_SIZE_<span class="k2">;</span>
<span class="number">  10</span><span class="k1">const</span> <span class="k1">int</span> CELLS_Y_ <span class="k3">=</span> HEIGHT_ <span class="k3">/</span> TILE_SIZE_<span class="k2">;</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="k1">char</span> grid_<span class="k2">[</span>CELLS_X_<span class="k2">]</span><span class="k2">[</span>CELLS_Y_<span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> <span class="k2">{</span><span class="n">0</span><span class="k2">}</span> <span class="k2">}</span><span class="k2">;</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">void</span> drawGridLines<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span><span class="k1">void</span> drawCells<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">const</span> <span class="k1">int</span> mousePositionToTilePosition<span class="k2">(</span><span class="k1">long</span> <span class="k1">int</span> mousePosition<span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span><span class="k1">void</span> updateCell<span class="k2">(</span><span class="k1">long</span> <span class="k1">int</span> mouseX, <span class="k1">long</span> <span class="k1">int</span> mouseY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>
<span class="number">  19</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  20</span><span class="k2">{</span>
<span class="number">  21</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  22</span>  <span class="k2">{</span>
<span class="number">  23</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"allegro init failed"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  25</span>  <span class="k2">}</span>
<span class="number">  26</span>
<span class="number">  27</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>WIDTH_, HEIGHT_<span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span>
<span class="number">  29</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  30</span>  <span class="k2">{</span>
<span class="number">  31</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"create display failed"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">2</span><span class="k2">;</span>
<span class="number">  33</span>  <span class="k2">}</span>
<span class="number">  34</span>
<span class="number">  35</span>  al_init_native_dialog_addon<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>  <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>  
<span class="number">  37</span>
<span class="number">  38</span>  <span class="k1">bool</span> mouseDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  39</span>  <span class="k1">bool</span> running <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  40</span>  <span class="k1">long</span> <span class="k1">int</span> mouseX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  41</span>  <span class="k1">long</span> <span class="k1">int</span> mouseY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>  ALLEGRO_MENU<span class="k3">*</span> menu <span class="k3">=</span> al_create_menu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>  al_append_menu_item<span class="k2">(</span>menu, <span class="s">"File"</span>, <span class="n">0</span>, <span class="n">0</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>  al_set_display_menu<span class="k2">(</span>display, menu<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>
<span class="number">  47</span>  <a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> eventQueue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eventQueue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eventQueue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>eventQueue, al_get_default_menu_event_source<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>
<span class="number">  53</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  54</span>  
<span class="number">  55</span>  <span class="k1">while</span> <span class="k2">(</span>running<span class="k2">)</span>
<span class="number">  56</span>  <span class="k2">{</span>
<span class="number">  57</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>eventQueue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  58</span>
<span class="number">  59</span>    <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number">  60</span>    <span class="k2">{</span>
<span class="number">  61</span>      running <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  62</span>    <span class="k2">}</span>
<span class="number">  63</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number">  64</span>    <span class="k2">{</span>
<span class="number">  65</span>      mouseDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  66</span>    <span class="k2">}</span>
<span class="number">  67</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_UP<span class="k2">)</span>
<span class="number">  68</span>    <span class="k2">{</span>
<span class="number">  69</span>      mouseDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  70</span>    <span class="k2">}</span>
<span class="number">  71</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number">  72</span>    <span class="k2">{</span>
<span class="number">  73</span>      mouseX <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>
<span class="number">  74</span>      mouseY <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>      
<span class="number">  75</span>    <span class="k2">}</span>
<span class="number">  76</span>
<span class="number">  77</span>    <span class="k1">if</span> <span class="k2">(</span>mouseDown<span class="k2">)</span>
<span class="number">  78</span>    <span class="k2">{</span>
<span class="number">  79</span>      updateCell<span class="k2">(</span>mouseX, mouseY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>    <span class="k2">}</span>
<span class="number">  81</span>
<span class="number">  82</span>    <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>    drawCells<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>    drawGridLines<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>    
<span class="number">  85</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>  <span class="k2">}</span>
<span class="number">  87</span>
<span class="number">  88</span>  al_set_display_menu<span class="k2">(</span>display, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>  al_destroy_menu<span class="k2">(</span>menu<span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>
<span class="number">  91</span>  <a href="http://www.allegro.cc/manual/al_uninstall_mouse"><span class="a">al_uninstall_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>  
<span class="number">  92</span>  al_shutdown_native_dialog_addon<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>  <a href="http://www.allegro.cc/manual/al_shutdown_primitives_addon"><span class="a">al_shutdown_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  96</span><span class="k2">}</span>
<span class="number">  97</span>
<span class="number">  98</span><span class="k1">void</span> drawGridLines<span class="k2">(</span><span class="k2">)</span>
<span class="number">  99</span><span class="k2">{</span>
<span class="number"> 100</span>  <span class="c">//draw vertical lines</span>
<span class="number"> 101</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> WIDTH_<span class="k2">;</span> i <span class="k3">+</span><span class="k3">=</span> TILE_SIZE_<span class="k2">)</span>
<span class="number"> 102</span>  <span class="k2">{</span>
<span class="number"> 103</span>    <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>i, <span class="n">0</span>, i, HEIGHT_, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>  <span class="k2">}</span>
<span class="number"> 105</span>
<span class="number"> 106</span>  <span class="c">//draw horizontal lines</span>
<span class="number"> 107</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> HEIGHT_<span class="k2">;</span> i <span class="k3">+</span><span class="k3">=</span> TILE_SIZE_<span class="k2">)</span>
<span class="number"> 108</span>  <span class="k2">{</span>
<span class="number"> 109</span>    <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span><span class="n">0</span>, i, WIDTH_, i, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>  <span class="k2">}</span>
<span class="number"> 111</span><span class="k2">}</span>
<span class="number"> 112</span>
<span class="number"> 113</span><span class="k1">void</span> drawCells<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 114</span><span class="k2">{</span>
<span class="number"> 115</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> CELLS_X_<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span>
<span class="number"> 116</span>  <span class="k2">{</span>
<span class="number"> 117</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> CELLS_Y_<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>j<span class="k2">)</span>
<span class="number"> 118</span>    <span class="k2">{</span>
<span class="number"> 119</span>      <span class="k1">if</span> <span class="k2">(</span>grid_<span class="k2">[</span>i<span class="k2">]</span><span class="k2">[</span>j<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 120</span>      <span class="k2">{</span>
<span class="number"> 121</span>        <span class="k1">int</span> x <span class="k3">=</span> i<span class="k3">*</span>TILE_SIZE_<span class="k2">;</span>
<span class="number"> 122</span>        <span class="k1">int</span> y <span class="k3">=</span> j<span class="k3">*</span>TILE_SIZE_<span class="k2">;</span>
<span class="number"> 123</span>
<span class="number"> 124</span>        <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>x, y, x <span class="k3">+</span> TILE_SIZE_, y <span class="k3">+</span> TILE_SIZE_, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>      <span class="k2">}</span>
<span class="number"> 126</span>    <span class="k2">}</span>
<span class="number"> 127</span>  <span class="k2">}</span>
<span class="number"> 128</span><span class="k2">}</span>
<span class="number"> 129</span>
<span class="number"> 130</span><span class="k1">const</span> <span class="k1">int</span> mousePositionToTilePosition<span class="k2">(</span><span class="k1">long</span> <span class="k1">int</span> mousePosition<span class="k2">)</span>
<span class="number"> 131</span><span class="k2">{</span>
<span class="number"> 132</span>  <span class="k1">return</span> mousePosition <span class="k3">/</span> TILE_SIZE_<span class="k2">;</span>
<span class="number"> 133</span><span class="k2">}</span>
<span class="number"> 134</span>
<span class="number"> 135</span><span class="k1">void</span> updateCell<span class="k2">(</span><span class="k1">long</span> <span class="k1">int</span> mouseX, <span class="k1">long</span> <span class="k1">int</span> mouseY<span class="k2">)</span>
<span class="number"> 136</span><span class="k2">{</span>
<span class="number"> 137</span>  <span class="k1">int</span> tileX <span class="k3">=</span> mousePositionToTilePosition<span class="k2">(</span>mouseX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>  <span class="k1">int</span> tileY <span class="k3">=</span> mousePositionToTilePosition<span class="k2">(</span>mouseY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>  
<span class="number"> 140</span>  <span class="k1">int</span> value <span class="k3">=</span> grid_<span class="k2">[</span>tileX<span class="k2">]</span><span class="k2">[</span>tileY<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 141</span>
<span class="number"> 142</span>  <span class="k1">if</span> <span class="k2">(</span>value<span class="k2">)</span>
<span class="number"> 143</span>  <span class="k2">{</span>
<span class="number"> 144</span>    value <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 145</span>  <span class="k2">}</span>
<span class="number"> 146</span>  <span class="k1">else</span>
<span class="number"> 147</span>  <span class="k2">{</span>
<span class="number"> 148</span>    value <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 149</span>  <span class="k2">}</span>
<span class="number"> 150</span>
<span class="number"> 151</span>  grid_<span class="k2">[</span>tileX<span class="k2">]</span><span class="k2">[</span>tileY<span class="k2">]</span> <span class="k3">=</span> value<span class="k2">;</span>
<span class="number"> 152</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (awergh)</author>
		<pubDate>Wed, 16 Aug 2017 18:33:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try initializing your addons before creating the display.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (utz000)</author>
		<pubDate>Wed, 16 Aug 2017 19:25:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Initialising the addons before creating the display did not make any difference. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (awergh)</author>
		<pubDate>Thu, 17 Aug 2017 13:25:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Tried your second source code and it&#39;s pretty much pixel perfect under Linux X11..<br />(Apart from the half-squares at the bottom select the top ones)..</p><p>btw, why do you have variables with a trailing underscore..?! <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /></p><p>My Makefile</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>
<span class="number">  2</span>STATICLIBS<span class="k3">=</span><span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_acodec-static.a  \
<span class="number">  3</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_font-static.a    \
<span class="number">  4</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_memfile-static.a \
<span class="number">  5</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_ttf-static.a     \
<span class="number">  6</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_audio-static.a   \
<span class="number">  7</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_image-static.a   \
<span class="number">  8</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_dialog-static.a \
<span class="number">  9</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_primitives-static.a \
<span class="number"> 10</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_color-static.a   \
<span class="number"> 11</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro_main-static.a    \
<span class="number"> 12</span>           <span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>lib<span class="k3">/</span>liballegro-static.a
<span class="number"> 13</span>
<span class="number"> 14</span>DYNAMICLIBS<span class="k3">=</span><span class="k3">-</span>lfreetype <span class="k3">-</span>lpng16 <span class="k3">-</span>ljpeg <span class="k3">-</span>lGL <span class="k3">-</span>lGLU <span class="k3">-</span>lX11 <span class="k3">-</span>lXcursor <span class="k3">-</span>lXrandr <span class="k3">-</span>lgthread-2.0 <span class="k3">-</span>lXinerama <span class="k3">-</span>lXi
<span class="number"> 15</span>
<span class="number"> 16</span>test_pc: Makefile test.cc
<span class="number"> 17</span>    g<span class="k3">+</span><span class="k3">+</span> <span class="k3">-</span>Wno-write-strings <span class="k3">-</span>fpermissive <span class="k3">-</span>DINTEL <span class="k3">-</span>lgtk-x11-2.0 <span class="k3">-</span>lgdk-x11-2.0 <span class="k3">-</span>latk-1.0 \
<span class="number"> 18</span>        <span class="k3">-</span>lgio-2.0 <span class="k3">-</span>lpangoft2-1.0 <span class="k3">-</span>lpangocairo-1.0 <span class="k3">-</span>lgdk_pixbuf-2.0 <span class="k3">-</span>lm <span class="k3">-</span>lcairo \
<span class="number"> 19</span>        <span class="k3">-</span>lpango-1.0 <span class="k3">-</span>lfreetype <span class="k3">-</span>lfontconfig <span class="k3">-</span>lgobject-2.0 <span class="k3">-</span>lgmodule-2.0 
<span class="number"> 20</span>        <span class="k3">-</span>lgthread-2.0 <span class="k3">-</span>lrt <span class="k3">-</span>lglib-2.0 <span class="k3">-</span>lpthread \
<span class="number"> 21</span>        test.cc \
<span class="number"> 22</span>        <span class="k3">-</span>o test_pc \
<span class="number"> 23</span>        <span class="k3">-</span>I<span class="k3">/</span>usr<span class="k3">/</span>local<span class="k3">/</span>include<span class="k3">/</span>allegro5 \
<span class="number"> 24</span>        $<span class="k2">(</span>STATICLIBS<span class="k2">)</span> $<span class="k2">(</span>DYNAMICLIBS<span class="k2">)</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kev Callahan)</author>
		<pubDate>Thu, 17 Aug 2017 15:10:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A quick glance shows they&#39;re all globals. Not a bad idea to highlight variables that have side-effects outside your functions.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Thu, 17 Aug 2017 17:50:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I was wondering if it would be platform specific.<br />I was in the process of &quot;quickly&quot; spinning up a Debian Stretch vm so I could be lazy and just install the allegro 5.2 package (my other Debian installs are all Jessie still) but my internet being dreadful means I probably won&#39;t have it installed until tomorrow.</p><p>Thanks for the makefile.</p><p>As for the trailing underscore this is because of a particular project at uni where we had a coding standard that included using a trailing underscore for member variables.<br />I found it convenient and so it stuck however I&#39;ve never been quite sure what to do with it in my main or the top of a c/cpp file. I try to be consistent but I&#39;m not always as consistent as I should be.</p><p>Its effectively the equivalent of doing m_foo as opposed to foo_ or _foo is another option.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (awergh)</author>
		<pubDate>Thu, 17 Aug 2017 17:51:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hehe, fair enough - never seen such a convention before.<br />Being _ inconsistent is fine, that&#39;s why the words consistent_ &amp; inconsistent_ exist <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Yeah, maybe it is platform specific - the native_dialog stuff can be a bit of a <span class="cuss"><span>bitch</span></span> in my experience on different platforms.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kev Callahan)</author>
		<pubDate>Thu, 17 Aug 2017 17:57:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I also couldn&#39;t reproduce your issue on Windows. </p><p> Clicking the bottom row/right column goes out of the bounds of the array (no checks on tileX/tileY in updateCell) - I suppose just because it&#39;s test code, but it might explain Kev&#39;s observation.</p><p>If I added some submenus to that menu (see code below), then I did see an issue. If I open up the menu and move the mouse off it, the first click closes the menu, and the next click is registered at a spot that&#39;s beneath where the menu was. Is that what you&#39;re referring to?</p><p>Pete</p><p><b>[edit]</b> When you call updateCell you should take the mouse X,Y from the event that caused the mouse down, not a previous mouse move. When you open the menu and move off it, you don&#39;t get any mouse move events until you click (to close the menu) and move the mouse again. That explains what I saw. </p><div class="source-code snippet"><div class="inner"><pre>  ALLEGRO_MENU <span class="k3">*</span>menu <span class="k3">=</span> al_create_menu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
  ALLEGRO_MENU <span class="k3">*</span>sub <span class="k3">=</span> al_create_menu<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
  al_append_menu_item<span class="k2">(</span>sub, <span class="s">"Open"</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
  al_append_menu_item<span class="k2">(</span>sub, <span class="s">"Save"</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
  al_append_menu_item<span class="k2">(</span>sub, <span class="s">"Destroy Universe"</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
  al_append_menu_item<span class="k2">(</span>menu, <span class="s">"File"</span>, <span class="n">0</span>, <span class="n">0</span>, NULL, sub<span class="k2">)</span><span class="k2">;</span>
  al_set_display_menu<span class="k2">(</span>display, menu<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Thu, 17 Aug 2017 18:08:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah its supposed to be the minimum needed to show what I was experiencing, so no bounds checking.</p><p>I&#39;ve attached what happens when I click the mouse at the position in the grid where the cell above is activated instead of the one I expected.<br />As I get further down the grid the amount it is off gets bigger.</p><p>So effectively my mouseX and mouseY variables are redundant and I should use the ones from the event? It doesn&#39;t fix my issue but I&#39;ll keep that in mind.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (awergh)</author>
		<pubDate>Thu, 17 Aug 2017 18:50:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s not a rounding issue is it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 17 Aug 2017 20:47:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>OK, yes I see it now. It&#39;s like a sort of scaling the client area to the area including the menu (or something)<br /><span class="remote-thumbnail"><span class="json">{"name":"610992","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/b\/9be93d840ce36d70df67589d1dd946d0.jpg","w":801,"h":627,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/b\/9be93d840ce36d70df67589d1dd946d0"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/9/b/9be93d840ce36d70df67589d1dd946d0-240.jpg" alt="610992" width="240" height="187" /></span><br />SiegeLord might know why, possibly due to the HiDPI scaling code?</p><p>[edit] Possibly I am going mad. Can you take some screenshots and measure them with MSPaint or something? Basically it looks like, if you request an 800x600 display then put a menu onto it, the client area will get squashed a little bit in the Y direction. On my system, the client area goes to something like 582 pixels, so your grid squares are no longer quite square. Is this in the documentation? I haven&#39;t checked.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Thu, 17 Aug 2017 21:08:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah I thought when you opened a menu everything shifts down a bit.. It doesn&#39;t draw over it. <br />Is this what you&#39;re seeing? </p><p>I usually get round this by resizing the draw to the display when the menu is enabled. </p><p>Guess you&#39;d have to convert mouse coordinates as well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kev Callahan)</author>
		<pubDate>Fri, 18 Aug 2017 03:51:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think this is a bug and you should file an issue on it:<br /><a href="https://github.com/liballeg/allegro5/issues">https://github.com/liballeg/allegro5/issues</a></p><p>Pete
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Fri, 18 Aug 2017 12:14:35 +0000</pubDate>
	</item>
</rss>
