<div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 27, 2012 at 5:43 PM, Robby Findler <span dir="ltr">&lt;<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Is the callback than handles the c-f1 keystroke running in<br>
gui-eventspace or in some other eventspace?<br></blockquote><div><br>It&#39;s in the gui-eventspace (just checked with a printf and a comparison with `(eq? (current-eventspace) gui-eventspace)&#39;), and so is the button callback.<br>

<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
Robby<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Tue, Nov 27, 2012 at 10:25 AM, Laurent &lt;<a href="mailto:laurent.orseau@gmail.com">laurent.orseau@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Nov 27, 2012 at 3:58 PM, Kieron Hardy &lt;<a href="mailto:kieron.hardy@gmail.com">kieron.hardy@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Laurent, do you have a bit of code that demonstrates your issue?<br>
&gt;<br>
&gt;<br>
&gt; Well, it&#39;s not easy to show a minimal example, as it (seems to) depends on<br>
&gt; an X event loop processing while grabbing the root window.<br>
&gt;<br>
&gt; But I have something like that:<br>
&gt; [...]<br>
&gt; ; create a new event space and use it for all graphics<br>
&gt; (define gui-eventspace (make-eventspace))<br>
&gt; (current-eventspace gui-eventspace)<br>
&gt; [...]<br>
&gt;<br>
&gt; (define menu2 (new popup-menu% [...])<br>
&gt; (define f (new frame% [label &quot;Frame&quot;]))<br>
&gt; (define cb (new button% [parent f] [label &quot;Menu&quot;]<br>
&gt;     [callback (λ(cb ev)(send f popup-menu menu2 100 150))]))<br>
&gt;<br>
&gt; ; keybindings to run commands<br>
&gt; (add-bindings global-keymap<br>
&gt;  &quot;C-F1&quot; (thunk* (send f popup-menu menu2 100 100))<br>
&gt;  &quot;C-F2&quot; (thunk* (send f show #t)) ; to show the frame after the event loop<br>
&gt; has started<br>
&gt; )<br>
&gt;<br>
&gt; [...]<br>
&gt;<br>
&gt; (run-event-loop)<br>
&gt;<br>
&gt;<br>
&gt; When the program starts, I press Ctrl-F2 to show the frame, and then I can<br>
&gt; press the button to show the popup, several times in a row, and the popup<br>
&gt; menu does work correctly.<br>
&gt; But if I press Ctrl-F1 to show the popup menu by attaching it directly to<br>
&gt; the frame instead of going through the callback, not only does it not show<br>
&gt; up, but after that pressing the button does not work anymore (actually, I<br>
&gt; can press the button and it changes its state, so it&#39;s not frozen, but the<br>
&gt; popup menu just does not appear).<br>
&gt;<br>
&gt; I&#39;ve tried to surround the call inside the first thunk* with a `thread&#39; and<br>
&gt; also with a `(parameterize ([current-eventspace (make-eventspace)])&#39; or with<br>
&gt; the gui-eventspace just in case, but without success.<br>
&gt;<br>
&gt; Laurent<br>
&gt;<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Nov 27, 2012, at 4:09, Laurent &lt;<a href="mailto:laurent.orseau@gmail.com">laurent.orseau@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Update:<br>
&gt;&gt; Independently of the server and the keybindings:<br>
&gt;&gt; If I create a frame with a button which callback pops up a menu, it works.<br>
&gt;&gt; If I create a frame and call popup-menu on it directly, it fails (the menu<br>
&gt;&gt; does not appear, and the button above does not show its own menu anymore<br>
&gt;&gt; either, which may mean something about eventspaces being frozen? Although I<br>
&gt;&gt; can still click on another button that hides the frame)<br>
&gt;&gt;<br>
&gt;&gt; Any idea? I&#39;m kind of stuck in the eventspace...<br>
&gt;&gt;<br>
&gt;&gt; Laurent<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Nov 26, 2012 at 4:55 PM, Laurent &lt;<a href="mailto:laurent.orseau@gmail.com">laurent.orseau@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; There is a remaining problem: I can show frames and buttons alright, and<br>
&gt;&gt;&gt; press them, but popup-menus seem to resist (although the frame I call<br>
&gt;&gt;&gt; show-popup-menu on does show up).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; What&#39;s strange is that they work when called from the console (in a<br>
&gt;&gt;&gt; different thread, in a different namespace with eval, but with<br>
&gt;&gt;&gt; namespace-anchor), but not via a keybinding (in the main thread, and in the<br>
&gt;&gt;&gt; main namespace), and I could not yet reproduce this behavior in a simpler<br>
&gt;&gt;&gt; setting than in the server thread...<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Is there something special about popup-menus?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Laurent<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Sun, Nov 25, 2012 at 6:30 PM, Laurent &lt;<a href="mailto:laurent.orseau@gmail.com">laurent.orseau@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It works! Thank you very much!<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ____________________<br>
&gt;&gt;  Racket Users list:<br>
&gt;&gt;  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ____________________<br>
&gt;   Racket Users list:<br>
&gt;   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
&gt;<br>
</div></div></blockquote></div><br></div>