[Sugar-devel] [PATCH] touchpad section for Sugar Control Panel

Paul Fox pgf at laptop.org
Thu Jul 29 23:20:49 EDT 2010


walter wrote:
 > On Thu, Jul 29, 2010 at 5:37 PM, Paul Fox <pgf at laptop.org> wrote:
 > > walter wrote:
 > >  > On Thu, Jul 29, 2010 at 6:27 AM, pbrobinson at gmail.com
 > >  > <pbrobinson at gmail.com> wrote:
 > >  > > On Wed, Jul 28, 2010 at 3:41 PM, Sascha Silbe
 > >  > > <sascha-ml-ui-sugar-devel at silbe.org> wrote:
 > >  > >> Excerpts from Paul Fox's message of Wed Jul 28 16:01:22 +0200 2010:
 > >  > >>> sascha wrote:
 > >  > >>>  > Even your latest patch still contains code that is specific to OLPC
 > >  > builds and will break on other systems.
 > >  > >>>  > Of course it's perfectly fine for you to say you only care about 
 > OLPC
 > >  > builds for XO-1 (because the number of XO-1s running non-OLPC builds is
 > >  > minimal, especially if you don't count developers). But in that case your 
 > patch
 > >  > should be included in the OLPC builds, not in Sugar mainline.
 > >  > >>>
 > >  > >>> can you remind me of the specific issue(s) here?
 > >  > >> I can remember two issues (there might be others as well):
 > >  > >> - hardcoded, absolute path (/home/olpc/whatever)
 > >  > >
 > >  > > I agree that it shouldn't ever user /home/olpc as hardcoded. At least
 > >  > > you ~/.olpc-blah as it will then work on what ever distro and what
 > >  > > ever user. I'm not sure of the general standard to use for this.
 > >  >
 > >  > How's this look?
 > >
 > > walter -- i didn't think of this when we were designing all of
 > > this:  how about if, in addition to this patch, you checked at sugar
 > > startup time and used the presence of that file in $HOME as an
 > > indication that you should set ptmode for the user?  then i could
 > > eliminate a chunk of the code from olpc-utils that sascha was
 > > complaining about.
 > >
 > > btw -- i just looked at your patch again -- what happens if
 > > NODE_PATH can't be opened for writing?  write_touchpad_mode()
 > > should fail gracefully in that case.  making the node writeable
 > > is the one line of code that will need to remain external to
 > > sugar, and we shouldn't assume that it has happened.  i'm
 > > referring to this:
 > >
 > >    +def write_touchpad_mode(touchpad):
 > >    +    """ Write the touchpad mode to the node path and set/unset the flag. 
 > """
 > >    +    touchpad_mode_index = TOUCHPAD_MODES.index(touchpad)
 > >    +
 > >    +    node_file_handle = open(NODE_PATH, 'w')
 > >    +    node_file_handle.write(str(touchpad_mode_index))
 > >    +    node_file_handle.close()
 > >    +
 > >    +    if touchpad_mode_index == 0:
 > >    +        if os.path.exists(FLAG_PATH):
 > >    +            os.remove(FLAG_PATH)
 > >    +    else:
 > >    +        flag_file_handle = open(FLAG_PATH, 'w')
 > >    +        flag_file_handle.close()
 > >
 > > paul
 > >
 > >
 > >  >
 > >  > 35,36c35,36
 > >  > < # FLAG_PATH is used to preserve status between boots.
 > >  > < FLAG_PATH = '/home/olpc/.olpc-pentablet-mode'
 > >  > ---
 > >  > > # FLAG_FILE is used to preserve status between boots.
 > >  > > FLAG_FILE = '.olpc-pentablet-mode'
 > >  > 123a124
 > >  > >     _flag_path = os.join(os.environ['HOME'], FLAG_FILE)
 > >  > 125,126c126,127
 > >  > <         if os.path.exists(FLAG_PATH):
 > >  > <             os.remove(FLAG_PATH)
 > >  > ---
 > >  > >         if os.path.exists(_flag_path):
 > >  > >             os.remove(_flag_path)
 > >  > 128c129
 > >  > <         flag_file_handle = open(FLAG_PATH, 'w')
 > >  > ---
 > >  > >         flag_file_handle = open(_flag_path, 'w')
 > >  >
 > >  > -walter
 > >  > >
 > >  > > Peter
 > >  > > _______________________________________________
 > >  > > Sugar-devel mailing list
 > >  > > Sugar-devel at lists.sugarlabs.org
 > >  > > http://lists.sugarlabs.org/listinfo/sugar-devel
 > >  > >
 > >  >
 > >  >
 > >  >
 > >  > --
 > >  > Walter Bender
 > >  > Sugar Labs
 > >  > http://www.sugarlabs.org
 > >  > _______________________________________________
 > >  > Sugar-devel mailing list
 > >  > Sugar-devel at lists.sugarlabs.org
 > >  > http://lists.sugarlabs.org/listinfo/sugar-devel
 > >
 > > =---------------------
 > >  paul fox, pgf at laptop.org
 > >
 > 
 > This do the trick?

it might.  it's really hard to tell without the -u option to
patch.  line number patches are so last century.  ;-)

paul

 > 
 > 35,36c35,36
 > < # FLAG_PATH is used to preserve status between boots.
 > < FLAG_PATH = '/home/olpc/.olpc-pentablet-mode'
 > ---
 > > # FLAG_FILE is used to preserve status between boots.
 > > FLAG_FILE = '.olpc-pentablet-mode'
 > 104a105,108
 > >         _flag_path = os.join(os.environ['HOME'], FLAG_FILE)
 > >         # if _flag_path exists, set the initial device value to stylus
 > >         if os.path.exists(_flag_path):
 > >             write_to_node_file(str(TOUCHPAD_MODES.index('stylus')))
 > 120,122c124
 > <     node_file_handle = open(NODE_PATH, 'w')
 > <     node_file_handle.write(str(touchpad_mode_index))
 > <     node_file_handle.close()
 > ---
 > >     write_to_node_file(str(touchpad_mode_index))
 > 123a126
 > >     _flag_path = os.join(os.environ['HOME'], FLAG_FILE)
 > 125c128
 > <         if os.path.exists(FLAG_PATH):
 > ---
 > >         if os.path.exists(_flag_path):
 > 128c131
 > <         flag_file_handle = open(FLAG_PATH, 'w')
 > ---
 > >         flag_file_handle = open(_flag_path, 'w')
 > 129a133,143
 > >
 > >
 > > def write_to_node_file(value):
 > >     """ Write to node path, catching exception is there is a problem """
 > >     try:
 > >         node_file_handle = open(NODE_PATH, 'w')
 > >     except IOError, e:
 > >         print e
 > >         return
 > >     node_file_handle.write(value)
 > >     node_file_handle.close()
 > 
 > -walter
 > -- 
 > Walter Bender
 > Sugar Labs
 > http://www.sugarlabs.org

=---------------------
 paul fox, pgf at laptop.org


More information about the Sugar-devel mailing list