-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 | |||
@@ -32,26 +32,26 @@ using namespace Opie::Core; | |||
32 | #include <sys/ioctl.h> | 32 | #include <sys/ioctl.h> |
33 | #include <linux/vt.h> | 33 | #include <linux/vt.h> |
34 | 34 | ||
35 | VTApplet::VTApplet ( ) | 35 | VTApplet::VTApplet() |
36 | : QObject ( 0, "VTApplet" ) | 36 | :QObject( 0, "VTApplet" ), m_ourVT( 0 ) |
37 | { | 37 | { |
38 | } | 38 | } |
39 | 39 | ||
40 | VTApplet::~VTApplet ( ) | 40 | VTApplet::~VTApplet() |
41 | { | 41 | { |
42 | } | 42 | } |
43 | 43 | ||
44 | int VTApplet::position ( ) const | 44 | int VTApplet::position() const |
45 | { | 45 | { |
46 | return 2; | 46 | return 2; |
47 | } | 47 | } |
48 | 48 | ||
49 | QString VTApplet::name ( ) const | 49 | QString VTApplet::name() const |
50 | { | 50 | { |
51 | return tr( "VT shortcut" ); | 51 | return tr( "VT shortcut" ); |
52 | } | 52 | } |
53 | 53 | ||
54 | QString VTApplet::text ( ) const | 54 | QString VTApplet::text() const |
55 | { | 55 | { |
56 | return tr( "Terminal" ); | 56 | return tr( "Terminal" ); |
57 | } | 57 | } |
@@ -68,13 +68,13 @@ QString VTApplet::tr( const char* s, const char* p ) const | |||
68 | } | 68 | } |
69 | */ | 69 | */ |
70 | 70 | ||
71 | QIconSet VTApplet::icon ( ) const | 71 | QIconSet VTApplet::icon() const |
72 | { | 72 | { |
73 | QPixmap pix = Opie::Core::OResource::loadPixmap( "terminal", Opie::Core::OResource::SmallIcon ); | 73 | QPixmap pix = Opie::Core::OResource::loadPixmap( "terminal", Opie::Core::OResource::SmallIcon ); |
74 | return pix; | 74 | return pix; |
75 | } | 75 | } |
76 | 76 | ||
77 | QPopupMenu *VTApplet::popup ( QWidget* parent ) const | 77 | QPopupMenu *VTApplet::popup( QWidget* parent ) const |
78 | { | 78 | { |
79 | odebug << "VTApplet::popup" << oendl; | 79 | odebug << "VTApplet::popup" << oendl; |
80 | 80 | ||
@@ -96,6 +96,8 @@ QPopupMenu *VTApplet::popup ( QWidget* parent ) const | |||
96 | } | 96 | } |
97 | ::close( fd ); | 97 | ::close( fd ); |
98 | 98 | ||
99 | m_ourVT = vtstat.v_active; | ||
100 | |||
99 | connect( m_subMenu, SIGNAL( activated(int) ), this, SLOT( changeVT(int) ) ); | 101 | connect( m_subMenu, SIGNAL( activated(int) ), this, SLOT( changeVT(int) ) ); |
100 | connect( m_subMenu, SIGNAL( aboutToShow() ), this, SLOT( updateMenu() ) ); | 102 | connect( m_subMenu, SIGNAL( aboutToShow() ), this, SLOT( updateMenu() ) ); |
101 | 103 | ||
@@ -114,6 +116,11 @@ void VTApplet::changeVT( int index ) | |||
114 | #endif | 116 | #endif |
115 | if ( fd == -1 ) return; | 117 | if ( fd == -1 ) return; |
116 | ioctl( fd, VT_ACTIVATE, index-500 ); | 118 | ioctl( fd, VT_ACTIVATE, index-500 ); |
119 | if ( m_ourVT ) | ||
120 | { | ||
121 | odebug << "VTApplet::waiting for user to return to VT " << m_ourVT << oendl; | ||
122 | ioctl( fd, VT_WAITACTIVE, m_ourVT ); | ||
123 | } | ||
117 | } | 124 | } |
118 | 125 | ||
119 | 126 | ||
@@ -148,7 +155,7 @@ void VTApplet::activated() | |||
148 | } | 155 | } |
149 | 156 | ||
150 | 157 | ||
151 | QRESULT VTApplet::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) | 158 | QRESULT VTApplet::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) |
152 | { | 159 | { |
153 | *iface = 0; | 160 | *iface = 0; |
154 | if ( uuid == IID_QUnknown ) | 161 | if ( uuid == IID_QUnknown ) |
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: | |||
46 | virtual void updateMenu(); | 46 | virtual void updateMenu(); |
47 | private: | 47 | private: |
48 | mutable QPopupMenu* m_subMenu; | 48 | mutable QPopupMenu* m_subMenu; |
49 | mutable int m_ourVT; | ||
49 | }; | 50 | }; |
50 | 51 | ||
51 | 52 | ||