On Mon, Jan 28, 2013 at 2:50 PM, Ajay Garg <[email protected]> wrote:
> > > On Mon, Jan 28, 2013 at 11:01 PM, Paul Fox <[email protected]> wrote: > >> ajay wrote: >> > Hi all. >> > >> > A simple solution was found :) >> > >> > I hacked the "KP_Prior" and "KP_Next" keys, and now they are used for >> > making-window-smaller and restoring-original-window-size respectively >> :) >> >> so sugar takes over those keys? aren't those keys used by activities? >> they're certainly useful in a terminal -- page up and page down. >> > > 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". > > A simple grep is not good enough. Gtk already uses these keys, for example in a textview. 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. Gonzalo > > >> paul >> >> > >> > All thanks to >> > * /usr/share/X11/xkb/keycodes/evdev >> > * sugar/src/jarabe/view/keyhandler.py >> > >> > >> > >> > Just one thing I noticed when I tried to have the above keys take >> effect >> > ONLY in ebook-mode (via the "evtest --query" test), that when I ran >> this >> > again and again via the "suprocess" module, the XO-4 behaved very >> > erratically. However, when I made the keys take effect irrespective of >> the >> > test of ebook-mode, things worked cool. However, I will keep on looking >> > into the reason. >> > >> > >> > Thanks a ton to all :) >> > >> > >> > On Thu, Jan 24, 2013 at 10:45 PM, Paul Fox <[email protected]> wrote: >> > >> > > gonzalo wrote: >> > > > Write does not know what is the ebook switch state, that logic is >> in the >> > > > osk. >> > > > >> > > > Looking in the wiki and sugar code, I could not find information >> about >> > > how >> > > > read the switch, >> > > > but in ticket http://dev.laptop.org/ticket/12326 found this: >> > > > >> > > > If you do: >> > > > >> > > > evtest --query /dev/input/event4 EV_SW SW_TABLET_MODE; echo $? >> > > > >> > > > >> > > > If the xo is in ebook mode returns 10, if not, returns 0. >> > > > >> > > > There are any official doc about the switches I am missing? There >> are a >> > > way >> > > > to catch a event when the switch is activated, using dbus or >> something >> > > > similar? >> > > >> > > if you open the device and read it, you'll get a stream of "struct >> > > input_event" structures (/usr/include/linux/input.h) representing >> > > opening and closing of the SW_TABLET_MODE switch. here's a C code >> > > snippet from olpc-switchd (part of powerd): >> > > >> > > void ebook_event() >> > > { >> > > struct input_event ev[1]; >> > > >> > > if (read(ebk_fd, ev, sizeof(ev)) != sizeof(ev)) >> > > die("bad read from ebook switch"); >> > > >> > > dbg(3, "ebk: ev sec %d usec %d type %d code %d value %d", >> > > ev->time.tv_sec, ev->time.tv_usec, >> > > ev->type, ev->code, ev->value); >> > > >> > > if (ev->type == EV_SW && ev->code == SW_TABLET_MODE) { >> > > if (ev->value) >> > > send_event("ebookclose", round_secs(ev), ebk_device); >> > > else >> > > send_event("ebookopen", round_secs(ev), ebk_device); >> > > } >> > > } >> > > >> > > >> > > perhaps there's an evdev to dbus gateway of some sort, but i don't >> know >> > > about it, if so. >> > > >> > > the "evtest" commandline example, above, uses an ioctl on the input >> > > device to determine current state. here's snippet from the evtest >> source: >> > > (full source: git://anongit.freedesktop.org/evtest) >> > > >> > > static int query_device(const char *device, const struct >> query_mode >> > > *query_mode> >> > > { >> > > int fd; >> > > int r; >> > > unsigned long state[NBITS(query_mode->max)]; >> > > >> > > fd = open(device, O_RDONLY); >> > > if (fd < 0) { >> > > perror("open"); >> > > return EXIT_FAILURE; >> > > } >> > > memset(state, 0, sizeof(state)); >> > > r = ioctl(fd, query_mode->rq, state); >> > > close(fd); >> > > >> > > if (r == -1) { >> > > perror("ioctl"); >> > > return EXIT_FAILURE; >> > > } >> > > >> > > if (test_bit(keycode, state)) >> > > return 10; /* different from EXIT_FAILURE */ >> > > else >> > > return 0; >> > > } >> > > >> > > >> > > >> > > paul >> > > >> > > >> > > > >> > > > Gonzalo >> > > > >> > > > >> > > > On Thu, Jan 24, 2013 at 12:16 PM, Martin Langhoff < >> > > [email protected] >> > > > > wrote: >> > > > >> > > > > On Thu, Jan 24, 2013 at 10:13 AM, Paul Fox <[email protected]> >> wrote: >> > > > > > i believe sugar already has code to detect the two modes, >> since >> > > > > > that's how it knows whether to present the OSK or not. >> > > > > >> > > > > Yep. Ajay, I think Write shows you the way :-) >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > m >> > > > > -- >> > > > > [email protected] >> > > > > [email protected] -- Software Architect - OLPC >> > > > > - ask interesting questions >> > > > > - don't get distracted with shiny stuff - working code first >> > > > > - http://wiki.laptop.org/go/User:Martinlanghoff >> > > > > >> > > >> > > =--------------------- >> > > paul fox, [email protected] >> > > _______________________________________________ >> > > Devel mailing list >> > > [email protected] >> > > http://lists.laptop.org/listinfo/devel >> > > >> > >> > >> > >> > -- >> > Regards, >> > >> > Ajay Garg >> > Dextrose Developer >> > Activity Central: http://activitycentral.com >> >> =--------------------- >> paul fox, [email protected] >> _______________________________________________ >> Devel mailing list >> [email protected] >> http://lists.laptop.org/listinfo/devel >> > > > > -- > Regards, > > Ajay Garg > Dextrose Developer > Activity Central: http://activitycentral.com >
_______________________________________________ Sugar-devel mailing list [email protected] http://lists.sugarlabs.org/listinfo/sugar-devel

