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...@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...@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...@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...@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...@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.lu...@kde.org>
++ Copyright (C) 2001      Oswald Buddenhagen <o...@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 
<o...@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

_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to