Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* we have to flush as XkbLockGroup does not wait for a reply
* the group is an int value

git-svn-id: https://xpra.org/svn/Xpra/trunk@14588 3bb7dfac-3a0b-4e04-842a-767bc560f471
  • Loading branch information
totaam committed Dec 23, 2016
1 parent 86ea5f3 commit 55bdbf6
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions src/xpra/x11/bindings/keyboard_bindings.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ cdef extern from "X11/Xlib.h":
int XUngrabKey(Display * display, int keycode, unsigned int modifiers,
Window grab_window)
int XQueryKeymap(Display * display, char [32] keys_return)

int XFlush(Display *dpy)


cdef extern from "X11/extensions/XKB.h":
Expand Down Expand Up @@ -356,17 +356,20 @@ cdef class _X11KeyboardBindings(_X11CoreBindings):
log("X11 keymap property updated: %s", self.getXkbProperties())
return True

def set_layout_group(self, grp):
def set_layout_group(self, int grp):
log("setting XKB layout group `%s`", grp)
if not XkbLockGroup(self.display, XkbUseCoreKbd, grp):
if XkbLockGroup(self.display, XkbUseCoreKbd, grp):
XFlush(self.display)
else:
log.warn("Warning: cannot lock on keyboard layout group '%s'", grp)
return self.get_layout_group()

def get_layout_group(self):
cdef XkbStateRec xkb_state
if not XkbGetState(self.display, XkbUseCoreKbd, &xkb_state):
cdef Status r = XkbGetState(self.display, XkbUseCoreKbd, &xkb_state)
if r:
log.warn("Warning: cannot get keyboard layout group")
return ""
return 0
return xkb_state.group

def hasXkb(self):
Expand Down

0 comments on commit 55bdbf6

Please sign in to comment.