Skip to content

Commit 47c2189

Browse files
authored
Merge pull request eclipsesource#484 from eneufeld/fix_improve_master_detail
Fix dialog positioning for master-detail
2 parents 314a804 + acdd308 commit 47c2189

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/components/renderers/layouts/masterdetail/masterdetail.directives.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ class MasterDetailCollectionController {
6666
public selectedElementForAdd;
6767
public selectedScopeForAdd;
6868
public showSelectKeyDialog: boolean = false;
69+
70+
private addClickPositionX;
71+
private addClickPositionY;
6972
constructor(private scope) {
7073
}
7174
public getArraySubSchemas(schema) {
@@ -151,21 +154,25 @@ class MasterDetailCollectionController {
151154
}
152155
}
153156
public deactivateScroll () {
154-
(<HTMLElement>document.activeElement).style.overflow = 'hidden';
157+
(<HTMLElement>document.body).style.overflow = 'hidden';
155158
}
156159
public activateScroll () {
157-
(<HTMLElement>document.activeElement).style.overflow = 'auto';
160+
(<HTMLElement>document.body).style.overflow = 'auto';
158161
}
159162
public get pageHeight() {
160-
return document.activeElement['scrollHeight'];
163+
return document.body['scrollHeight'];
161164
}
162165
public get pageWidth() {
163-
return document.activeElement['scrollWidth'];
166+
return document.body['scrollWidth'];
164167
}
165168

166169
public getBeautifulKeyName(key: string): string {
167170
return PathUtil.beautify(key);
168171
}
172+
handleAddClick(event): void {
173+
this.addClickPositionX = event.clientX;
174+
this.addClickPositionY = event.clientY;
175+
}
169176
}
170177
class MasterDetailCollectionDirective implements ng.IDirective {
171178
restrict = 'E';
@@ -217,7 +224,7 @@ const masterDetailCollectionTemplate = `
217224
<span class="jsf-masterdetail-entry-add"
218225
ng-click="vm.selectedScopeForAdd=$parent;vm.selectedSchemaForAdd=schema;
219226
vm.selectedElementForAdd=child;vm.showSelectKeyDialog=true;
220-
vm.addClickPositionX=$event.pageX;vm.addClickPositionY=$event.pageY;vm.deactivateScroll()"
227+
vm.handleAddClick($event);vm.deactivateScroll()"
221228
ng-if="vm.canHaveChildren(schema)">+</span>
222229
<span class="jsf-masterdetail-entry-remove"
223230
ng-click="vm.updateHasContents(parentItemContext);

0 commit comments

Comments
 (0)