summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-04-15 03:09:04 (UTC)
committer kergoth <kergoth>2003-04-15 03:09:04 (UTC)
commit35edf52692c9f5e68b07072dd79b857d16d79559 (patch) (unidiff)
treeeba09e5b180592ddbad73106025759bb1b30c888
parenta0dd69741995f33de4eea6a5f97f46b91dff4cb8 (diff)
downloadopie-35edf52692c9f5e68b07072dd79b857d16d79559.zip
opie-35edf52692c9f5e68b07072dd79b857d16d79559.tar.gz
opie-35edf52692c9f5e68b07072dd79b857d16d79559.tar.bz2
Unconditionally override Rot value when using the Transformed driver.
This 1) Ensures that we dont hose QWS_DISPLAY when using a driver other than transformed, and 2) should ensure that the default rotation isnt screwed up when 'restart'ing Opie, thereby closing bug #796.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/main.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp
index a6e2a9d..20a1ecd 100644
--- a/core/launcher/main.cpp
+++ b/core/launcher/main.cpp
@@ -27,104 +27,99 @@
27#include <qpe/config.h> 27#include <qpe/config.h>
28#if defined( QT_QWS_SL5XXX ) || defined( QT_QWS_IPAQ ) 28#if defined( QT_QWS_SL5XXX ) || defined( QT_QWS_IPAQ )
29#include <qpe/custom.h> 29#include <qpe/custom.h>
30#endif 30#endif
31 31
32#include <opie/odevice.h> 32#include <opie/odevice.h>
33 33
34#include <qmessagebox.h> 34#include <qmessagebox.h>
35#include <qfile.h> 35#include <qfile.h>
36#include <qimage.h> 36#include <qimage.h>
37#include <qwindowsystem_qws.h> 37#include <qwindowsystem_qws.h>
38#include <qwsmouse_qws.h> 38#include <qwsmouse_qws.h>
39#include <qpe/qcopenvelope_qws.h> 39#include <qpe/qcopenvelope_qws.h>
40#include <qpe/alarmserver.h> 40#include <qpe/alarmserver.h>
41 41
42#include <stdlib.h> 42#include <stdlib.h>
43#include <stdio.h> 43#include <stdio.h>
44#include <signal.h> 44#include <signal.h>
45#include <unistd.h> 45#include <unistd.h>
46 46
47#include "../calibrate/calibrate.h" 47#include "../calibrate/calibrate.h"
48 48
49using namespace Opie; 49using namespace Opie;
50 50
51void initEnvironment() 51void initEnvironment()
52{ 52{
53 int rot; 53 int rot;
54 Config config("locale"); 54 Config config("locale");
55 55
56 config.setGroup( "Location" ); 56 config.setGroup( "Location" );
57 QString tz = config.readEntry( "Timezone", getenv("TZ") ); 57 QString tz = config.readEntry( "Timezone", getenv("TZ") );
58 58
59 // if not timezone set, pick New York 59 // if not timezone set, pick New York
60 if (tz.isNull()) 60 if (tz.isNull())
61 tz = "America/New_York"; 61 tz = "America/New_York";
62 62
63 setenv( "TZ", tz, 1 ); 63 setenv( "TZ", tz, 1 );
64 config.writeEntry( "Timezone", tz); 64 config.writeEntry( "Timezone", tz);
65 65
66 config.setGroup( "Language" ); 66 config.setGroup( "Language" );
67 QString lang = config.readEntry( "Language", getenv("LANG") ); 67 QString lang = config.readEntry( "Language", getenv("LANG") );
68 if ( !lang.isNull() ) 68 if ( !lang.isNull() )
69 setenv( "LANG", lang, 1 ); 69 setenv( "LANG", lang, 1 );
70 70
71#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX) 71#if !defined(QT_QWS_CASSIOPEIA) && !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX)
72 setenv( "QWS_SIZE", "240x320", 0 ); 72 setenv( "QWS_SIZE", "240x320", 0 );
73#endif 73#endif
74 74
75 /* 75 QString env(getenv("QWS_DISPLAY"));
76 * Rotation: 76 if (env.contains("Transformed")) {
77 * 1. use env var if set 77 // transformed driver default rotation is controlled by the hardware.
78 * 2. use saved default if set
79 * 3. use physical orientation (currently fails due to ODevice
80 * using a QPixmap and therefore requiring a QApplication)
81 */
82 if ( getenv("QWS_DISPLAY") == NULL ) {
83 Config config("qpe"); 78 Config config("qpe");
84 config.setGroup( "Rotation" ); 79 config.setGroup( "Rotation" );
85 if ( ( rot = config.readNumEntry( "Rot", -1 ) ) == -1 ) 80 if ( ( rot = config.readNumEntry( "Rot", -1 ) ) == -1 )
86 rot = ODevice::inst ( )-> rotation ( ) * 90; 81 rot = ODevice::inst ( )-> rotation ( ) * 90;
87 82
88 setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(rot), 1); 83 setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(rot), 1);
89 QPEApplication::defaultRotation ( ); /* to ensure deforient matches reality */ 84 QPEApplication::defaultRotation ( ); /* to ensure deforient matches reality */
90 } 85 }
91} 86}
92 87
93 88
94int initApplication( int argc, char ** argv ) 89int initApplication( int argc, char ** argv )
95{ 90{
96 initEnvironment(); 91 initEnvironment();
97 92
98 //Don't flicker at startup: 93 //Don't flicker at startup:
99 QWSServer::setDesktopBackground( QImage() ); 94 QWSServer::setDesktopBackground( QImage() );
100 95
101 DesktopApplication a( argc, argv, QApplication::GuiServer ); 96 DesktopApplication a( argc, argv, QApplication::GuiServer );
102 97
103 ODevice::inst ( )-> setSoftSuspend ( true ); 98 ODevice::inst ( )-> setSoftSuspend ( true );
104 99
105 { // init backlight 100 { // init backlight
106 QCopEnvelope e("QPE/System", "setBacklight(int)" ); 101 QCopEnvelope e("QPE/System", "setBacklight(int)" );
107 e << -3; // Forced on 102 e << -3; // Forced on
108 } 103 }
109 104
110 AlarmServer::initialize(); 105 AlarmServer::initialize();
111 106
112 Desktop *d = new Desktop(); 107 Desktop *d = new Desktop();
113 108
114 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) ); 109 QObject::connect( &a, SIGNAL(power()), d, SLOT(togglePower()) );
115 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) ); 110 QObject::connect( &a, SIGNAL(backlight()), d, SLOT(toggleLight()) );
116 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) ); 111 QObject::connect( &a, SIGNAL(symbol()), d, SLOT(toggleSymbolInput()) );
117 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) ); 112 QObject::connect( &a, SIGNAL(numLockStateToggle()), d, SLOT(toggleNumLockState()) );
118 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) ); 113 QObject::connect( &a, SIGNAL(capsLockStateToggle()), d, SLOT(toggleCapsLockState()) );
119 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) ); 114 QObject::connect( &a, SIGNAL(prepareForRestart()), d, SLOT(terminateServers()) );
120 115
121 (void)new SysFileMonitor(d); 116 (void)new SysFileMonitor(d);
122 Network::createServer(d); 117 Network::createServer(d);
123 118
124 if ( QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) { 119 if ( QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) {
125 if ( !QFile::exists( "/etc/pointercal" ) ) { 120 if ( !QFile::exists( "/etc/pointercal" ) ) {
126 // Make sure calibration widget starts on top. 121 // Make sure calibration widget starts on top.
127 Calibrate *cal = new Calibrate; 122 Calibrate *cal = new Calibrate;
128 cal->exec(); 123 cal->exec();
129 delete cal; 124 delete cal;
130 } 125 }