summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVratislav Podzimek <vpodzime@redhat.com>2012-10-05 12:02:04 +0200
committerVratislav Podzimek <vpodzime@redhat.com>2012-10-05 19:39:27 +0200
commit663e1344dd35b4cb16453f931ba730daa6c89d88 (patch)
tree046fd62f1a929798bb697194788fbdf407d3c2e8
parenta28c9554a2617ac1e360225f3105d559f5290e83 (diff)
downloadanaconda-663e1344dd35b4cb16453f931ba730daa6c89d88.tar.gz
anaconda-663e1344dd35b4cb16453f931ba730daa6c89d88.tar.xz
anaconda-663e1344dd35b4cb16453f931ba730daa6c89d88.zip
Add method returning current activated X layout
We need to tell user which layout he/she has currently selected in some dialogs.
-rwxr-xr-xpyanaconda/keyboard.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/pyanaconda/keyboard.py b/pyanaconda/keyboard.py
index fb3f7eff1..6817a1540 100755
--- a/pyanaconda/keyboard.py
+++ b/pyanaconda/keyboard.py
@@ -34,6 +34,8 @@ import os
import re
from pyanaconda import iutil
+from gi.repository import Xkl
+
import logging
log = logging.getLogger("anaconda")
@@ -226,7 +228,7 @@ class XklWrapper(object):
return XklWrapper._instance
def __init__(self):
- from gi.repository import Xkl, GdkX11
+ from gi.repository import GdkX11
#initialize Xkl-related stuff
display = GdkX11.x11_get_default_xdisplay()
@@ -311,6 +313,21 @@ class XklWrapper(object):
#first layout (should exist for every language)
return language_layouts[0].name
+ def get_current_layout_name(self):
+ """
+ Get current activated X layout's name
+
+ @return: current activated X layout's name (e.g. "Czech (qwerty)")
+
+ """
+
+ self._engine.start_listen(Xkl.EngineListenModes.TRACK_KEYBOARD_STATE)
+ state = self._engine.get_current_state()
+ groups_names = self._engine.get_groups_names()
+ self._engine.stop_listen(Xkl.EngineListenModes.TRACK_KEYBOARD_STATE)
+
+ return groups_names[state.group]
+
def add_layout(self, layout):
"""
Method that tries to add a given layout to the current X configuration.