Репозитории ALT
5.1: | 3.5.10-alt20.M51.2 |
4.1: | 3.5.10-alt16.M41.1 |
4.0: | 3.5.9-alt1.M40.1 |
3.0: | 3.4.1-alt12 |
+updates: | 3.4.1-alt12.1.M30 |
+backports: | 3.5.6-alt7.0.M30 |
Группа :: Графические оболочки/KDE
Пакет: kdebase
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: kdebase-3.5.10-alt-kdesktop-lock-show-layout-chnange.patch
Скачать
Скачать
--- kdebase-3.5.10/kdesktop/lock/lockdlg.cc~ 2008-08-25 11:40:20 +0000
+++ kdebase-3.5.10/kdesktop/lock/lockdlg.cc 2008-09-17 16:07:00 +0000
@@ -731,4 +731,20 @@ void PasswordDlg::capsLocked()
updateLabel();
}
+void PasswordDlg::updateLayout()
+{
+ DCOPRef kxkb("kxkb", "kxkb");
+ if( !kxkb.isNull() ) {
+ kxkb.setRef("kkbswitch", "KBSwitchIntf");
+ QString currentLayout = kxkb.call("getCurrentLayout");
+ if( !currentLayout.isEmpty() && layoutsList.count() > 1 ) {
+ currLayout = layoutsList.find(currentLayout);
+ if (currLayout == layoutsList.end())
+ setLayoutText("err");
+ else
+ setLayoutText(*currLayout);
+ }
+ }
+}
+
#include "lockdlg.moc"
--- kdebase-3.5.10/kdesktop/lock/lockdlg.h~ 2005-07-17 20:47:07 +0000
+++ kdebase-3.5.10/kdesktop/lock/lockdlg.h 2008-09-17 16:11:24 +0000
@@ -55,6 +55,7 @@ private slots:
void slotOK();
void layoutClicked();
void slotActivity();
+ void updateLayout();
private:
void setLayoutText( const QString &txt );
--- kdebase-3.5.10/kdesktop/lock/lockprocess.cc~ 2008-09-17 15:33:10 +0000
+++ kdebase-3.5.10/kdesktop/lock/lockprocess.cc 2008-09-17 15:38:26 +0000
@@ -910,6 +910,7 @@ bool LockProcess::checkPass()
killTimer(mAutoLogoutTimerId);
PasswordDlg passDlg( this, &greetPlugin);
+ connect(qApp, SIGNAL(xkbStateChanged()), &passDlg, SLOT(updateLayout()));
int ret = execDialog( &passDlg );
--- kdebase-3.5.10/kdesktop/lock/main.cc~ 2008-09-17 15:21:55 +0000
+++ kdebase-3.5.10/kdesktop/lock/main.cc 2008-09-17 16:00:05 +0000
@@ -32,10 +32,15 @@
#include <stdlib.h>
#include <X11/Xlib.h>
+#include <X11/extensions/XKB.h>
#include <fixx11h.h>
bool MyApp::x11EventFilter( XEvent *ev )
{
+ if( ev->type == XkbStateNotify )
+ {
+ emit xkbStateChanged();
+ } else
if (ev->type == XKeyPress || ev->type == ButtonPress)
emit activity();
else if (ev->type == MotionNotify) {
--- kdebase-3.5.10/kdesktop/lock/main.h~ 2005-10-10 15:04:07 +0000
+++ kdebase-3.5.10/kdesktop/lock/main.h 2008-09-17 15:32:56 +0000
@@ -32,6 +32,7 @@ protected:
bool x11EventFilter( XEvent * );
signals:
void activity();
+ void xkbStateChanged();
private:
time_t lastTick;
};