Edit

kc3-lang/libxkbcommon/test/data/symbols/simultaneous-mods-latches

Branch :

  • Show log

    Commit

  • Author : Jules Bertholet
    Date : 2025-01-16 02:21:29
    Hash : 3fdd822d
    Message : state: Fix mods not being independently cleared (#584) The modifiers filters should ensure minimal interaction between them, but currently the Latch mod filters are overzealous and mess with the mods from other filters set to be cleared, resulting in some modifiers permanently set. Fixed by clearing mods properly with `OR` rather than direct setting of `state::clear_mods`. While we are at it, `state::set_mods` should be `OR`ed as well. This should not have any impact for now, but this is more future-proof. Fixes #583 Co-authored-by: Jules Bertholet <julesbertholet@quoi.xyz> Co-authored-by: Pierre Le Marre <dev@wismill.eu>

  • test/data/symbols/simultaneous-mods-latches
  • default partial alphanumeric_keys
    xkb_symbols "base" {
    	name[Group1] = "Test issue #583";
    
    	key <AB01> { [ z, Z, y, Y, ezh, EZH, ydiaeresis, Ydiaeresis ], type[Group1] = "EIGHT_LEVEL" };
    	key <AB02> { [ x, X ], type[Group1] = "PC_CONTROL_LEVEL2" };
    
    	key <RALT> { [ ISO_Level3_Latch, ISO_Level5_Latch ], type[Group1] = "PC_CONTROL_LEVEL2" };
    	key <RCTL> { [ Control_R ], [LatchMods(modifiers=Control)] };
    	key <LWIN> { [ ISO_Level3_Latch ], type[Group1] = "ONE_LEVEL" };
    	key <RWIN> { [ ISO_Level5_Latch ], type[Group1] = "ONE_LEVEL" };
    
    	modifier_map None { <RALT> };
    	modifier_map Mod3 { <RWIN> };
    	modifier_map Mod5 { <LWIN> };
    };