Пример #1
0
    def keymap_changed(self, *args):
        log("keymap_changed%s", args)
        if self._keymap_change_handler_id:
            self._keymap.disconnect(self._keymap_change_handler_id)
            self._keymap_change_handler_id = None
        self._keymap = gdk.keymap_get_default()
        if self._keymap_changing:
            # timer due already
            return
        self._keymap_changing = True

        def do_keys_changed():
            # re-register the change handler:
            self._keymap_change_handler_id = self._keymap.connect("keys-changed", self.keymap_changed)
            self._keymap_changing = False
            if self.locked:
                # automatic changes not allowed!
                log.info("ignoring keymap change: layout is locked to '%s'", self.layout_str())
                return
            if self.update():
                log.info("keymap has been changed to '%s', sending updated mappings to the server", self.layout_str())
                if self.xkbmap_layout:
                    self.send_layout()
                self.send_keymap()

        glib.timeout_add(500, do_keys_changed)
Пример #2
0
    def keymap_changed(self, *args):
        log("keymap_changed%s", args)
        if self._keymap_change_handler_id:
            self._keymap.disconnect(self._keymap_change_handler_id)
            self._keymap_change_handler_id = None
        self._keymap = gdk.keymap_get_default()
        if self._keymap_changing:
            #timer due already
            return
        self._keymap_changing = True

        def do_keys_changed():
            #re-register the change handler:
            self._keymap_change_handler_id = self._keymap.connect(
                "keys-changed", self.keymap_changed)
            self._keymap_changing = False
            if self.locked:
                #automatic changes not allowed!
                log.info("ignoring keymap change: layout is locked to '%s'",
                         self.layout_str())
                return
            if self.update():
                log.info(
                    "keymap has been changed to '%s', sending updated mappings to the server",
                    self.layout_str())
                if self.xkbmap_layout:
                    self.send_layout()
                self.send_keymap()

        glib.timeout_add(500, do_keys_changed)
Пример #3
0
 def update(self):
     old_hash = self.hash
     self.query_xkbmap()
     try:
         self.keyboard.update_modifier_map(display_get_default(), self.xkbmap_mod_meanings)
     except:
         log.error("error querying modifier map", exc_info=True)
     log("do_keys_changed() modifier_map=%s, old hash=%s, new hash=%s", self.keyboard.modifier_map, old_hash, self.hash)
     return old_hash!=self.hash
Пример #4
0
 def update(self):
     old_hash = self.hash
     self.query_xkbmap()
     try:
         self.keyboard.update_modifier_map(display_get_default(), self.xkbmap_mod_meanings)
     except:
         log.error("error querying modifier map", exc_info=True)
     log("do_keys_changed() modifier_map=%s, old hash=%s, new hash=%s", self.keyboard.modifier_map, old_hash, self.hash)
     return old_hash!=self.hash
Пример #5
0
 def update(self):
     old_hash = self.hash
     self.query_xkbmap()
     if is_X11():
         try:
             self.keyboard.update_modifier_map(Gdk.Display.get_default(), self.xkbmap_mod_meanings)
         except:
             log.error("error querying modifier map", exc_info=True)
     log("update() modifier_map=%s, old hash=%s, new hash=%s", self.keyboard.modifier_map, old_hash, self.hash)
     return old_hash!=self.hash
Пример #6
0
 def _do_keys_changed(self, send_if_changed=False):
     self._keymap_changing = False
     old_hash = self.hash
     self.query_xkbmap()
     try:
         self.keyboard.update_modifier_map(gdk.display_get_default(), self.xkbmap_mod_meanings)
     except:
         pass
     log("do_keys_changed() modifier_map=%s, old hash=%s, new hash=%s", self.keyboard.modifier_map, old_hash, self.hash)
     if send_if_changed and old_hash!=self.hash:
         log.info("keymap has changed, sending updated mappings to the server")
         if self.xkbmap_layout:
             self.send_layout()
         self.send_keymap()
Пример #7
0
 def _do_keys_changed(self, send_if_changed=False):
     self._keymap_changing = False
     old_hash = self.hash
     self.query_xkbmap()
     try:
         self.keyboard.update_modifier_map(gdk.display_get_default(),
                                           self.xkbmap_mod_meanings)
     except:
         pass
     log("do_keys_changed() modifier_map=%s, old hash=%s, new hash=%s",
         self.keyboard.modifier_map, old_hash, self.hash)
     if send_if_changed and old_hash != self.hash:
         log.info(
             "keymap has changed, sending updated mappings to the server")
         if self.xkbmap_layout:
             self.send_layout()
         self.send_keymap()
Пример #8
0
 def _keys_changed(self, *args):
     log("keys_changed")
     self._keymap = gdk.keymap_get_default()
     if not self._keymap_changing:
         self._keymap_changing = True
         gobject.timeout_add(500, self._do_keys_changed, True)
Пример #9
0
 def _keys_changed(self, *args):
     log("keys_changed")
     self._keymap = gdk.keymap_get_default()
     if not self._keymap_changing:
         self._keymap_changing = True
         gobject.timeout_add(500, self._do_keys_changed, True)