X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fshuttle.C;fp=cinelerra-5.1%2Fcinelerra%2Fshuttle.C;h=53b6527acd3bef06742d37f229f00730003befd6;hb=d8393b13b37b8654f0039ec1dba9a71c02af9411;hp=4860a7697a4c7a6076154f7fbae6132f955013f4;hpb=8384fe6ced5546c43124979c05d538d2e69878c9;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/shuttle.C b/cinelerra-5.1/cinelerra/shuttle.C index 4860a769..53b6527a 100644 --- a/cinelerra-5.1/cinelerra/shuttle.C +++ b/cinelerra-5.1/cinelerra/shuttle.C @@ -504,6 +504,8 @@ int Shuttle::send_keycode(unsigned key, unsigned msk, int press, int send) k->x = wx; k->y = wy; k->state = msk; +// also clear modifiers state if a key is to be released + if( !press ) k->state = 0; k->keycode = key; k->same_screen = 1; wdw->top_level->put_event((XEvent *) k); @@ -553,9 +555,9 @@ void Shuttle::key(unsigned short code, unsigned int value) fprintf(stderr, "key(%d, %d) out of range\n", code + EVENT_CODE_KEY1, value); return; } -// Show help if both Alt's pressed on keyboard together with a shuttle button - if( wdw && wdw->alt_down() ) { - if( value ) wdw->context_help_show("Shuttle key default arrangement"); +// Show help if Alt is pressed on the keyboard together with a shuttle button + if( wdw && wdw->alt_down() && value ) { + wdw->context_help_show("Shuttle key default arrangement"); return; } send_stroke_sequence(value ? KJS_KEY_DOWN : KJS_KEY_UP, code);