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

View File

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

View File

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