packages: kde4-kdebase-workspace/kde4-kdebase-workspace-branch.diff, kde4-k...

arekm arekm at pld-linux.org
Fri Sep 24 19:56:47 CEST 2010


Author: arekm                        Date: Fri Sep 24 17:56:47 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 5; branch diff updated

---- Files affected:
packages/kde4-kdebase-workspace:
   kde4-kdebase-workspace-branch.diff (1.21 -> 1.22) , kde4-kdebase-workspace.spec (1.237 -> 1.238) 

---- Diffs:

================================================================
Index: packages/kde4-kdebase-workspace/kde4-kdebase-workspace-branch.diff
diff -u packages/kde4-kdebase-workspace/kde4-kdebase-workspace-branch.diff:1.21 packages/kde4-kdebase-workspace/kde4-kdebase-workspace-branch.diff:1.22
--- packages/kde4-kdebase-workspace/kde4-kdebase-workspace-branch.diff:1.21	Wed Sep  1 14:56:18 2010
+++ packages/kde4-kdebase-workspace/kde4-kdebase-workspace-branch.diff	Fri Sep 24 19:56:41 2010
@@ -1,5 +1,41 @@
---- workspace/kcontrol/dateandtime/helper.cpp	(.../tags/KDE/4.5.1/kdebase)	(wersja 1170567)
-+++ workspace/kcontrol/dateandtime/helper.cpp	(.../branches/KDE/4.5/kdebase)	(wersja 1170567)
+--- workspace/ksmserver/kcm/kcmsmserver.desktop	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/ksmserver/kcm/kcmsmserver.desktop	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -14,7 +14,7 @@
+ Name[ar]=إدارة  الجلسات
+ Name[ca]=Gestió de sessions
+ Name[ca at valencia]=Gestió de sessions
+-Name[cs]=Správa relací
++Name[cs]=Správa sezení
+ Name[da]=Sessionshåndtering
+ Name[de]=Sitzungsverwaltung
+ Name[el]=Διαχείριση συνεδριών
+@@ -29,6 +29,7 @@
+ Name[gu]=સત્ર વ્યવસ્થાપન
+ Name[hi]=सत्र प्रबंधक
+ Name[hr]=Upravljanje sesijama
++Name[hu]=Munkamenetkezelés
+ Name[ia]=Gestion de Session
+ Name[id]=Manajemen Sesi
+ Name[is]=Setustjórn
+@@ -57,6 +58,7 @@
+ Name[sr at latin]=Upravljanje sesijama
+ Name[sv]=Sessionshantering
+ Name[th]=จัดการวาระงาน
++Name[tr]=Oturum Yönetimi
+ Name[uk]=Керування сеансами
+ Name[x-test]=xxSession Managementxx
+ Name[zh_CN]=会话管理
+@@ -73,7 +75,7 @@
+ Comment[br]=Kefluniañ ar merour an dalc'hioù hag an doare mont kuit
+ Comment[ca]=Aquí podeu configurar el gestor de la sessió i la sortida
+ Comment[ca at valencia]=Ací podeu configurar el gestor de la sessió i l'eixida
+-Comment[cs]=Nastavení správce relace a odhlašování
++Comment[cs]=Nastavení správce sezení a odhlašování
+ Comment[csb]=Kònfigùracëjô menedżera sesëji ë nastôwów wëlogòwaniô
+ Comment[cy]=Ffurfweddu'r rheolydd sesiwn a gosodiadau allgofnodi
+ Comment[da]=Indstil sessionshåndterig og log ud-indstillinger
+--- workspace/kcontrol/dateandtime/helper.cpp	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/dateandtime/helper.cpp	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
 @@ -58,7 +58,7 @@
    if(!config_file.exists()) {
      config_file.open(QIODevice::WriteOnly);
@@ -9,9 +45,64 @@
    }
    KConfig _config(config_file.fileName(), KConfig::SimpleConfig);
    KConfigGroup config(&_config, "NTP");
---- workspace/kcontrol/keyboard/keyboard_hardware.cpp	(.../tags/KDE/4.5.1/kdebase)	(wersja 1170567)
-+++ workspace/kcontrol/keyboard/keyboard_hardware.cpp	(.../branches/KDE/4.5/kdebase)	(wersja 1170567)
-@@ -16,19 +16,20 @@
+--- workspace/kcontrol/kfontinst/kcmfontinst/fontinst.desktop	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/kfontinst/kcmfontinst/fontinst.desktop	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -106,7 +106,7 @@
+ Comment[bg]=Инсталиране и преглед на шрифтове
+ Comment[bn]=ফন্ট ইনস্টল, ব্যবস্থাপনা, এবং প্রাক্‌দর্শন করুন
+ Comment[bn_IN]=ফন্ট ইনস্টল, পরিচালনা করুন ও পূর্বরূপ প্রদর্শন করুন
+-Comment[ca]=Instal·lació , gestió i vista prèvia dels tipus de lletra
++Comment[ca]=Instal·lació, gestió i vista prèvia dels tipus de lletra
+ Comment[ca at valencia]=Instal·lació , gestió i vista prèvia dels tipus de lletra
+ Comment[cs]=Instalace, správa a náhled písem
+ Comment[csb]=Instalacëjô, sprôwianié ë pòdzérk fòntów
+--- workspace/kcontrol/autostart/autostart.desktop	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/autostart/autostart.desktop	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -160,6 +160,7 @@
+ Comment[te]=KDE తో ఏ కార్యక్రమములు ప్రారంభంకావాలో నిర్వహించుటకు ఆకృతీకరణ సాధనం
+ Comment[tg]=Асбоби танзимотӣ барои идоракунии барномаҳое, ки бо KDE оғоз мешаванд.
+ Comment[th]=เครื่องมือปรับแต่งสำหรับกำหนดว่าจะให้โปรแกรมใดบ้างที่เริ่มทำงานอัตโนมัติพร้อมกับ KDE
++Comment[tr]=KDE oturumu açılırken başlatılacak uygulamaları yapılandırmanızı sağlayan bir araç.
+ Comment[uk]=Керування програмами, які будуть запускатися разом з KDE.
+ Comment[wa]=Ene usteye d' apontiaedje po decider kés programes enondèt å minme tins ki KDE.
+ Comment[x-test]=xxA configuration tool for managing which programs start up with KDE.xx
+--- workspace/kcontrol/desktoptheme/desktoptheme.desktop	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/desktoptheme/desktoptheme.desktop	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -28,6 +28,7 @@
+ Name[gu]=ડેસ્કટોપ થીમ
+ Name[hi]=डेस्कटॉप प्रसंग
+ Name[hr]=Tema radne površine
++Name[hu]=Asztali téma
+ Name[ia]=Thema de Scriptorio
+ Name[id]=Tema Desktop
+ Name[is]=Skjáborðsþema
+@@ -57,6 +58,7 @@
+ Name[sv]=Skrivbordstema
+ Name[tg]=Мавзӯъи мизи корӣ
+ Name[th]=ชุดตกแต่งพื้นที่ทำงาน
++Name[tr]=Masaüstü Teması
+ Name[uk]=Тема стільниці
+ Name[x-test]=xxDesktop Themexx
+ Name[zh_CN]=桌面主题
+@@ -79,6 +81,7 @@
+ Comment[ga]=Saincheap an téama deisce
+ Comment[hi]=डेस्कटॉप प्रसंग मनपसंद बनाएँ
+ Comment[hr]=Prilagodba teme radne površine
++Comment[hu]=Az asztali téma testreszabása
+ Comment[ia]=Personalisar le thema de scriptorio
+ Comment[id]=Sesuaikan tema desktop
+ Comment[is]=Sérsníða skjáborðsþema
+@@ -108,6 +111,7 @@
+ Comment[sv]=Anpassa skrivbordstemat
+ Comment[tg]=Танзимоти мавзӯъи мизи корӣ
+ Comment[th]=ปรับแก้ชุดตกแต่งพื้นที่ทำงานเอง
++Comment[tr]=Masaüstü temasını özelleştir
+ Comment[uk]=Налаштування теми стільниці
+ Comment[x-test]=xxCustomize the desktop themexx
+ Comment[zh_CN]=定制桌面主题
+--- workspace/kcontrol/keyboard/keyboard_hardware.cpp	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/keyboard/keyboard_hardware.cpp	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -16,19 +16,22 @@
   *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
   */
  
@@ -31,11 +122,13 @@
  
 +#include "x11_helper.h"
  
++// from numlockx.c
++extern "C" void numlockx_change_numlock_state(Display* dpy, int state);
 +
  /*
   Originally comes from NumLockX http://dforce.sh.cvut.cz/~seli/en/numlockx
  
-@@ -60,131 +61,114 @@
+@@ -60,131 +63,56 @@
  #include <X11/XKBlib.h>
  #include <X11/keysym.h>
  
@@ -50,8 +143,7 @@
 -			       &xkb_lmaj, &xkb_lmin );
 -    }
  
-+static
- unsigned int xkb_mask_modifier( XkbDescPtr xkb, const char *name )
+-unsigned int xkb_mask_modifier( XkbDescPtr xkb, const char *name )
 -    {
 -    int i;
 -    if( !xkb || !xkb->names )
@@ -67,25 +159,11 @@
 -	    XkbVirtualModsToReal( xkb, 1 << i, &mask );
 -	    return mask;
 -	    }
-+{
-+	if( !xkb || !xkb->names )
-+		return 0;
-+
-+	for(int i = 0; i < XkbNumVirtualMods; i++ ) {
-+		char* modStr = XGetAtomName( xkb->dpy, xkb->names->vmods[i] );
-+		if( modStr != NULL && strcmp(name, modStr) == 0 ) {
-+			unsigned int mask;
-+			XkbVirtualModsToReal( xkb, 1 << i, &mask );
-+			return mask;
-+		}
- 	}
+-	}
 -    return 0;
 -    }
-+	return 0;
-+}
- 
-+static
- unsigned int xkb_numlock_mask()
+-
+-unsigned int xkb_numlock_mask()
 -    {
 -    XkbDescPtr xkb;
 -    if(( xkb = XkbGetKeyboard( QX11Info::display(), XkbAllComponentsMask, XkbUseCoreKbd )) != NULL )
@@ -96,37 +174,19 @@
 -        }
 -    return 0;
 -    }
-+{
-+	XkbDescPtr xkb;
-+	if(( xkb = XkbGetKeyboard( QX11Info::display(), XkbAllComponentsMask, XkbUseCoreKbd )) != NULL ) {
-+		unsigned int mask = xkb_mask_modifier( xkb, "NumLock" );
-+		XkbFreeKeyboard( xkb, 0, True );
-+		return mask;
-+	}
-+	else {
-+		kError() << "Failed to set numlock: failed to get keyboard";
-+	}
-+	return 0;
-+}
- 
+-
 -int xkb_set_on()
 -    {
 -    unsigned int mask;
 -    if( !xkb_init())
-+static
-+int xkb_set_numlock(int set)
-+{
-+    unsigned int mask = xkb_numlock_mask();
-+    if( mask == 0 ) {
-+    	kError() << "Failed to set numlock: numlock mask is 0";
-         return 0;
+-        return 0;
 -    mask = xkb_numlock_mask();
 -    if( mask == 0 )
 -        return 0;
 -    XkbLockModifiers ( QX11Info::display(), XkbUseCoreKbd, mask, mask);
 -    return 1;
-     }
- 
+-    }
+-
 -int xkb_set_off()
 -    {
 -    unsigned int mask;
@@ -138,33 +198,19 @@
 -    XkbLockModifiers ( QX11Info::display(), XkbUseCoreKbd, mask, 0);
 -    return 1;
 -    }
-+    unsigned int values = set ? mask : 0;
-+    return XkbLockModifiers ( QX11Info::display(), XkbUseCoreKbd, mask, values);
-+}
- 
+-
 -void numlock_set_on()
 -    {
 -    if( xkb_set_on())
 -        return;
 -    }
-+static
-+void numlockx_change_numlock_state( bool set )
-+{
-+	if( !X11Helper::xkbSupported(NULL) ) {
-+    	kError() << "Failed to set numlock: xkb is not supported";
-+    	return;
-+	}
- 
+-
 -void numlock_set_off()
 -    {
 -    if( xkb_set_off())
 -        return;
 -    }
-+	if( ! xkb_set_numlock(set) ) {
-+    	kError() << "Failed to set numlock: XkbLockModifiers request hasn't been sent";
-+	}
-+}
- 
+-
 -void numlockx_change_numlock_state( bool set_P )
 -    {
 -    if( set_P )
@@ -246,17 +292,29 @@
  		int delay_ = config.readEntry("RepeatDelay", 250);
  		double rate_ = config.readEntry("RepeatRate", 30.);
  		set_repeatrate(delay_, rate_);
-@@ -192,6 +176,7 @@
+@@ -192,6 +120,7 @@
  
  
  	int numlockState = config.readEntry( "NumLock", 2 );
 -	if( numlockState != 2 )
+-		numlockx_change_numlock_state( numlockState == 0 );
 +	if( numlockState != 2 ) {
- 		numlockx_change_numlock_state( numlockState == 0 );
++		numlockx_change_numlock_state(QX11Info::display(), numlockState == 0 );
 +	}
  }
---- workspace/kcontrol/keyboard/xkb_helper.h	(.../tags/KDE/4.5.1/kdebase)	(wersja 1170567)
-+++ workspace/kcontrol/keyboard/xkb_helper.h	(.../branches/KDE/4.5/kdebase)	(wersja 1170567)
+--- workspace/kcontrol/keyboard/x11_helper.h	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/keyboard/x11_helper.h	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -112,7 +112,7 @@
+ 	static QList<LayoutUnit> getLayoutsList();
+ 	static QStringList getLayoutsListAsString(const QList<LayoutUnit>& layoutsList);
+ 
+-	enum FetchType { ALL, LAYOUTS_ONLY };
++	enum FetchType { ALL, LAYOUTS_ONLY, MODEL_ONLY };
+ 	static bool getGroupNames(Display* dpy, XkbConfig* xkbConfig, FetchType fetchType);
+ 
+ private:
+--- workspace/kcontrol/keyboard/xkb_helper.h	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/keyboard/xkb_helper.h	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
 @@ -24,7 +24,6 @@
  
  class XkbHelper {
@@ -265,9 +323,425 @@
  	static bool initializeKeyboardLayouts(KeyboardConfig& config);
  
  //private:
---- workspace/kcontrol/keyboard/xkb_helper.cpp	(.../tags/KDE/4.5.1/kdebase)	(wersja 1170567)
-+++ workspace/kcontrol/keyboard/xkb_helper.cpp	(.../branches/KDE/4.5/kdebase)	(wersja 1170567)
-@@ -30,6 +30,7 @@
+--- workspace/kcontrol/keyboard/plasma_applet_keyboard.desktop	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/keyboard/plasma_applet_keyboard.desktop	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -36,7 +36,7 @@
+ Name[hu]=Billentyűzetkiosztás
+ Name[ia]=Disposition de Claviero
+ Name[id]=Tata Letak Papan Ketik
+-Name[is]=Lyklaborð
++Name[is]=Lyklaborðsuppsetning
+ Name[it]=Mappatura della tastiera
+ Name[ja]=キーボード配列
+ Name[ka]=კლავიატურის განლაგება
+@@ -105,6 +105,7 @@
+ Comment[hr]=Applet koji prikazuje i mijenja rasporede tipaka tipkovnice
+ Comment[ia]=Applet pro monstrar e commutar layouts (dispositiones)
+ Comment[id]=Applet untuk menampilkan dan mengganti tata letak
++Comment[is]=Smáforrrit til að birta og skipta um lyklaborðsuppsetningar
+ Comment[it]=Programma per mostrare e cambiare le mappature
+ Comment[ja]=配列を表示変更するアプレット
+ Comment[kk]=Пернетақта сәйкестігін қорсетіп-ауыстыру апплеті
+@@ -129,6 +130,7 @@
+ Comment[sr at latin]=Aplet za prikaz i prebacivanje rasporeda
+ Comment[sv]=Miniprogram för att visa och byta layout
+ Comment[th]=แอพเพล็ตที่ใช้แสดงและเปลี่ยนผังแป้นพิมพ์
++Comment[tr]=Düzenleri göstermek ve değiştirmek için bir gereç
+ Comment[uk]=Аплет для показу та перемикання розкладок
+ Comment[x-test]=xxApplet to display and switch layoutsxx
+ Comment[zh_CN]=用于显示并切换布局的小程序
+--- workspace/kcontrol/keyboard/flags.cpp	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/keyboard/flags.cpp	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -184,7 +184,7 @@
+ //	p.drawText(pm.rect(), Qt::AlignCenter | Qt::AlignHCenter, layoutText);
+ //	QIcon icon(pm);
+ 
+-	QPixmap pixmap = Utils::shadowText(layoutText, font, Qt::black, Qt::white, QPoint(), 2);
++	QPixmap pixmap = Utils::shadowText(layoutText, font, Qt::black, Qt::white, QPoint(), 4);
+ 	QIcon icon(pixmap);
+ 	iconOrTextMap[ key ] = icon;
+ 
+--- workspace/kcontrol/keyboard/CMakeLists.txt	(.../tags/KDE/4.5.1/kdebase)	(wersja 1179156)
++++ workspace/kcontrol/keyboard/CMakeLists.txt	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -19,6 +19,7 @@
+     xkb_helper.cpp
+     keyboard_config.cpp
+     keyboard_hardware.cpp
++    numlockx.c
+     bindings.cpp
+     utils.cpp
+ # next are temporary for sys tray UI
+@@ -35,6 +36,10 @@
+  	${QT_QTXML_LIBRARY} ${X11_Xkbfile_LIB}
+  )
+ 
++if(X11_XTest_FOUND)
++  target_link_libraries(kded_keyboard ${X11_XTest_LIB})
++endif(X11_XTest_FOUND)
++
+ if(XiGetDevicePresence_FOUND)
+   target_link_libraries(kded_keyboard ${X11_Xinput_LIB})
+ endif(XiGetDevicePresence_FOUND)
+--- workspace/kcontrol/keyboard/numlockx.c	(.../tags/KDE/4.5.1/kdebase)	(wersja 0)
++++ workspace/kcontrol/keyboard/numlockx.c	(.../branches/KDE/4.5/kdebase)	(wersja 1179156)
+@@ -0,0 +1,303 @@
++/****************************************************************************
++
++ NumLockX
++
++ $Id$
++
++ Copyright (C) 2000-2001 Lubos Lunak        <l.lunak at kde.org>
++ Copyright (C) 2001      Oswald Buddenhagen <ossi at kde.org>
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the "Software"),
++to deal in the Software without restriction, including without limitation
++the rights to use, copy, modify, merge, publish, distribute, sublicense,
++and/or sell copies of the Software, and to permit persons to whom the
++Software is furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++DEALINGS IN THE SOFTWARE.
++
++****************************************************************************/
++
++#include <config-X11.h>
++
++#include <string.h>
++
++#include <X11/Xlib.h>
++
++#ifdef HAVE_XTEST
++#include <X11/extensions/XTest.h>
++#endif
++
++#ifdef HAVE_XKB
++#include <X11/XKBlib.h>
++#endif
++
++#include <X11/keysym.h>
++
++static
++Display* dpy;
++
++/* the XKB stuff is based on code created by Oswald Buddenhagen <ossi at kde.org> */
++#ifdef HAVE_XKB
++static
++int xkb_init()
++    {
++    int xkb_opcode, xkb_event, xkb_error;
++    int xkb_lmaj = XkbMajorVersion;
++    int xkb_lmin = XkbMinorVersion;
++    return XkbLibraryVersion( &xkb_lmaj, &xkb_lmin )
++        && XkbQueryExtension( dpy, &xkb_opcode, &xkb_event, &xkb_error,
++			       &xkb_lmaj, &xkb_lmin );
++    }
++
++static
++unsigned int xkb_mask_modifier( XkbDescPtr xkb, const char *name )
++    {
++    int i;
++    if( !xkb || !xkb->names )
++	return 0;
++    for( i = 0;
++         i < XkbNumVirtualMods;
++	 i++ )
++	{
++	char* modStr = XGetAtomName( xkb->dpy, xkb->names->vmods[i] );
++	if( modStr != NULL && strcmp(name, modStr) == 0 )
++	    {
++	    unsigned int mask;
++	    XkbVirtualModsToReal( xkb, 1 << i, &mask );
++	    return mask;
++	    }
++	}
++    return 0;
++    }
++
++static
++unsigned int xkb_numlock_mask()
++    {
++    XkbDescPtr xkb;
++    if(( xkb = XkbGetKeyboard( dpy, XkbAllComponentsMask, XkbUseCoreKbd )) != NULL )
++	{
++        unsigned int mask = xkb_mask_modifier( xkb, "NumLock" );
++        XkbFreeKeyboard( xkb, 0, True );
++        return mask;
++        }
++    return 0;
++    }
++
++static
++int xkb_set_on()
++    {
++    unsigned int mask;
++    if( !xkb_init())
++        return 0;
++    mask = xkb_numlock_mask();
++    if( mask == 0 )
++        return 0;
++    XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, mask);
++    return 1;
++    }
++
++static
++int xkb_set_off()
++    {
++    unsigned int mask;
++    if( !xkb_init())
++        return 0;
++    mask = xkb_numlock_mask();
++    if( mask == 0 )
++        return 0;
++    XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0);
++    return 1;
++    }
++
++#ifdef NUMLOCKX_STANDALONE
++static
++int xkb_toggle()
++    {
++    unsigned int mask;
++    unsigned int numlockState;
++    XkbStateRec xkbState;
++    if( !xkb_init())
++        return 0;
++    mask = xkb_numlock_mask();
++    if( mask == 0 )
++        return 0;
++    XkbGetState( dpy, XkbUseCoreKbd, &xkbState);
++    numlockState = xkbState.locked_mods & mask;
++    if (numlockState)
++        XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0);
++    else
++        XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, mask);
++    return 1;
++    }
++#endif
++
++#endif
++
++#ifdef HAVE_XTEST
++static
++int xtest_get_numlock_state()
++    {
++    int i;
++    int numlock_mask = 0;
++    Window dummy1, dummy2;
++    int dummy3, dummy4, dummy5, dummy6;
++    unsigned int mask;
++    XModifierKeymap* map = XGetModifierMapping( dpy );
++    KeyCode numlock_keycode = XKeysymToKeycode( dpy, XK_Num_Lock );
++    if( numlock_keycode == NoSymbol )
++        return 0;
++    for( i = 0;
++         i < 8;
++         ++i )
++        {
++	if( map->modifiermap[ map->max_keypermod * i ] == numlock_keycode )
++		numlock_mask = 1 << i;
++	}
++    XQueryPointer( dpy, DefaultRootWindow( dpy ), &dummy1, &dummy2,
++        &dummy3, &dummy4, &dummy5, &dummy6, &mask );
++    XFreeModifiermap( map );
++    return mask & numlock_mask;
++    }
++
++static
++void xtest_change_numlock()
++    {
++    XTestFakeKeyEvent( dpy, XKeysymToKeycode( dpy, XK_Num_Lock ), True, CurrentTime );
++    XTestFakeKeyEvent( dpy, XKeysymToKeycode( dpy, XK_Num_Lock ), False, CurrentTime );
++    }
++
++static
++void xtest_set_on()
++    {
++    if( !xtest_get_numlock_state())
++        xtest_change_numlock();
++    }
++
++static
++void xtest_set_off()
++    {
++    if( xtest_get_numlock_state())
++        xtest_change_numlock();
++    }
++
++#ifdef NUMLOCKX_STANDALONE
++static
++void xtest_toggle()
++    {
++    xtest_change_numlock();
++    }
++#endif
++
++#endif
++
++static
++void numlock_set_on()
++    {
++#ifdef HAVE_XKB
++    if( xkb_set_on())
++        return;
++#endif
++#ifdef HAVE_XTEST
++    xtest_set_on();
++#endif
++    }
++
++static
++void numlock_set_off()
++    {
++#ifdef HAVE_XKB
++    if( xkb_set_off())
++        return;
++#endif
++#ifdef HAVE_XTEST
++    xtest_set_off();
++#endif
++    }
++
++
++#ifndef NUMLOCKX_STANDALONE
++
++void numlockx_change_numlock_state(Display* dpy_, int state)
++{
++#ifndef HAVE_XTEST
++	#warning "XTEST extension not found - numlock setting may not work reliably"
++#endif
++
++	dpy = dpy_;
++    if( state ) {
++    	numlock_set_on();
++    }
++    else {
++    	numlock_set_off();
++    }
++}
++
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kde4-kdebase-workspace/kde4-kdebase-workspace-branch.diff?r1=1.21&r2=1.22&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kde4-kdebase-workspace/kde4-kdebase-workspace.spec?r1=1.237&r2=1.238&f=u



More information about the pld-cvs-commit mailing list