author | mickeyl <mickeyl> | 2005-06-20 15:48:41 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-06-20 15:48:41 (UTC) |
commit | 53e05ad30759aefd977e301c84b8b60a78819c76 (patch) (side-by-side diff) | |
tree | 0a98e76e6d37c958dae43537dd371de320a6510f | |
parent | 3b02e2a868535628090567ed612d9fdb5b247f61 (diff) | |
download | opie-53e05ad30759aefd977e301c84b8b60a78819c76.zip opie-53e05ad30759aefd977e301c84b8b60a78819c76.tar.gz opie-53e05ad30759aefd977e301c84b8b60a78819c76.tar.bz2 |
an attempt to fix #1377
-rw-r--r-- | core/applets/vtapplet/vt.cpp | 25 | ||||
-rw-r--r-- | core/applets/vtapplet/vt.h | 1 |
2 files changed, 17 insertions, 9 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,24 +33,24 @@ using namespace Opie::Core; #include <linux/vt.h> -VTApplet::VTApplet ( ) - : QObject ( 0, "VTApplet" ) +VTApplet::VTApplet() + :QObject( 0, "VTApplet" ), m_ourVT( 0 ) { } -VTApplet::~VTApplet ( ) +VTApplet::~VTApplet() { } -int VTApplet::position ( ) const +int VTApplet::position() const { return 2; } -QString VTApplet::name ( ) const +QString VTApplet::name() const { return tr( "VT shortcut" ); } -QString VTApplet::text ( ) const +QString VTApplet::text() const { return tr( "Terminal" ); @@ -69,5 +69,5 @@ QString VTApplet::tr( const char* s, const char* p ) const */ -QIconSet VTApplet::icon ( ) const +QIconSet VTApplet::icon() const { QPixmap pix = Opie::Core::OResource::loadPixmap( "terminal", Opie::Core::OResource::SmallIcon ); @@ -75,5 +75,5 @@ QIconSet VTApplet::icon ( ) const } -QPopupMenu *VTApplet::popup ( QWidget* parent ) const +QPopupMenu *VTApplet::popup( QWidget* parent ) const { odebug << "VTApplet::popup" << oendl; @@ -97,4 +97,6 @@ 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() ) ); @@ -115,4 +117,9 @@ void VTApplet::changeVT( int index ) 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 ); + } } @@ -149,5 +156,5 @@ void VTApplet::activated() -QRESULT VTApplet::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) +QRESULT VTApplet::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { *iface = 0; 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 @@ -47,4 +47,5 @@ public slots: private: mutable QPopupMenu* m_subMenu; + mutable int m_ourVT; }; |