Notebooks: Fix callout dialog being cut off at the bottom of the document (#14579)

* add above position for callout dialog

* use if else
This commit is contained in:
Lucy Zhang
2021-03-05 15:23:44 -08:00
committed by GitHub
parent 733c3628a1
commit f125b9b2c7
7 changed files with 31 additions and 13 deletions

View File

@@ -24,7 +24,7 @@ import { Deferred } from 'sql/base/common/promise';
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
import { Checkbox } from 'sql/base/browser/ui/checkbox/checkbox';
import { RadioButton } from 'sql/base/browser/ui/radioButton/radioButton';
import { DialogWidth } from 'sql/workbench/api/common/sqlExtHostTypes';
import { DialogPosition, DialogWidth } from 'sql/workbench/api/common/sqlExtHostTypes';
import { attachModalDialogStyler } from 'sql/workbench/common/styler';
import { escapeUrl } from 'sql/workbench/contrib/notebook/browser/calloutDialog/common/utils';
@@ -51,6 +51,7 @@ export class ImageCalloutDialog extends CalloutDialog<IImageCalloutDialogOptions
title: string,
width: DialogWidth,
dialogProperties: IDialogProperties,
dialogPosition: DialogPosition,
@IPathService private readonly _pathService: IPathService,
@IFileDialogService private readonly _fileDialogService: IFileDialogService,
@IContextViewService private readonly _contextViewService: IContextViewService,
@@ -66,6 +67,7 @@ export class ImageCalloutDialog extends CalloutDialog<IImageCalloutDialogOptions
title,
width,
dialogProperties,
dialogPosition,
themeService,
layoutService,
telemetryService,

View File

@@ -9,7 +9,7 @@ import * as styler from 'vs/platform/theme/common/styler';
import * as constants from 'sql/workbench/contrib/notebook/browser/calloutDialog/common/constants';
import { CalloutDialog } from 'sql/workbench/browser/modal/calloutDialog';
import { IContextViewService } from 'vs/platform/contextview/browser/contextView';
import { IDialogProperties } from 'sql/workbench/browser/modal/modal';
import { DialogPosition, IDialogProperties } from 'sql/workbench/browser/modal/modal';
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
import { IThemeService } from 'vs/platform/theme/common/themeService';
@@ -43,6 +43,7 @@ export class LinkCalloutDialog extends CalloutDialog<ILinkCalloutDialogOptions>
constructor(
title: string,
dialogProperties: IDialogProperties,
dialogPosition: DialogPosition,
private readonly _defaultLabel: string = '',
@IContextViewService private readonly _contextViewService: IContextViewService,
@IThemeService themeService: IThemeService,
@@ -57,6 +58,7 @@ export class LinkCalloutDialog extends CalloutDialog<ILinkCalloutDialogOptions>
title,
DEFAULT_DIALOG_WIDTH,
dialogProperties,
dialogPosition,
themeService,
layoutService,
telemetryService,

View File

@@ -278,11 +278,12 @@ export class MarkdownToolbarComponent extends AngularDisposable {
const triggerHeight = triggerElement.offsetHeight;
const triggerWidth = triggerElement.offsetWidth;
const dialogProperties = { xPos: triggerPosX, yPos: triggerPosY, width: triggerWidth, height: triggerHeight };
const dialogPosition = window.innerHeight - triggerPosY < 250 ? 'above' : 'below';
let calloutOptions;
if (type === MarkdownButtonType.LINK_PREVIEW) {
const defaultLabel = this.getCurrentSelectionText();
this._linkCallout = this._instantiationService.createInstance(LinkCalloutDialog, this.insertLinkHeading, dialogProperties, defaultLabel);
this._linkCallout = this._instantiationService.createInstance(LinkCalloutDialog, this.insertLinkHeading, dialogProperties, dialogPosition, defaultLabel);
this._linkCallout.render();
calloutOptions = await this._linkCallout.open();
}