diff --git a/examples/Demo/Shared/Pages/Splitter/Examples/MultiSplitterDefault.razor b/examples/Demo/Shared/Pages/Splitter/Examples/MultiSplitterDefault.razor index c5259c1cb7..a66964db07 100644 --- a/examples/Demo/Shared/Pages/Splitter/Examples/MultiSplitterDefault.razor +++ b/examples/Demo/Shared/Pages/Splitter/Examples/MultiSplitterDefault.razor @@ -3,7 +3,7 @@ Left Menu - + Main Content @@ -23,4 +23,10 @@ { DemoLogger.WriteLine($"Pane {e.PaneIndex} Resize (New size {e.NewSize})"); } + + void OnCollapseExpand(FluentMultiSplitterEventArgs e) + { + bool willCollapse = !e.Pane.Collapsed; + DemoLogger.WriteLine($"Pane {e.PaneIndex} {(willCollapse ? "collapsed" : "expanded")}"); + } } diff --git a/src/Core/Components/Splitter/FluentMultiSplitter.razor.js b/src/Core/Components/Splitter/FluentMultiSplitter.razor.js index b6de801932..44858cf7e1 100644 --- a/src/Core/Components/Splitter/FluentMultiSplitter.razor.js +++ b/src/Core/Components/Splitter/FluentMultiSplitter.razor.js @@ -77,23 +77,32 @@ export function startSplitterResize( pane.style.flexBasis.includes('%') && paneNext.style.flexBasis.includes('%')) { - splitter.invokeMethodAsync( - 'FluentMultiSplitter.OnPaneResizedAsync', - parseInt(pane.getAttribute('data-index')), - parseFloat(pane.style.flexBasis), - paneNext ? parseInt(paneNext.getAttribute('data-index')) : null, - paneNext ? parseFloat(paneNext.style.flexBasis) : null - ); + if (document.splitterData[el].moved === true) { + splitter.invokeMethodAsync( + 'FluentMultiSplitter.OnPaneResizedAsync', + parseInt(pane.getAttribute('data-index')), + parseFloat(pane.style.flexBasis), + paneNext ? parseInt(paneNext.getAttribute('data-index')) : null, + paneNext ? parseFloat(paneNext.style.flexBasis) : null + ); + } + document.removeEventListener('mousemove', document.splitterData[el].mouseMoveHandler); document.removeEventListener('mouseup', document.splitterData[el].mouseUpHandler); document.removeEventListener('touchmove', document.splitterData[el].touchMoveHandler); document.removeEventListener('touchend', document.splitterData[el].mouseUpHandler); document.splitterData[el] = null; } + + if (document.splitterData[el]) { + document.splitterData[el].moved = false; + } }, mouseMoveHandler: function (e) { if (document.splitterData[el]) { + document.splitterData[el].moved = true; + var spacePerc = document.splitterData[el].panePerc + document.splitterData[el].paneNextPerc; var spaceLength = document.splitterData[el].paneLength + document.splitterData[el].paneNextLength;