emsec / hal

HAL – The Hardware Analyzer
MIT License
624 stars 76 forks source link

gui/graph_widget: Allow pan with middle mouse button #543

Closed MonsterDruide1 closed 10 months ago

MonsterDruide1 commented 10 months ago

Using MMB to pan larger views is kind of standard, as far as I can tell, so I think it should also be possible in HAL. In this PR, I mostly just refactor the existing pan, to re-use the code when using MMB to pan the view.

MonsterDruide1 commented 10 months ago

Rubberband selection still works for me using LMB.

joern274 commented 10 months ago

Hi @MonsterDruide1, we really appreciate you contributing your code and your ideas. However, after reviewing and testing your code I found the rubber-band selection feature broken. We must think about a strategy how this important feature and your request for using the middle button for pan can coexist. Possible solutions:

joern274 commented 10 months ago

OK, maybe it is only me using the middle button exclusively for rubber-band selection since it does not trigger anything else. I'll poll the user whether they have strong preferences.

joern274 commented 10 months ago

For example if the mouse pointer is on top of a node left mouse button will move that node rather than starting a rubber-band selection.

joern274 commented 10 months ago

On the other hand : that is exactly why we have the settings. If users have different preferences how the GUI should behave.

MonsterDruide1 commented 10 months ago
  • Use Shift modifier together with middle button for pan

No, that's exactly what I want to avoid here. LMB + Pan-modifier already exists, but I want to pan the view without pressing additional buttons.

  • Introduce a new modifier for rubber-band selection and communicate the modified GUI behavior to the user.

That would work, although I'm not sure if rubber-banding with MMB is even required in the first place. I'm not an experienced user with the program, so I probably can't properly judge that, but as far as I can tell, clicking between nodes with LMB to start rubber-band-selection should always be possible.

  • Add a setting so the user can decide whether the middle button gets used for rubber-band selection or pan

If hte existing behaviour should be maintained (somehow) at any cost, that would be my preferred solution compared to adding another modifier key.

joern274 commented 10 months ago

Concluding the discussion: