Is this useful for you?<br><br><a href="http://bugs.sugarlabs.org/attachment/ticket/1948/0001-Save-title-when-closing-1948.patch">http://bugs.sugarlabs.org/attachment/ticket/1948/0001-Save-title-when-closing-1948.patch</a><br>
<br>Gonzalo<br><br><div class="gmail_quote">On Tue, Feb 15, 2011 at 5:19 PM, Bernie Innocenti <span dir="ltr"><<a href="mailto:bernie@codewiz.org" target="_blank">bernie@codewiz.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div><div></div><div>On Tue, 2011-02-15 at 21:00 +0100, Sascha Silbe wrote:<br>
> Excerpts from Aleksey Lim's message of Mon Feb 14 23:23:25 +0100 2011:<br>
><br>
> >      def __jobject_updated_cb(self, jobject):<br>
> > +        prev_pos = self.entry.props.cursor_position<br>
> >          self.entry.set_text(jobject['title'])<br>
> > +        self.entry.set_position(prev_pos)<br>
><br>
> The GTK documentation doesn't say anything about what the cursor position<br>
> will be after a set_text() call, so we need to take care of saving and<br>
> restoring the cursor position (i.e. your patch does the right thing).<br>
><br>
> But the documentation for set_position() says the position must not<br>
> exceed the number of characters currently in the widget, so we need some<br>
> bounds checking here (the title might have been shortened).<br>
<br>
</div></div>The above patch isn't sufficient in this race-condition between the user<br>
typing and the metadata update: even if we reset the cursor position to<br>
the right place, the text that we set back into the widget is likely to<br>
miss one or two keystrokes from the user.<br>
<br>
We must absolutely avoid triggering a save while the user could still be<br>
typing in the widget, which is easily achieved by *NOT* having an<br>
arbitrary timeout of 2 seconds and instead hooking to the<br>
focus-out-event.<br>
<br>
The problem with the focus-out-event is that we don't get one when the<br>
user clicks directly on the Stop button after editing the name. That<br>
case is tricky because the Stop button does not have an easy way to find<br>
the name widget even though it's in the same toolbar.<br>
<br>
Someone (tomeu?) pointed out that, normally, gtk sends a focus-out-event<br>
in this case. There was even a small test case demonstrating it. For<br>
some reason, it doesn't work in Sugar. Fixing this bug would let us<br>
remove all these half-baked workarounds.<br>
<font color="#888888"><br>
--<br>
   // Bernie Innocenti - <a href="http://codewiz.org/" target="_blank">http://codewiz.org/</a><br>
 \X/  Sugar Labs       - <a href="http://sugarlabs.org/" target="_blank">http://sugarlabs.org/</a><br>
</font><div><div></div><div><br>
<br>
_______________________________________________<br>
Dextrose mailing list<br>
<a href="mailto:Dextrose@lists.sugarlabs.org" target="_blank">Dextrose@lists.sugarlabs.org</a><br>
<a href="http://lists.sugarlabs.org/listinfo/dextrose" target="_blank">http://lists.sugarlabs.org/listinfo/dextrose</a><br>
</div></div></blockquote></div><br>