forked from mfulz_github/qmk_firmware
		
	Fix issue #221: LGUI(KC_LSFT) does not work
- on mod keys, register LGUI, LSFT etc. as normal mods instead of weak mods: - they won't be cleared by layer switching - LSFT(KC_LGUI) will now have the same behavior as LGUI(KC_LSFT)
This commit is contained in:
		
							parent
							
								
									db35212422
								
							
						
					
					
						commit
						8d6bbf2757
					
				| @ -88,14 +88,24 @@ void process_action(keyrecord_t *record) | |||||||
|                                                                 action.key.mods<<4; |                                                                 action.key.mods<<4; | ||||||
|                 if (event.pressed) { |                 if (event.pressed) { | ||||||
|                     if (mods) { |                     if (mods) { | ||||||
|  |                         if (IS_MOD(action.key.code)) { | ||||||
|  |                             // e.g. LSFT(KC_LGUI): we don't want the LSFT to be weak as it would make it useless.
 | ||||||
|  |                             // this also makes LSFT(KC_LGUI) behave exactly the same as LGUI(KC_LSFT)
 | ||||||
|  |                             add_mods(mods); | ||||||
|  |                         } else { | ||||||
|                             add_weak_mods(mods); |                             add_weak_mods(mods); | ||||||
|  |                         } | ||||||
|                         send_keyboard_report(); |                         send_keyboard_report(); | ||||||
|                     } |                     } | ||||||
|                     register_code(action.key.code); |                     register_code(action.key.code); | ||||||
|                 } else { |                 } else { | ||||||
|                     unregister_code(action.key.code); |                     unregister_code(action.key.code); | ||||||
|                     if (mods) { |                     if (mods) { | ||||||
|  |                         if (IS_MOD(action.key.code)) { | ||||||
|  |                             del_mods(mods); | ||||||
|  |                         } else { | ||||||
|                             del_weak_mods(mods); |                             del_weak_mods(mods); | ||||||
|  |                         } | ||||||
|                         send_keyboard_report(); |                         send_keyboard_report(); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Didier Loiseau
						Didier Loiseau