@@ -129,20 +129,22 @@ def _add_keycode_to_report(self, keycode: int) -> None:
129129 # Set bit for this modifier.
130130 self .report_modifier [0 ] |= modifier
131131 else :
132+ report_keys = self .report_keys
132133 # Don't press twice.
133134 for i in range (_MAX_KEYPRESSES ):
134- if self .report_keys [i ] == 0 :
135+ report_key = report_keys [i ]
136+ if report_key == 0 :
135137 # Put keycode in first empty slot. Since the report_keys
136138 # are compact and unique, this is not a repeated key
137- self . report_keys [i ] = keycode
139+ report_keys [i ] = keycode
138140 return
139- if self . report_keys [ i ] == keycode :
141+ if report_key == keycode :
140142 # Already pressed.
141143 return
142144 # All slots are filled. Shuffle down and reuse last slot
143145 for i in range (_MAX_KEYPRESSES - 1 ):
144- self . report_keys [i ] = self . report_keys [i + 1 ]
145- self . report_keys [- 1 ] = keycode
146+ report_keys [i ] = report_keys [i + 1 ]
147+ report_keys [- 1 ] = keycode
146148
147149 def _remove_keycode_from_report (self , keycode : int ) -> None :
148150 """Remove a single keycode from the report."""
@@ -151,20 +153,21 @@ def _remove_keycode_from_report(self, keycode: int) -> None:
151153 # Turn off the bit for this modifier.
152154 self .report_modifier [0 ] &= ~ modifier
153155 else :
156+ report_keys = self .report_keys
154157 # Clear the at most one matching slot and move remaining keys down
155158 j = 0
156159 for i in range (_MAX_KEYPRESSES ):
157- pressed = self . report_keys [i ]
160+ pressed = report_keys [i ]
158161 if not pressed :
159162 break # Handled all used report slots
160163 if pressed == keycode :
161164 continue # Remove this entry
162165 if i != j :
163- self . report_keys [j ] = self . report_keys [i ]
166+ report_keys [j ] = report_keys [i ]
164167 j += 1
165168 # Clear any remaining slots
166- while j < _MAX_KEYPRESSES and self . report_keys [j ]:
167- self . report_keys [j ] = 0
169+ while j < _MAX_KEYPRESSES and report_keys [j ]:
170+ report_keys [j ] = 0
168171 j += 1
169172
170173 @property
0 commit comments