Ideal screen rotation

Helge Hafting helge.hafting at hist.no
Mon Nov 9 13:28:48 CET 2009


Rui Miguel Silva Seabra wrote:
> On Fri, Nov 06, 2009 at 04:40:04PM +0100, Helge Hafting wrote:

>> But there is a problem. The user may switch between several apps with
>> different rotation needs. (xmahjongg needs landscape, tetris needs 
>> portrait, ...)  How will omnewrotate be notified about this?
> 
> The proper way is to define a set of DBUS signals.
> 
> Of course conflicting signals need to be ignored.

What conflicting signals? A proper implementation won't
have conflicts?

The normal freerunner usage is to maximize the foreground app, so there
is only one app that need its rotation preference obeyed at any time.

The user may run both some portrait apps, some landscape apps, and some
"don't care at all" apps and some "use the accelerometer orientation" 
apps all at the same time.  All of them can state their preferences,
only one need to be obeyed at any time.

So, when the user uses the arrows to flip form app to app, the 
orientation stays the same if a "don't care" app is selected, or some 
app that wants the current orientation. If an app with a different 
orientation is selected, the display should change _before_ the new app
gets painted. It is a huge waste of time if the app first shows in the 
wrong orientation, and then quickly changes. (Or if the previous app
is repainted in the new orientation before the new app is brought to the 
surface.)

There are no conflicts, but whatever software you have managing the 
display must be able to change orientation at exactly the right moment.

Merely setting the orientation when an app is launched (like we do for 
backlight) is no good - the user can switch apps at any time. Good 
orientation management must therefore be a part of the app switching 
mechanism.

Helge Hafting



More information about the community mailing list