fix: reload layout when double clicking on panel resizer

This commit is contained in:
Antonella Sgarlatta
2021-06-02 18:38:54 -03:00
parent de31fe7d61
commit 595b44dfee
3 changed files with 14 additions and 10 deletions

View File

@@ -54,7 +54,7 @@ class PanelResizerCtrl implements PanelResizerScope {
index!: number
minWidth!: number
onResizeFinish!: () => ResizeFinishCallback
onMouseMoveEvent?: () => () => void
onWidthEvent?: () => () => void
panelId!: string
property!: PanelSide
@@ -104,7 +104,7 @@ class PanelResizerCtrl implements PanelResizerScope {
$onDestroy() {
(this.onResizeFinish as any) = undefined;
(this.onMouseMoveEvent as any) = undefined;
(this.onWidthEvent as any) = undefined;
(this.control as any) = undefined;
window.removeEventListener(WINDOW_EVENT_RESIZE, this.handleResize);
document.removeEventListener(MouseEventType.Move, this.onMouseMove);
@@ -189,6 +189,9 @@ class PanelResizerCtrl implements PanelResizerScope {
addDoubleClickHandler() {
this.resizerColumn.ondblclick = () => {
this.$timeout(() => {
if (this.onWidthEvent) {
this.onWidthEvent()();
}
const preClickCollapseState = this.isCollapsed();
if (preClickCollapseState) {
this.setWidth(this.widthBeforeLastDblClick || this.defaultWidth);
@@ -245,9 +248,6 @@ class PanelResizerCtrl implements PanelResizerScope {
return;
}
event.preventDefault();
if (this.onMouseMoveEvent) {
this.onMouseMoveEvent()();
}
if (this.property && this.property === PanelSide.Left) {
this.handleLeftEvent(event);
} else {
@@ -256,6 +256,9 @@ class PanelResizerCtrl implements PanelResizerScope {
}
handleWidthEvent(event?: MouseEvent) {
if (this.onWidthEvent) {
this.onWidthEvent()();
}
let x;
if (event) {
x = event!.clientX;
@@ -393,7 +396,7 @@ export class PanelResizer extends WebDirective {
index: '=',
minWidth: '=',
onResizeFinish: '&',
onMouseMoveEvent: '&',
onWidthEvent: '&',
panelId: '=',
property: '='
};

View File

@@ -169,6 +169,6 @@
default-width="300"
hoverable="true"
on-resize-finish="self.onPanelResize"
on-mouse-move-event="self.onPanelMouseMoveEvent"
on-width-event="self.onPanelWidthEvent"
panel-id="'notes-column'"
)

View File

@@ -93,7 +93,7 @@ class NotesViewCtrl extends PureViewCtrl<unknown, NotesCtrlState> {
};
this.onWindowResize = this.onWindowResize.bind(this);
this.onPanelResize = this.onPanelResize.bind(this);
this.onPanelMouseMoveEvent = this.onPanelMouseMoveEvent.bind(this);
this.onPanelWidthEvent = this.onPanelWidthEvent.bind(this);
window.addEventListener('resize', this.onWindowResize, true);
this.registerKeyboardShortcuts();
this.autorun(async () => {
@@ -134,7 +134,7 @@ class NotesViewCtrl extends PureViewCtrl<unknown, NotesCtrlState> {
window.removeEventListener('resize', this.onWindowResize, true);
(this.onWindowResize as any) = undefined;
(this.onPanelResize as any) = undefined;
(this.onPanelMouseMoveEvent as any) = undefined;
(this.onPanelWidthEvent as any) = undefined;
this.newNoteKeyObserver();
this.nextNoteKeyObserver();
this.previousNoteKeyObserver();
@@ -649,6 +649,7 @@ class NotesViewCtrl extends PureViewCtrl<unknown, NotesCtrlState> {
__: boolean,
isCollapsed: boolean
) {
this.appState.activeNote.reloadTagsContainerMaxWidth();
this.application.setPreference(
PrefKey.NotesPanelWidth,
newWidth
@@ -659,7 +660,7 @@ class NotesViewCtrl extends PureViewCtrl<unknown, NotesCtrlState> {
);
}
onPanelMouseMoveEvent(): void {
onPanelWidthEvent(): void {
this.appState.activeNote.reloadTagsContainerMaxWidth();
}