[Sugar-devel] prevent screen rotation in a sugar activity?

James Cameron quozl at laptop.org
Mon Dec 13 18:03:32 EST 2010

On Mon, Dec 13, 2010 at 01:12:04PM -0500, Bakhtiar Mikhak wrote:
> On Dec 10, 2010, at 6:09 PM, James Cameron wrote:
> > On Fri, Dec 10, 2010 at 05:50:54PM -0500, Bakhtiar Mikhak wrote:
> >> If I am reading the current version of HIG correctly, it is not a
> >> requirement for developers to implement a portrait layout for their
> >> activity:
> >> 
> >>   Screen Rotation
> >> 
> >>   While in Hand-held mode, the laptops support screen rotation; by
> >>   pressing a small button on the bezel of the display, the interface
> >>   will rotate 90 degrees to provide a portrait layout of the
> >>   currently active activity. Just as any activity can implement
> >>   Hand-held mode, those which can benefit from a vertical aspect
> >>   ratio may also implement this feature, and we encourage developers
> >>   to take advantage of this functionality.
> > 
> > Agreed, it is not a requirement for the activity to implement portrait
> > layout.  When it is not implemented, part of the activity would be
> > invisible after rotation.  The learner will rapidly find the activity
> > does not work well when rotated, and will avoid rotating.
> I was not suggesting to support a UI rotation without accounting for
> the change in the dimensions!

I wasn't suggesting that either.  I mentioned it in order to be
comprehensive.  I've seen several activities or applications react in
this way to rotation.

> Setting aside the wisdom of iPhone and Android allowing developers
> control over UI rotation, there are however practical considerations
> on XOs that lead us to want to disable UI rotation. For example, as
> one can easily verify in Record and other activities which use
> Gstreamer, xvimagesink does not rotate its contents.

Ah, so you're saying the reason you do not wish to support rotation in
your activity is that xvimagesink does not support rotation.  You are in
the same situation as the Record activity then.  I was not aware of

> Your comments did also make us wonder if the case that you seem to be
> concerned with can be seen anywhere on the laptop right now. And, we
> discovered the bug that you can see in [ http://imgur.com/z8s4i ] on
> the latest Sugar build on an XO-1.5. Note that the speaker icon gets
> positioned incorrectly after a UI rotation as well. 

That's not the latest Sugar build, and that's not an XO-1.5.  It is an
XO-1, with OpenFirmware Q2E45, running OLPC OS os357.  It's nearly the
latest OLPC OS build; os358 follows.  These are development builds
leading toward 10.1.3 release.

> We have just filed tickets for these bugs.

Where?  I've just checked on http://bugs.sugarlabs.org/ and
http://dev.laptop.org/ and couldn't find them.

> >> I therefore think it is worth considering if the control over if/how
> >> one's activity takes advantage of screen rotation should be exposed
> >> through the Sugar API.
> > 
> > Sounds good, please propose a design and patch.
> There are many people on this list who are more deeply familiar with
> the Sugar source code and would know best know how to go about doing
> this, but I am happy to work on it, and it would definitely be a good
> constructionist learning experience. In the meantime, however, as
> activity developers with limited time and resources, we were initially
> asking if this functionality is already supported and exposed through
> the API.  
> The larger point being, sometimes Activity developers would not mind
> foregoing an opportunity to extend the platform they build on in
> exchange for access to tools that help them be more expressive and
> productive with that platform. Inviting our developers to extend the
> system when they ask whether a feature is supported in the API,
> however well intentioned and welcoming it is meant to be, can serve as
> a deterrent. I am sure that is not what we want.

Yes, it would be a deterrent to many.  The last thing Sugar needs is
changes that break things.  Having been responsible for one recently,
I'm being very cautious now.  I'm not sure that it has helped, my
patches still don't get in.  I really doubt that I alone could achieve
the API you desire.

By the way, a request for an API for an activity to prevent rotate
was logged in 2007 in ticket #2791.  http://dev.laptop.org/ticket/2791

See also

http://dev.laptop.org/ticket/6477 (record-activity suddenly breaks if
screen is rotated)

http://dev.laptop.org/ticket/5797 (Record doesn't display image if the
screen is rotated)

http://dev.laptop.org/ticket/4112 (Need option to rotate recorded

James Cameron

More information about the Sugar-devel mailing list