Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37789421
en ru br
Репозитории 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
www.altlinux.org/Changes

Группа :: Графические оболочки/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;
 };      
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin