summaryrefslogtreecommitdiff
path: root/core
authormickeyl <mickeyl>2005-06-20 15:48:41 (UTC)
committer mickeyl <mickeyl>2005-06-20 15:48:41 (UTC)
commit53e05ad30759aefd977e301c84b8b60a78819c76 (patch) (side-by-side diff)
tree0a98e76e6d37c958dae43537dd371de320a6510f /core
parent3b02e2a868535628090567ed612d9fdb5b247f61 (diff)
downloadopie-53e05ad30759aefd977e301c84b8b60a78819c76.zip
opie-53e05ad30759aefd977e301c84b8b60a78819c76.tar.gz
opie-53e05ad30759aefd977e301c84b8b60a78819c76.tar.bz2
an attempt to fix #1377
Diffstat (limited to 'core') (more/less context) (show whitespace changes)
-rw-r--r--core/applets/vtapplet/vt.cpp9
-rw-r--r--core/applets/vtapplet/vt.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/core/applets/vtapplet/vt.cpp b/core/applets/vtapplet/vt.cpp
index 0d4e657..7885f83 100644
--- a/core/applets/vtapplet/vt.cpp
+++ b/core/applets/vtapplet/vt.cpp
@@ -33,7 +33,7 @@ using namespace Opie::Core;
#include <linux/vt.h>
VTApplet::VTApplet ( )
- : QObject ( 0, "VTApplet" )
+ :QObject( 0, "VTApplet" ), m_ourVT( 0 )
{
}
@@ -96,6 +96,8 @@ QPopupMenu *VTApplet::popup ( QWidget* parent ) const
}
::close( fd );
+ m_ourVT = vtstat.v_active;
+
connect( m_subMenu, SIGNAL( activated(int) ), this, SLOT( changeVT(int) ) );
connect( m_subMenu, SIGNAL( aboutToShow() ), this, SLOT( updateMenu() ) );
@@ -114,6 +116,11 @@ void VTApplet::changeVT( int index )
#endif
if ( fd == -1 ) return;
ioctl( fd, VT_ACTIVATE, index-500 );
+ if ( m_ourVT )
+ {
+ odebug << "VTApplet::waiting for user to return to VT " << m_ourVT << oendl;
+ ioctl( fd, VT_WAITACTIVE, m_ourVT );
+ }
}
diff --git a/core/applets/vtapplet/vt.h b/core/applets/vtapplet/vt.h
index 4c92ddd..4fa73e5 100644
--- a/core/applets/vtapplet/vt.h
+++ b/core/applets/vtapplet/vt.h
@@ -46,6 +46,7 @@ public slots:
virtual void updateMenu();
private:
mutable QPopupMenu* m_subMenu;
+ mutable int m_ourVT;
};