[CinCV TNG] lazy insertion point movement when using keypad

Frederic Roenitz ml1 at aimvis.de
Thu Aug 10 14:33:53 CEST 2017


Thank you, it works. :)


For the sake of completeness:

 > XKeyEvents have a "Key masks" used as modifier bits,
 >
 >          ctrl_mask = (key_state & ControlMask) ? 1 : 0;  // ctrl key down
 >          shift_mask = (key_state & ShiftMask) ? 1 : 0;   // shift key down
 >          alt_mask = (key_state & Mod1Mask) ? 1 : 0;      // alt key down
 >
 > While it is true that you can access the num-lock state with
 > XQueryPointer,

I never wrote code that had to directly deal with keypad input. I only
used "xev" to quickly check the differences and got for example

num on / num off

KP_1 / KP_End
KP_2 / KP_Down
KP_3 / KP_Next
KP_4 / KP_Left
KP_5 / KP_Begin
KP_6 / KP_Right

But for KP_Add and KP_Enter we are out of luck, it's the same for
Num_Lock on and Num_Lock off.

But never mind! The shift-solution works.


 > the num-lock state affects the way the numeric pad is
 > interpreted by other applications which may be also in use at the
 > same time.

That would be pefectly ok for me.


 > there is a shift key near the the numeric pad anyway - my laptop has
 > it just as close as the 0 key while the desktop has only a single
 > column between so it is still easy enough to reach with the right
 > hand.

Not on the keyboards that I use ...



 > Give it a try and let us know what you think.

It works!


Strange:

I press keypad2 (play). It plays.
I press keypad2 again (or keypad0) to stop. It stops, *but*:

In the main window the insertion point 'hops' one additional frame
backwards.


Same behavior, but other way round when playing backwards (hops one
frame forward).


I guess this is probably related to my initial question.


Kind greetings

Frederic


More information about the Cinelerra mailing list