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