I mean interacting in the 2D views, each view independantly.
The problem with Ctrl+Alt+LeftClick+Move is that the two other 2D views rotate at the same time while remaining at 90° intersection. This can be definitely useful (I saw the case today). If a 2D view can be independantly rotated, we can have the three views at different intersecting angles, and it can also be useful.
Just saw that a view can be temporarily frozen during above mentioned mouse gesture using :
slicer.app.layoutManager().sliceWidget('Green').mrmlSliceNode().DisableModifiedEventOn()
But when DisableModifiedEventOff() is applied again, on next rotation with that mouse gesture, pending events catch up and reset the views at 90°.
If you wish to consider it further, my take would be to provide a toggle button in each 2D view’s advanced settings (that widget appearing on mouse move in the upper left icon of the view) , meaning : ‘lock/unlock rotate’. I suppose this would require minimal coding on your side, while rotation is still done by above mentioned mouse gesture.
Other option would be to add handles to the each colored axis in each 2D view. Grabbing and moving the handle would rotate the view in the corresponding widget. This would obviously require more coding. It would be an additional rotation tool.
Regards