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 _______________________________________________ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community