mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
* Initial plan * Add comprehensive MouseClick removal analysis Co-authored-by: tig <585482+tig@users.noreply.github.com> * Fix code review feedback on analysis document Co-authored-by: tig <585482+tig@users.noreply.github.com> * Add actual line numbers to analysis document Co-authored-by: tig <585482+tig@users.noreply.github.com> * Final polish on analysis document - clarify TextView Co-authored-by: tig <585482+tig@users.noreply.github.com> * Phase 3: Port 6 simple Views from MouseClick to Selecting/MouseBindings Co-authored-by: tig <585482+tig@users.noreply.github.com> * Phase 2: Port 10 Scenarios from MouseClick to Selecting/remove Co-authored-by: tig <585482+tig@users.noreply.github.com> * Update analysis document - Phases 2 & 3 complete Co-authored-by: tig <585482+tig@users.noreply.github.com> * Fix failing tests - Button multi-button support and Label focus handling Co-authored-by: tig <585482+tig@users.noreply.github.com> * Phase 4: Port ScrollBar from OnMouseClick to OnSelecting; remove analysis doc Co-authored-by: tig <585482+tig@users.noreply.github.com> * Phase 5: Update/remove tests that explicitly test MouseClick API Co-authored-by: tig <585482+tig@users.noreply.github.com> * Code cleanup * Remove MouseClick event Consolidated mouse event handling by removing the `MouseClick` event and integrating its functionality into the `MouseEvent` event. Simplified `MouseEventArgs` documentation and added support for invoking commands bound to mouse events. Reorganized code by removing `Mouse Pressed Events` and `Mouse Click Events` regions, introducing a new `WhenGrabbed Handlers` region. Updated tests to replace `MouseClick` with `MouseEvent`, adjusted test logic, and improved variable naming for clarity. Removed redundant assertions and unused code related to `MouseClick`. Improved event propagation logic to ensure proper handling of unhandled events. Performed general code cleanup to enhance readability and maintainability. * Updated deep dives. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: tig <585482+tig@users.noreply.github.com> Co-authored-by: Tig <tig@users.noreply.github.com>
This commit is contained in:
@@ -610,29 +610,35 @@ public class TableEditor : Scenario
|
||||
};
|
||||
|
||||
// if user clicks the mouse in TableView
|
||||
_tableView!.MouseClick += (s, e) =>
|
||||
{
|
||||
if (_currentTable == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_tableView!.Selecting += (s, e) =>
|
||||
{
|
||||
if (_currentTable == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_tableView!.ScreenToCell (e.Position, out int? clickedCol);
|
||||
// Only handle mouse clicks
|
||||
if (e.Context is not CommandContext<MouseBinding> { Binding.MouseEventArgs: { } mouseArgs })
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (clickedCol != null)
|
||||
{
|
||||
if (e.Flags.HasFlag (MouseFlags.Button1Clicked))
|
||||
{
|
||||
// left click in a header
|
||||
SortColumn (clickedCol.Value);
|
||||
}
|
||||
else if (e.Flags.HasFlag (MouseFlags.Button3Clicked))
|
||||
{
|
||||
// right click in a header
|
||||
ShowHeaderContextMenu (clickedCol.Value, e);
|
||||
}
|
||||
}
|
||||
};
|
||||
_tableView!.ScreenToCell (mouseArgs.Position, out int? clickedCol);
|
||||
|
||||
if (clickedCol != null)
|
||||
{
|
||||
if (mouseArgs.Flags.HasFlag (MouseFlags.Button1Clicked))
|
||||
{
|
||||
// left click in a header
|
||||
SortColumn (clickedCol.Value);
|
||||
}
|
||||
else if (mouseArgs.Flags.HasFlag (MouseFlags.Button3Clicked))
|
||||
{
|
||||
// right click in a header
|
||||
ShowHeaderContextMenu (clickedCol.Value, mouseArgs);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_tableView!.KeyBindings.ReplaceCommands (Key.Space, Command.Accept);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user