#10396 NORM 10.1.3: Read must focus in the view if XO is post in ebook position

Zarro Boogs per Child bugtracker at laptop.org
Thu Oct 21 06:07:15 EDT 2010

#10396: Read must focus in the view if XO is post in ebook position
           Reporter:  godiard        |       Owner:  godiard                          
               Type:  enhancement    |      Status:  new                              
           Priority:  normal         |   Milestone:  10.1.3                           
          Component:  read-activity  |     Version:  Development build as of this date
         Resolution:                 |    Keywords:                                   
        Next_action:  review         |    Verified:  0                                
Deployment_affected:                 |   Blockedby:                                   
           Blocking:  8602           |  

Comment(by erikos):

 Replying to [comment:17 pgf]:
 > this ticket was starting to confuse me, so i just looked at and tried
 Read to see how it works.
 > Read already has some key actions that it performs regardless of focus
 -- it will zoom in or out if you use the "check" or "square" gamepad keys.
 the latter actions (presumably -- i'm no python expert) happen because the
 KP_Home and KP_End keynames are handled in
 ReadActivity._key_press_event_cb(), and cause zoom_in/_out() routines to
 be called.
 > it seems to me that the d-pad keys could be similarly bound in a focus
 independent way by having the same routine look for KP_Up, KP_Down,
 KP_Left, and KP_Right.  this will catch just the d-pad keys, and not the
 "regular" arrow keys, and of course they should somehow be bound to
 scrolling operations.

 Actually, there is a difference for the ebub code and the pdf one. The
 epub code (is a bit hidden unless you look on the XO)] does listen for the
 KP_* events, so for epubs scrolling work.

    def _view_keypress_event_cb(self, view, event):
         name = gtk.gdk.keyval_name(event.keyval)
         if name == 'KP_Page_Down':
             self.scroll(gtk.SCROLL_PAGE_FORWARD, False)
             return True
         elif name == 'KP_Page_Up':
             self.scroll(gtk.SCROLL_PAGE_BACKWARD, False)
             return True
         elif name == 'KP_Down':
             self.scroll(gtk.SCROLL_STEP_FORWARD, False)
             return True
         elif name == 'KP_Up':
              self.scroll(gtk.SCROLL_STEP_BACKWARD, False)
              return True
         elif name == 'Page_Down' or name == 'Down':
             self.__going_back = False
             self.__going_fwd = True
         elif name == 'Page_Up' or name == 'Up':
             self.__going_back = True
             self.__going_fwd = False

 I will have a look how we can make that work best for pdfs as well.

 Btw, for epubs the scrolling in rotation mode is inverse despite that code
 (for olpc-kbdshim 14 and 15).

Ticket URL: <http://dev.laptop.org/ticket/10396#comment:21>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system

More information about the Bugs mailing list