Merge pull request #242 from honboubao/key-memory
reduce Key objects memory footprint
This commit is contained in:
commit
7b1d3f17c4
36
kmk/keys.py
36
kmk/keys.py
@ -401,10 +401,6 @@ class Key:
|
|||||||
self.no_press = bool(no_press)
|
self.no_press = bool(no_press)
|
||||||
self.no_release = bool(no_press)
|
self.no_release = bool(no_press)
|
||||||
|
|
||||||
self._pre_press_handlers = []
|
|
||||||
self._post_press_handlers = []
|
|
||||||
self._pre_release_handlers = []
|
|
||||||
self._post_release_handlers = []
|
|
||||||
self._handle_press = on_press
|
self._handle_press = on_press
|
||||||
self._handle_release = on_release
|
self._handle_release = on_release
|
||||||
self.meta = meta
|
self.meta = meta
|
||||||
@ -424,26 +420,30 @@ class Key:
|
|||||||
return 'Key(code={}, has_modifiers={})'.format(self.code, self.has_modifiers)
|
return 'Key(code={}, has_modifiers={})'.format(self.code, self.has_modifiers)
|
||||||
|
|
||||||
def on_press(self, state, coord_int, coord_raw):
|
def on_press(self, state, coord_int, coord_raw):
|
||||||
for fn in self._pre_press_handlers:
|
if hasattr(self, '_pre_press_handlers'):
|
||||||
if not fn(self, state, KC, coord_int, coord_raw):
|
for fn in self._pre_press_handlers:
|
||||||
return None
|
if not fn(self, state, KC, coord_int, coord_raw):
|
||||||
|
return None
|
||||||
|
|
||||||
ret = self._handle_press(self, state, KC, coord_int, coord_raw)
|
ret = self._handle_press(self, state, KC, coord_int, coord_raw)
|
||||||
|
|
||||||
for fn in self._post_press_handlers:
|
if hasattr(self, '_post_press_handlers'):
|
||||||
fn(self, state, KC, coord_int, coord_raw)
|
for fn in self._post_press_handlers:
|
||||||
|
fn(self, state, KC, coord_int, coord_raw)
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def on_release(self, state, coord_int, coord_raw):
|
def on_release(self, state, coord_int, coord_raw):
|
||||||
for fn in self._pre_release_handlers:
|
if hasattr(self, '_pre_release_handlers'):
|
||||||
if not fn(self, state, KC, coord_int, coord_raw):
|
for fn in self._pre_release_handlers:
|
||||||
return None
|
if not fn(self, state, KC, coord_int, coord_raw):
|
||||||
|
return None
|
||||||
|
|
||||||
ret = self._handle_release(self, state, KC, coord_int, coord_raw)
|
ret = self._handle_release(self, state, KC, coord_int, coord_raw)
|
||||||
|
|
||||||
for fn in self._post_release_handlers:
|
if hasattr(self, '_post_release_handlers'):
|
||||||
fn(self, state, KC, coord_int, coord_raw)
|
for fn in self._post_release_handlers:
|
||||||
|
fn(self, state, KC, coord_int, coord_raw)
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
@ -485,6 +485,8 @@ class Key:
|
|||||||
calls of this method will be executed before those provided by later calls.
|
calls of this method will be executed before those provided by later calls.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
if not hasattr(self, '_pre_press_handlers'):
|
||||||
|
self._pre_press_handlers = []
|
||||||
self._pre_press_handlers.append(fn)
|
self._pre_press_handlers.append(fn)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
@ -508,6 +510,8 @@ class Key:
|
|||||||
calls of this method will be executed before those provided by later calls.
|
calls of this method will be executed before those provided by later calls.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
if not hasattr(self, '_post_press_handlers'):
|
||||||
|
self._post_press_handlers = []
|
||||||
self._post_press_handlers.append(fn)
|
self._post_press_handlers.append(fn)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
@ -532,6 +536,8 @@ class Key:
|
|||||||
calls of this method will be executed before those provided by later calls.
|
calls of this method will be executed before those provided by later calls.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
if not hasattr(self, '_pre_release_handlers'):
|
||||||
|
self._pre_release_handlers = []
|
||||||
self._pre_release_handlers.append(fn)
|
self._pre_release_handlers.append(fn)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
@ -555,6 +561,8 @@ class Key:
|
|||||||
calls of this method will be executed before those provided by later calls.
|
calls of this method will be executed before those provided by later calls.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
if not hasattr(self, '_post_release_handlers'):
|
||||||
|
self._post_release_handlers = []
|
||||||
self._post_release_handlers.append(fn)
|
self._post_release_handlers.append(fn)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user