diff --git a/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html b/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html
index f07233836..817b1db52 100644
--- a/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html
+++ b/src/addon/qtype/ddimageortext/component/addon-qtype-ddimageortext.html
@@ -7,7 +7,7 @@
{{ 'core.question.howtodraganddrop' | translate }}
-
-
+
+
diff --git a/src/addon/qtype/ddimageortext/component/ddimageortext.ts b/src/addon/qtype/ddimageortext/component/ddimageortext.ts
index 9574648dd..1a752bdae 100644
--- a/src/addon/qtype/ddimageortext/component/ddimageortext.ts
+++ b/src/addon/qtype/ddimageortext/component/ddimageortext.ts
@@ -30,6 +30,8 @@ export class AddonQtypeDdImageOrTextComponent extends CoreQuestionBaseComponent
protected questionInstance: AddonQtypeDdImageOrTextQuestion;
protected drops: any[]; // The drop zones received in the init object of the question.
protected destroyed = false;
+ protected textIsRendered = false;
+ protected ddAreaisRendered = false;
constructor(protected loggerProvider: CoreLoggerProvider, injector: Injector, element: ElementRef) {
super(loggerProvider, 'AddonQtypeDdImageOrTextComponent', injector);
@@ -84,10 +86,30 @@ export class AddonQtypeDdImageOrTextComponent extends CoreQuestionBaseComponent
this.question.loaded = false;
}
+ /**
+ * The question ddArea has been rendered.
+ */
+ ddAreaRendered(): void {
+ this.ddAreaisRendered = true;
+ if (this.textIsRendered) {
+ this.questionRendered();
+ }
+ }
+
+ /**
+ * The question text has been rendered.
+ */
+ textRendered(): void {
+ this.textIsRendered = true;
+ if (this.ddAreaisRendered) {
+ this.questionRendered();
+ }
+ }
+
/**
* The question has been rendered.
*/
- questionRendered(): void {
+ protected questionRendered(): void {
if (!this.destroyed) {
// Create the instance.
this.questionInstance = new AddonQtypeDdImageOrTextQuestion(this.loggerProvider, this.domUtils, this.element,
diff --git a/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html b/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html
index 2284c4265..60ec70218 100644
--- a/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html
+++ b/src/addon/qtype/ddmarker/component/addon-qtype-ddmarker.html
@@ -7,7 +7,7 @@
{{ 'core.question.howtodraganddrop' | translate }}
-
-
+
+
diff --git a/src/addon/qtype/ddmarker/component/ddmarker.ts b/src/addon/qtype/ddmarker/component/ddmarker.ts
index 0e778196c..a7d30837c 100644
--- a/src/addon/qtype/ddmarker/component/ddmarker.ts
+++ b/src/addon/qtype/ddmarker/component/ddmarker.ts
@@ -35,6 +35,8 @@ export class AddonQtypeDdMarkerComponent extends CoreQuestionBaseComponent imple
protected dropZones: any[]; // The drop zones received in the init object of the question.
protected imgSrc: string; // Background image URL.
protected destroyed = false;
+ protected textIsRendered = false;
+ protected ddAreaisRendered = false;
constructor(protected loggerProvider: CoreLoggerProvider, injector: Injector, element: ElementRef,
protected sitesProvider: CoreSitesProvider, protected urlUtils: CoreUrlUtilsProvider,
@@ -101,10 +103,30 @@ export class AddonQtypeDdMarkerComponent extends CoreQuestionBaseComponent imple
this.question.loaded = false;
}
+ /**
+ * The question ddArea has been rendered.
+ */
+ ddAreaRendered(): void {
+ this.ddAreaisRendered = true;
+ if (this.textIsRendered) {
+ this.questionRendered();
+ }
+ }
+
+ /**
+ * The question text has been rendered.
+ */
+ textRendered(): void {
+ this.textIsRendered = true;
+ if (this.ddAreaisRendered) {
+ this.questionRendered();
+ }
+ }
+
/**
* The question has been rendered.
*/
- questionRendered(): void {
+ protected questionRendered(): void {
if (!this.destroyed) {
// Download background image (3.6+ sites).
let promise = null;
diff --git a/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html b/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html
index e70dcfd69..b998f2fe0 100644
--- a/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html
+++ b/src/addon/qtype/ddwtos/component/addon-qtype-ddwtos.html
@@ -7,8 +7,8 @@
{{ 'core.question.howtodraganddrop' | translate }}
-
-
+
+
diff --git a/src/addon/qtype/ddwtos/component/ddwtos.ts b/src/addon/qtype/ddwtos/component/ddwtos.ts
index 2ad23fcc6..077677e27 100644
--- a/src/addon/qtype/ddwtos/component/ddwtos.ts
+++ b/src/addon/qtype/ddwtos/component/ddwtos.ts
@@ -31,6 +31,8 @@ export class AddonQtypeDdwtosComponent extends CoreQuestionBaseComponent impleme
protected questionInstance: AddonQtypeDdwtosQuestion;
protected inputIds: string[] = []; // Ids of the inputs of the question (where the answers will be stored).
protected destroyed = false;
+ protected textIsRendered = false;
+ protected answerAreRendered = false;
constructor(protected loggerProvider: CoreLoggerProvider, injector: Injector, element: ElementRef) {
super(loggerProvider, 'AddonQtypeDdwtosComponent', injector);
@@ -85,10 +87,30 @@ export class AddonQtypeDdwtosComponent extends CoreQuestionBaseComponent impleme
this.question.loaded = false;
}
+ /**
+ * The question answers have been rendered.
+ */
+ answersRendered(): void {
+ this.answerAreRendered = true;
+ if (this.textIsRendered) {
+ this.questionRendered();
+ }
+ }
+
+ /**
+ * The question text has been rendered.
+ */
+ textRendered(): void {
+ this.textIsRendered = true;
+ if (this.answerAreRendered) {
+ this.questionRendered();
+ }
+ }
+
/**
* The question has been rendered.
*/
- questionRendered(): void {
+ protected questionRendered(): void {
if (!this.destroyed) {
this.domUtils.waitForImages(this.questionTextEl.nativeElement).then(() => {
// Create the instance.