Well, we could discuss if the program structure makes sense or not, but that would be a different topic. There are cases when you don't have the time to refactor. The situation is that this issue is a part of a large software and a workaround has to be found TODAY. Anything else is secondary. Nobody cares what the code looks like inside.

In a nutshell: the troubled software is about keyframe interpolation for a robotic arm. A sequence of keyframes defines a motion. Keyframe widgets are lined up in a QScrollArea such that they can be dragged and dropped with the mouse to change their order. The QScrollArea (or more like its widget) is the parent A, that holds Keyframe objects, that are Bs. Each Keyframe object also shows a 3D GLWidget of the robot in the current pose, these are the children C. Now the GLWidgets receive mouse input so that they can be rotated and panned, which is needed in other parts of the whole software. But not in this case. When the Keyframes are in the scroll area, every mouse action has to be routed up from C to A and from B to A because A handles the drag and drop feature.

So please, can anyone suggest one or two lines of code that somehow solves this problem for now and worry about rewriting months of work later? I installed an event filter in the Keyframes already that eats the mouse clicks from the GLWidget. I just don't know how to resend the events so that the scroll area gets them.