+////////////////////////////////////////////////////////////////////
+//
+// EmbeddedWorkArea
+//
+////////////////////////////////////////////////////////////////////
+
+
+EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
+{
+ buffer_ = theBufferList().newBuffer(
+ support::FileName::tempName().absFileName() + "_embedded.internal");
+ buffer_->setUnnamed(true);
+ buffer_->setFullyLoaded(true);
+ setBuffer(*buffer_);
+ setDialogMode(true);
+}
+
+
+EmbeddedWorkArea::~EmbeddedWorkArea()
+{
+ // No need to destroy buffer and bufferview here, because it is done
+ // in theBufferList() destruction loop at application exit
+}
+
+
+void EmbeddedWorkArea::closeEvent(QCloseEvent * ev)
+{
+ disable();
+ GuiWorkArea::closeEvent(ev);
+}
+
+
+void EmbeddedWorkArea::hideEvent(QHideEvent * ev)
+{
+ disable();
+ GuiWorkArea::hideEvent(ev);
+}
+
+
+QSize EmbeddedWorkArea::sizeHint () const
+{
+ // FIXME(?):
+ // GuiWorkArea sets the size to the screen's viewport
+ // by returning a value this gets overridden
+ // EmbeddedWorkArea is now sized to fit in the layout
+ // of the parent, and has a minimum size set in GuiWorkArea
+ // which is what we return here
+ return QSize(100, 70);
+}
+
+
+void EmbeddedWorkArea::disable()
+{
+ stopBlinkingCursor();
+ if (view().currentWorkArea() != this)
+ return;
+ // No problem if currentMainWorkArea() is 0 (setCurrentWorkArea()
+ // tolerates it and shows the background logo), what happens if
+ // an EmbeddedWorkArea is closed after closing all document WAs
+ view().setCurrentWorkArea(view().currentMainWorkArea());
+}
+