<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Allegro windows show up on incorrect monitor (continued)</title>
		<link>http://www.allegro.cc/forums/view/611993</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 12 Feb 2013 06:36:29 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Continuing from <a href="https://www.allegro.cc/forums/thread/611148/967039">here</a>, I&#39;m still trying to figure out how to get Allegro to spawn its window on my primary monitor (the monitor with the Windows taskbar on it) by default.</p><p>I&#39;m using the following code to set up the display-
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/al_set_new_display_adapter"><span class="a">al_set_new_display_adapter</span></a><span class="k2">(</span>n<span class="k2">)</span><span class="k2">;</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>w, h<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I&#39;ve got 4 monitors, so as expected, it crashes for values of <tt>n</tt> outside of 0, 1, 2, and 3.</p><p>I don&#39;t have a way to get the ID of the primary monitor yet, but assuming I did, passing the value to <tt>al_set_new_display_adapter</tt> still won&#39;t work right.<br />Only values of 0 and 1 work, and 2 and 3 spawn the window in unknown space- not on any monitor. I can see the thumbnail of the window if I hover over the icon on the taskbar, but the window itself isn&#39;t visible anywhere.</p><p>Any ideas? If I&#39;m making a professional game, I definitely want the window to spawn in valid space, and on the primary monitor if possible.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Schyfis)</author>
		<pubDate>Mon, 04 Feb 2013 03:20:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you able to return the screen coordinates of the spawned window? Then you can know whether one was spawned above where you expected it instead of to the right, etc.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OnlineCop)</author>
		<pubDate>Mon, 04 Feb 2013 03:25:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I figured out how to retrieve the window position, and the result was completely unexpected.</p><p>For values of <tt>n</tt>, this is the window position I got.</p><p>0: 2160, 135 (valid, center of non-primary monitor)<br />1: -1680, 135 (valid, center of non-primary monitor)<br />2: -720, 32792 (invalid)<br />3: -720, 32792 (invalid)</p><p>Not sure what&#39;s going on here, but it looks like something in Allegro overflowed.<br />Fortunately, I learned I can also use <span class="source-code"><a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a></span> to put the window in valid space, since it appears that <tt>0, 0</tt> will always be the upper-left coordinate of the primary monitor.</p><p>However, I&#39;d also like to note here that <span class="source-code"><a href="http://www.allegro.cc/manual/al_get_window_position"><span class="a">al_get_window_position</span></a></span> doesn&#39;t return the same value that you previously set it to in <span class="source-code"><a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a></span>. If I set the window position to <tt>100, 100</tt>, and then retrieve the window position again, I get <tt>103, 125</tt>. I&#39;m using Allegro 5.0.7, so I&#39;m not sure if this has been fixed in the latest release. (I think this was <a href="https://www.allegro.cc/forums/thread/611642">reported once already.</a>)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Schyfis)</author>
		<pubDate>Mon, 04 Feb 2013 08:36:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Easiest way to get it fixed is to send a patch.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Mon, 04 Feb 2013 10:02:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What&#39;s the proper way to submit a patch? I&#39;ve never done it before, so for now I guess I&#39;ll drop it here.</p><p>I made a change to _al_win_set_window_position in wwindow.c, making it account for the window border. Now <span class="source-code"><a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a></span> and <span class="source-code"><a href="http://www.allegro.cc/manual/al_get_window_position"><span class="a">al_get_window_position</span></a></span> are consistent with each other, both referring to the upper left corner of the client area instead of the upper left corner of the window itself.</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="k1">void</span> _al_win_set_window_position<span class="k2">(</span>HWND <a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a>, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>   RECT client_rect<span class="k2">;</span>
<span class="number">  4</span>   WINDOWINFO wi<span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>   wi.cbSize <span class="k3">=</span> <span class="k1">sizeof</span><span class="k2">(</span>WINDOWINFO<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>   GetWindowInfo<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a>, <span class="k3">&amp;</span>wi<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>   
<span class="number">  9</span>   client_rect.left <span class="k3">=</span> x<span class="k2">;</span>
<span class="number"> 10</span>   client_rect.top <span class="k3">=</span> y<span class="k2">;</span>
<span class="number"> 11</span>   AdjustWindowRectEx<span class="k2">(</span><span class="k3">&amp;</span>client_rect, wi.dwStyle, <span class="k1">false</span>, wi.dwExStyle<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>   
<span class="number"> 13</span>   SetWindowPos<span class="k2">(</span>
<span class="number"> 14</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a>,
<span class="number"> 15</span>      HWND_TOP,
<span class="number"> 16</span>      client_rect.left,
<span class="number"> 17</span>      client_rect.top,
<span class="number"> 18</span>      <span class="n">0</span>,
<span class="number"> 19</span>      <span class="n">0</span>,
<span class="number"> 20</span>      SWP_NOSIZE <span class="k3">|</span> SWP_NOZORDER<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span><span class="k2">}</span>
</div></div><p>

Tomorrow I&#39;ll try and see what&#39;s up with those other weird coordinates regarding the display adapter.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Schyfis)</author>
		<pubDate>Mon, 04 Feb 2013 14:56:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I tested your patch and with the code below the window flies off screen (up and to the left).</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><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">   4</span><span class="p">#include "allegro5/allegro.h"</span>
<span class="number">   5</span><span class="p">#include "allegro5/allegro_image.h"</span>
<span class="number">   6</span>
<span class="number">   7</span><span class="p">#include "common.c"</span>
<span class="number">   8</span>
<span class="number">   9</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number">  10</span><span class="k2">{</span>
<span class="number">  11</span>    <span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>filename<span class="k2">;</span>
<span class="number">  12</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span>
<span class="number">  13</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bitmap<span class="k2">;</span>
<span class="number">  14</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  15</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>queue<span class="k2">;</span>
<span class="number">  16</span>    <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  17</span>    <span class="k1">double</span> zoom <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  18</span>    <span class="k1">double</span> t0<span class="k2">;</span>
<span class="number">  19</span>    <span class="k1">double</span> t1<span class="k2">;</span>
<span class="number">  20</span>
<span class="number">  21</span>    <span class="k1">if</span> <span class="k2">(</span>argc <span class="k3">&gt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  22</span>       filename <span class="k3">=</span> argv<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  23</span>    <span class="k2">}</span>
<span class="number">  24</span>    <span class="k1">else</span> <span class="k2">{</span>
<span class="number">  25</span>       filename <span class="k3">=</span> <span class="s">"data/mysha.pcx"</span><span class="k2">;</span>
<span class="number">  26</span>    <span class="k2">}</span>
<span class="number">  27</span>
<span class="number">  28</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="k2">{</span>
<span class="number">  29</span>       abort_example<span class="k2">(</span><span class="s">"Could not init Allegro.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>    <span class="k2">}</span>
<span class="number">  31</span>       
<span class="number">  32</span>    <span class="k1">if</span> <span class="k2">(</span>argc <span class="k3">&gt;</span> <span class="n">2</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  33</span>       <a href="http://www.allegro.cc/manual/al_set_new_display_adapter"><span class="a">al_set_new_display_adapter</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_54.html" target="_blank">atoi</a><span class="k2">(</span>argv<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>    <span class="k2">}</span>
<span class="number">  35</span>
<span class="number">  36</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">  37</span>    <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>
<span class="number">  39</span>    <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</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><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  43</span>       abort_example<span class="k2">(</span><span class="s">"Error creating display\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>    <span class="k2">}</span>
<span class="number">  45</span>    
<span class="number">  46</span>    <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, filename<span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>    
<span class="number">  48</span>    t0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_time"><span class="a">al_get_time</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>    bitmap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>filename<span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>    t1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_time"><span class="a">al_get_time</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bitmap<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  52</span>       abort_example<span class="k2">(</span><span class="s">"%s not found or failed to load\n"</span>, filename<span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>    <span class="k2">}</span>
<span class="number">  54</span>
<span class="number">  55</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Loading took %.4f seconds\n"</span>, t1 <span class="k3">-</span> t0<span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>
<span class="number">  57</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> <span class="n">30</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  58</span>    queue <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">  59</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>queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</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>queue, <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">  61</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>queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>    <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>
<span class="number">  64</span>    <span class="c">// *</span>
<span class="number">  65</span>    <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display, <span class="n">100</span>, <span class="n">100</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span>
<span class="number">  67</span>    <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  68</span>
<span class="number">  69</span>    <span class="c">// *</span>
<span class="number">  70</span>    <span class="k1">int</span> x, y<span class="k2">;</span>
<span class="number">  71</span>    <a href="http://www.allegro.cc/manual/al_get_window_position"><span class="a">al_get_window_position</span></a><span class="k2">(</span>display, <span class="k3">&amp;</span>x, <span class="k3">&amp;</span>y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>    <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display, x, y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"x=%d y=%d\n"</span>, x, y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>
<span class="number">  75</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number">  76</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>queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>        <span class="k1">if</span> <span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_ORIENTATION<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  78</span>            <span class="k1">int</span> o <span class="k3">=</span> event.display.orientation<span class="k2">;</span>
<span class="number">  79</span>            <span class="k1">if</span> <span class="k2">(</span>o <span class="k3">=</span><span class="k3">=</span> ALLEGRO_DISPLAY_ORIENTATION_0_DEGREES<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  80</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"0 degrees\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>            <span class="k2">}</span>
<span class="number">  82</span>            <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>o <span class="k3">=</span><span class="k3">=</span> ALLEGRO_DISPLAY_ORIENTATION_90_DEGREES<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  83</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"90 degrees\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>            <span class="k2">}</span>
<span class="number">  85</span>            <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>o <span class="k3">=</span><span class="k3">=</span> ALLEGRO_DISPLAY_ORIENTATION_180_DEGREES<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  86</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"180 degrees\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>            <span class="k2">}</span>
<span class="number">  88</span>            <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>o <span class="k3">=</span><span class="k3">=</span> ALLEGRO_DISPLAY_ORIENTATION_270_DEGREES<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  89</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"270 degrees\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>            <span class="k2">}</span>
<span class="number">  91</span>            <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>o <span class="k3">=</span><span class="k3">=</span> ALLEGRO_DISPLAY_ORIENTATION_FACE_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  92</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Face up\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>            <span class="k2">}</span>
<span class="number">  94</span>            <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>o <span class="k3">=</span><span class="k3">=</span> ALLEGRO_DISPLAY_ORIENTATION_FACE_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  95</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Face down\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>            <span class="k2">}</span>
<span class="number">  97</span>        <span class="k2">}</span>
<span class="number">  98</span>        <span class="k1">if</span> <span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number">  99</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 100</span>        <span class="k1">if</span> <span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_CHAR<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 101</span>            <span class="k1">if</span> <span class="k2">(</span>event.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 102</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 103</span>            <span class="k1">if</span> <span class="k2">(</span>event.keyboard.unichar <span class="k3">=</span><span class="k3">=</span> <span class="s">'1'</span><span class="k2">)</span>
<span class="number"> 104</span>                zoom <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 105</span>            <span class="k1">if</span> <span class="k2">(</span>event.keyboard.unichar <span class="k3">=</span><span class="k3">=</span> <span class="s">'+'</span><span class="k2">)</span>
<span class="number"> 106</span>                zoom <span class="k3">*</span><span class="k3">=</span> <span class="n">1</span>.<span class="n">1</span><span class="k2">;</span>
<span class="number"> 107</span>            <span class="k1">if</span> <span class="k2">(</span>event.keyboard.unichar <span class="k3">=</span><span class="k3">=</span> <span class="s">'-'</span><span class="k2">)</span>
<span class="number"> 108</span>                zoom <span class="k3">/</span><span class="k3">=</span> <span class="n">1</span>.<span class="n">1</span><span class="k2">;</span>
<span class="number"> 109</span>            <span class="k1">if</span> <span class="k2">(</span>event.keyboard.unichar <span class="k3">=</span><span class="k3">=</span> <span class="s">'f'</span><span class="k2">)</span>
<span class="number"> 110</span>                zoom <span class="k3">=</span> <span class="k2">(</span><span class="k1">double</span><span class="k2">)</span><a href="http://www.allegro.cc/manual/al_get_display_width"><span class="a">al_get_display_width</span></a><span class="k2">(</span>display<span class="k2">)</span> <span class="k3">/</span>
<span class="number"> 111</span>                    <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>bitmap<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>        <span class="k2">}</span>
<span class="number"> 113</span>        <span class="k1">if</span> <span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 114</span>            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 115</span>            
<span class="number"> 116</span>        <span class="k1">if</span> <span class="k2">(</span>redraw <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 117</span>            redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 118</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_f"><span class="a">al_map_rgb_f</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"> 119</span>            <span class="k1">if</span> <span class="k2">(</span>zoom <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 120</span>                <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>bitmap, <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="number"> 121</span>            <span class="k1">else</span>
<span class="number"> 122</span>                <a href="http://www.allegro.cc/manual/al_draw_scaled_rotated_bitmap"><span class="a">al_draw_scaled_rotated_bitmap</span></a><span class="k2">(</span>
<span class="number"> 123</span>                    bitmap, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, zoom, zoom, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</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"> 125</span>        <span class="k2">}</span>
<span class="number"> 126</span>    <span class="k2">}</span>
<span class="number"> 127</span>
<span class="number"> 128</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>bitmap<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>
<span class="number"> 130</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 131</span><span class="k2">}</span>
<span class="number"> 132</span>
<span class="number"> 133</span><span class="c">/* vim: set sts=4 sw=4 et: */</span>
</div></div><p>

It actually looks like this was fixed the opposite way in git already. It uses to top left corner of the window decoration. So your patch just mismatched with <u>get</u>... in git.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Mon, 04 Feb 2013 16:34:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, I was pretty sure the get/set window position was already fixed in git. The other problem however I&#39;m not so sure.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Tue, 05 Feb 2013 04:57:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have yet to test the following code (I only have one monitor) but, in theory, it should position a misplaced window properly:</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="k1">static</span> <span class="k1">void</span> CenterDisplay<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display, <span class="k1">bool</span> fullscreen<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <span class="c">/* MinGW doesn't have MonitorFromWindow right now (!!!) so import it. */</span>
<span class="number">  4</span>  <span class="k1">typedef</span> HMONITOR <span class="k2">(</span><span class="k3">*</span> WINAPI Func<span class="k2">)</span><span class="k2">(</span>HWND hwnd, DWORD dwFlags<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>  HMODULE user32 <span class="k3">=</span> LoadLibrary<span class="k2">(</span><span class="s">"user32.dll"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>  Func MonitorFromWindow <span class="k3">=</span> <span class="k2">(</span>Func<span class="k2">)</span>GetProcAddress<span class="k2">(</span>user32, <span class="s">"MonitorFromWindow"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>  
<span class="number">  8</span>  <span class="c">/* Now the display can be centered! */</span>
<span class="number">  9</span>  HWND handle <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_win_window_handle"><span class="a">al_get_win_window_handle</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>  HMONITOR monitor <span class="k3">=</span> MonitorFromWindow<span class="k2">(</span>handle, <span class="n">2</span> <span class="c">/* MONITOR_DEFAULTTONEAREST */</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>  MONITORINFO info<span class="k2">;</span>
<span class="number"> 12</span>  RECT windowSize<span class="k2">;</span>
<span class="number"> 13</span>  <span class="k1">int</span> x, y<span class="k2">;</span>
<span class="number"> 14</span>  <span class="k1">int</span> monitorWidth, monitorHeight<span class="k2">;</span>
<span class="number"> 15</span>  <span class="k1">int</span> windowWidth, windowHeight<span class="k2">;</span>
<span class="number"> 16</span>  
<span class="number"> 17</span>  info.cbSize <span class="k3">=</span> <span class="k1">sizeof</span><span class="k2">(</span>MONITORINFO<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>  GetMonitorInfo<span class="k2">(</span>monitor, <span class="k3">&amp;</span>info<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>  
<span class="number"> 20</span>  GetWindowRect<span class="k2">(</span>handle, <span class="k3">&amp;</span>windowSize<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>  
<span class="number"> 22</span>  monitorWidth <span class="k3">=</span> info.rcMonitor.right <span class="k3">-</span> info.rcMonitor.left<span class="k2">;</span>
<span class="number"> 23</span>  monitorHeight <span class="k3">=</span> info.rcMonitor.bottom <span class="k3">-</span> info.rcMonitor.top<span class="k2">;</span>
<span class="number"> 24</span>  
<span class="number"> 25</span>  windowWidth <span class="k3">=</span> windowSize.right <span class="k3">-</span> windowSize.left<span class="k2">;</span>
<span class="number"> 26</span>  windowHeight <span class="k3">=</span> windowSize.bottom <span class="k3">-</span> windowSize.top<span class="k2">;</span>
<span class="number"> 27</span>  
<span class="number"> 28</span>  x <span class="k3">=</span> info.rcMonitor.left <span class="k3">+</span> <span class="k2">(</span>monitorWidth <span class="k3">-</span> windowWidth<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 29</span>  y <span class="k3">=</span> info.rcMonitor.top <span class="k3">+</span> <span class="k2">(</span>monitorHeight <span class="k3">-</span> windowHeight<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 30</span>  
<span class="number"> 31</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>fullscreen<span class="k2">)</span>
<span class="number"> 32</span>  <span class="k2">{</span>
<span class="number"> 33</span>    SetWindowPos<span class="k2">(</span>handle, HWND_TOP, x, y, <span class="n">0</span>, <span class="n">0</span>, SWP_NOSIZE <span class="k3">|</span> SWP_NOZORDER<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>  <span class="k2">}</span>
<span class="number"> 35</span>  <span class="k1">else</span>
<span class="number"> 36</span>  <span class="k2">{</span>
<span class="number"> 37</span>    SetWindowPos<span class="k2">(</span>handle, HWND_TOP, x, y, <span class="n">0</span>, <span class="n">0</span>, SWP_NOSIZE <span class="k3">|</span> SWP_NOZORDER<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    <a href="http://www.allegro.cc/manual/al_resize_display"><span class="a">al_resize_display</span></a><span class="k2">(</span>display, monitorWidth, monitorHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>  <span class="k2">}</span>
<span class="number"> 40</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Erin Maus)</author>
		<pubDate>Tue, 05 Feb 2013 05:12:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Trent:<br />The code you posted combined with the patch I posted does not move the window for me.<br />Maybe one of the Windows functions is returning something unexpected on different versions of Windows? (I&#39;m on Windows 7 Pro)</p><p>Aaron:<br />I tried your code, but I got the following error. I&#39;m not sure what it means.<br /><tt>Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.</tt></p><p>Side note- I had to change <span class="source-code">HMODULE user32 <span class="k3">=</span> LoadLibrary<span class="k2">(</span><span class="s">"user32.dll"</span><span class="k2">)</span><span class="k2">;</span></span> to <span class="source-code">HMODULE user32 <span class="k3">=</span> LoadLibrary<span class="k2">(</span><span class="k2">(</span>LPCWSTR<span class="k2">)</span>L<span class="s">"user32.dll"</span><span class="k2">)</span><span class="k2">;</span></span> because my IDE was yelling at me about it. Not sure if that&#39;s what&#39;s causing the problem or not.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Schyfis)</author>
		<pubDate>Tue, 12 Feb 2013 06:27:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you&#39;re using MSVC you should be able to just use <span class="source-code">MonitorFromWindow</span> directly. The extra fluff I have in that method can then be ignored...</p><p>As far as the <span class="source-code">ESP</span> problem, it looks like a calling convention problem. Why it does that, I&#39;m not sure. Just try it using <span class="source-code">MonitorFromWindow</span> directly instead of using <span class="source-code">LoadLibrary</span> and company.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Erin Maus)</author>
		<pubDate>Tue, 12 Feb 2013 06:36:29 +0000</pubDate>
	</item>
</rss>
