I suggest you try handling all the input with you player controller. The widget should only have the functionality implemented but the call should be made from the controller. This way you know only one class is handling input and fighting with other classes.
Try and test it quickly and see if it fixes the problem.