I agree with Gonzalo and Gary; this is just a makeshift solution for the time-being, so that activities like Speak, Chat, Terminal are not rendered completely unusable in ebook-mode.<br><br>Ideally, the best solution would be to have the OSK-appearance-and window-shrinkage on "automatic" and "tied-together" basis (without needing any manual intervention).<br>
<br><br><br><div class="gmail_quote">On Tue, Jan 29, 2013 at 9:17 AM, Gary Martin <span dir="ltr"><<a href="mailto:garycmartin@googlemail.com" target="_blank">garycmartin@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 28 Jan 2013, at 18:33, Gonzalo Odiard <<a href="mailto:gonzalo@laptop.org">gonzalo@laptop.org</a>> wrote:<br>
<br>
><br>
><br>
> On Mon, Jan 28, 2013 at 2:50 PM, Ajay Garg <<a href="mailto:ajay@activitycentral.com">ajay@activitycentral.com</a>> wrote:<br>
><br>
><br>
> On Mon, Jan 28, 2013 at 11:01 PM, Paul Fox <<a href="mailto:pgf@laptop.org">pgf@laptop.org</a>> wrote:<br>
> ajay wrote:<br>
>  > Hi all.<br>
>  ><br>
>  > A simple solution was found :)<br>
>  ><br>
>  > I hacked the "KP_Prior" and "KP_Next" keys, and now they are used for<br>
>  > making-window-smaller and restoring-original-window-size respectively :)<br>
><br>
> so sugar takes over those keys?  aren't those keys used by activities?<br>
> they're certainly useful in a terminal -- page up and page down.<br>
><br>
> Hmm.. Well a simple "grepping" showed that the "Read" activity is the only activity that explicitly makes use of the "KP_Home" and "KP_End" keys; but none seemed to make use of "KP_Prior" and "KP_Next".<br>

><br>
><br>
> A simple grep is not good enough. Gtk already uses these keys, for example in a textview.<br>
><br>
> I can't understand what you are trying to do. The user should press the key to enlarge/shrink the activity window? Does not look like a good solution.<br>
<br>
</div>+1<br>
<br>
OSK behaviour should be automatic, no user intervention (other than perhaps some manual view scrolling when there is no active focus to get into view). If we are missing cases (and we are currently), then these are bugs to be fixed and/or features to be landed (often GTK3 related upstream targets, but occasionally Sugar/Activity related patches). We made great progress in 13.1.0, hopefully we can finish off this effort ready for 13.2.0.<br>

<br>
Regards,<br>
--Gary<br>
<div class="HOEnZb"><div class="h5"><br>
> Gonzalo<br>
><br>
><br>
><br>
><br>
> paul<br>
><br>
>  ><br>
>  > All thanks to<br>
>  >        * /usr/share/X11/xkb/keycodes/evdev<br>
>  >        * sugar/src/jarabe/view/keyhandler.py<br>
>  ><br>
>  ><br>
>  ><br>
>  > Just one thing I noticed when  I tried to have the above keys take effect<br>
>  > ONLY in ebook-mode (via the "evtest --query" test), that when I ran this<br>
>  > again and again via the "suprocess" module, the XO-4 behaved very<br>
>  > erratically. However, when I made the keys take effect irrespective of the<br>
>  > test of ebook-mode, things worked cool. However, I will keep on looking<br>
>  > into the reason.<br>
>  ><br>
>  ><br>
>  > Thanks a ton to all :)<br>
>  ><br>
>  ><br>
>  > On Thu, Jan 24, 2013 at 10:45 PM, Paul Fox <<a href="mailto:pgf@laptop.org">pgf@laptop.org</a>> wrote:<br>
>  ><br>
>  > > gonzalo wrote:<br>
>  > >  > Write does not know what is the ebook switch state, that logic is in the<br>
>  > >  > osk.<br>
>  > >  ><br>
>  > >  > Looking in the wiki and sugar code, I could not find information about<br>
>  > > how<br>
>  > >  > read the switch,<br>
>  > >  > but in ticket <a href="http://dev.laptop.org/ticket/12326" target="_blank">http://dev.laptop.org/ticket/12326</a> found this:<br>
>  > >  ><br>
>  > >  > If you do:<br>
>  > >  ><br>
>  > >  > evtest --query /dev/input/event4 EV_SW SW_TABLET_MODE; echo $?<br>
>  > >  ><br>
>  > >  ><br>
>  > >  > If the xo is in ebook mode returns 10, if not, returns 0.<br>
>  > >  ><br>
>  > >  > There are any official doc about the switches I am missing? There are a<br>
>  > > way<br>
>  > >  > to catch a event when the switch is activated, using dbus or something<br>
>  > >  > similar?<br>
>  > ><br>
>  > > if you open the device and read it, you'll get a stream of "struct<br>
>  > > input_event" structures (/usr/include/linux/input.h) representing<br>
>  > > opening and closing of the SW_TABLET_MODE switch.  here's a C code<br>
>  > > snippet from olpc-switchd (part of powerd):<br>
>  > ><br>
>  > >     void ebook_event()<br>
>  > >     {<br>
>  > >         struct input_event ev[1];<br>
>  > ><br>
>  > >         if (read(ebk_fd, ev, sizeof(ev)) != sizeof(ev))<br>
>  > >             die("bad read from ebook switch");<br>
>  > ><br>
>  > >         dbg(3, "ebk: ev sec %d usec %d type %d code %d value %d",<br>
>  > >             ev->time.tv_sec, ev->time.tv_usec,<br>
>  > >             ev->type, ev->code, ev->value);<br>
>  > ><br>
>  > >         if (ev->type == EV_SW && ev->code == SW_TABLET_MODE) {<br>
>  > >             if (ev->value)<br>
>  > >                 send_event("ebookclose", round_secs(ev), ebk_device);<br>
>  > >             else<br>
>  > >                 send_event("ebookopen", round_secs(ev), ebk_device);<br>
>  > >         }<br>
>  > >     }<br>
>  > ><br>
>  > ><br>
>  > > perhaps there's an evdev to dbus gateway of some sort, but i don't know<br>
>  > > about it, if so.<br>
>  > ><br>
>  > > the "evtest" commandline example, above, uses an ioctl on the input<br>
>  > > device to determine current state.  here's snippet from the evtest source:<br>
>  > > (full source:  git://<a href="http://anongit.freedesktop.org/evtest" target="_blank">anongit.freedesktop.org/evtest</a>)<br>
>  > ><br>
>  > >     static int query_device(const char *device, const struct query_mode<br>
>  > > *query_mode><br>
>  > >     {<br>
>  > >             int fd;<br>
>  > >             int r;<br>
>  > >             unsigned long state[NBITS(query_mode->max)];<br>
>  > ><br>
>  > >             fd = open(device, O_RDONLY);<br>
>  > >             if (fd < 0) {<br>
>  > >                     perror("open");<br>
>  > >                     return EXIT_FAILURE;<br>
>  > >             }<br>
>  > >             memset(state, 0, sizeof(state));<br>
>  > >             r = ioctl(fd, query_mode->rq, state);<br>
>  > >             close(fd);<br>
>  > ><br>
>  > >             if (r == -1) {<br>
>  > >                     perror("ioctl");<br>
>  > >                     return EXIT_FAILURE;<br>
>  > >             }<br>
>  > ><br>
>  > >             if (test_bit(keycode, state))<br>
>  > >                     return 10; /* different from EXIT_FAILURE */<br>
>  > >             else<br>
>  > >                     return 0;<br>
>  > >     }<br>
>  > ><br>
>  > ><br>
>  > ><br>
>  > > paul<br>
>  > ><br>
>  > ><br>
>  > >  ><br>
>  > >  > Gonzalo<br>
>  > >  ><br>
>  > >  ><br>
>  > >  > On Thu, Jan 24, 2013 at 12:16 PM, Martin Langhoff <<br>
>  > > <a href="mailto:martin.langhoff@gmail.com">martin.langhoff@gmail.com</a><br>
>  > >  > > wrote:<br>
>  > >  ><br>
>  > >  > > On Thu, Jan 24, 2013 at 10:13 AM, Paul Fox <<a href="mailto:pgf@laptop.org">pgf@laptop.org</a>> wrote:<br>
>  > >  > > > i believe sugar already has code to detect the two modes, since<br>
>  > >  > > > that's how it knows whether to present the OSK or not.<br>
>  > >  > ><br>
>  > >  > > Yep. Ajay, I think Write shows you the way :-)<br>
>  > >  > ><br>
>  > >  > ><br>
>  > >  > ><br>
>  > >  > ><br>
>  > >  > > m<br>
>  > >  > > --<br>
>  > >  > >  <a href="mailto:martin.langhoff@gmail.com">martin.langhoff@gmail.com</a><br>
>  > >  > >  <a href="mailto:martin@laptop.org">martin@laptop.org</a> -- Software Architect - OLPC<br>
>  > >  > >  - ask interesting questions<br>
>  > >  > >  - don't get distracted with shiny stuff  - working code first<br>
>  > >  > >  - <a href="http://wiki.laptop.org/go/User:Martinlanghoff" target="_blank">http://wiki.laptop.org/go/User:Martinlanghoff</a><br>
>  > >  > ><br>
>  > ><br>
>  > > =---------------------<br>
>  > >  paul fox, <a href="mailto:pgf@laptop.org">pgf@laptop.org</a><br>
>  > > _______________________________________________<br>
>  > > Devel mailing list<br>
>  > > <a href="mailto:Devel@lists.laptop.org">Devel@lists.laptop.org</a><br>
>  > > <a href="http://lists.laptop.org/listinfo/devel" target="_blank">http://lists.laptop.org/listinfo/devel</a><br>
>  > ><br>
>  ><br>
>  ><br>
>  ><br>
>  > --<br>
>  > Regards,<br>
>  ><br>
>  > Ajay Garg<br>
>  > Dextrose Developer<br>
>  > Activity Central: <a href="http://activitycentral.com" target="_blank">http://activitycentral.com</a><br>
><br>
> =---------------------<br>
>  paul fox, <a href="mailto:pgf@laptop.org">pgf@laptop.org</a><br>
> _______________________________________________<br>
> Devel mailing list<br>
> <a href="mailto:Devel@lists.laptop.org">Devel@lists.laptop.org</a><br>
> <a href="http://lists.laptop.org/listinfo/devel" target="_blank">http://lists.laptop.org/listinfo/devel</a><br>
><br>
><br>
><br>
> --<br>
> Regards,<br>
><br>
> Ajay Garg<br>
> Dextrose Developer<br>
> Activity Central: <a href="http://activitycentral.com" target="_blank">http://activitycentral.com</a><br>
><br>
<br>
_______________________________________________<br>
Devel mailing list<br>
<a href="mailto:Devel@lists.laptop.org">Devel@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/devel" target="_blank">http://lists.laptop.org/listinfo/devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><font face="arial, sans-serif">Regards,<br><br>Ajay Garg</font><br style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font face="arial, sans-serif">Dextrose Developer</font><br style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">Activity Central: </span><a href="http://activitycentral.com/" style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)" target="_blank">http://activitycentral.com</a>