[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdebase/kxkb
From:       Andy Rysin <arysin () yahoo ! com>
Date:       2004-07-01 7:46:47
Message-ID: 20040701074647.1D1B199D0 () office ! kde ! org
[Download RAW message or body]

CVS commit by rysin: 

Viki (onscreen keyboard) has problems determining some modifiers states
when kxkb uses precompiled layouts instead of setxkbmap. Probably a bug
in the xkb functions used for the precompiled layouts *shrug*.
Workaround from Lubos Lunak <l dot lunak at suse dot cz>


  M +15 -2     kxkb.cpp   1.73
  M +2 -0      kxkb.h   1.29


--- kdebase/kxkb/kxkb.cpp  #1.72:1.73
@@ -137,5 +137,6 @@ KXKBApp::KXKBApp(bool allowStyles, bool 
     m_rules(NULL),
     m_tray(NULL),
-    kWinModule(NULL)
+    kWinModule(NULL),
+    m_forceSetXKBMap( false )
 {
     m_extension = new XKBExtension;
@@ -304,5 +305,5 @@ bool KXKBApp::setLayout(const QString& l
     m_group = m_rules->getGroup(layout, baseGr);
 
-    if (m_compiledLayoutFileNames.contains(layout))
+    if (m_compiledLayoutFileNames.contains(layout) && !m_forceSetXKBMap)
     {
         res = m_extension->setCompiledLayout(m_compiledLayoutFileNames[layout]);
@@ -489,4 +490,16 @@ void KXKBApp::slotSettingsChanged(int ca
 }
 
+/*
+ Viki (onscreen keyboard) has problems determining some modifiers states
+ when kxkb uses precompiled layouts instead of setxkbmap. Probably a bug
+ in the xkb functions used for the precompiled layouts *shrug*.
+*/
+void KXKBApp::forceSetXKBMap( bool set )
+{
+    if( m_forceSetXKBMap == set )
+        return;
+    m_forceSetXKBMap = set;
+    layoutApply();
+}
 
 static QString windowClass(WId winId)

--- kdebase/kxkb/kxkb.h  #1.28:1.29
@@ -152,4 +152,5 @@ k_dcop:
     QString getCurrentLayout() { return m_layout; }
     QStringList getLayoutsList() { return m_list; }
+    void forceSetXKBMap( bool set );
 
 protected slots:
@@ -197,4 +198,5 @@ private:
     KGlobalAccel *keys;
     KWinModule* kWinModule;
+    bool m_forceSetXKBMap;
 };
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic