summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/vtapplet/vt.cpp25
-rw-r--r--core/applets/vtapplet/vt.h1
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;
};