| 
					
				 | 
			
			
				@@ -66,14 +66,13 @@ class ExtendedControls: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if self._toggle_keysym == X.NoSymbol: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             raise Exception("Extended keyboard controls toggle:" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             + " Unknown keysym name '{}'".format(toggle_keysym_name)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        keysym_mappings = copy.deepcopy( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self._keysym_mappings = copy.deepcopy( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EXTENDED_CONTROLS_DEFAULT_KEYSYM_MAPPINGS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if self._toggle_keysym in keysym_mappings: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            del keysym_mappings[self._toggle_keysym] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if self._toggle_keysym in self._keysym_mappings: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print("INFO Extended Controls:" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   + " Ignoring mapping for toggle key '{}'".format(toggle_keysym_name)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self._keysym_mappings = keysym_mappings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self._keysym_mappings[self._toggle_keysym] = ToggleExtendedControlsAction() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._default_action = ForwardKeyEventAction() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._engine_window = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._enabled = False 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,9 +128,7 @@ class ExtendedControls: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             xkeyevent.detail, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             index=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if keysym_in == self._toggle_keysym: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            action = ToggleExtendedControlsAction() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        elif self.enabled and keysym_in in self._keysym_mappings: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if keysym_in in self._keysym_mappings: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             action = self._keysym_mappings[keysym_in] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             action = self._default_action 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -139,17 +136,19 @@ class ExtendedControls: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def enable(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for keysym in self._keysym_mappings.keys(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self._grab_key( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self._xdisplay.keysym_to_keycode(keysym), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if keysym != self._toggle_keysym: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                self._grab_key( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self._xdisplay.keysym_to_keycode(keysym), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._enabled = True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         print("INFO Enabled Extended Controls") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def disable(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for keysym in self._keysym_mappings.keys(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self._ungrab_key( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self._xdisplay.keysym_to_keycode(keysym), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if keysym != self._toggle_keysym: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                self._ungrab_key( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self._xdisplay.keysym_to_keycode(keysym), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._enabled = False 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         print("INFO Disabled Extended Controls") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |