summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xfa/fwl/core/cfx_barcode.cpp42
-rw-r--r--xfa/fwl/core/cfx_barcode.h13
-rw-r--r--xfa/fwl/core/fwl_noteimp.cpp181
-rw-r--r--xfa/fwl/core/fwl_noteimp.h89
-rw-r--r--xfa/fwl/core/ifwl_app.cpp4
-rw-r--r--xfa/fwl/core/ifwl_form.cpp4
6 files changed, 77 insertions, 256 deletions
diff --git a/xfa/fwl/core/cfx_barcode.cpp b/xfa/fwl/core/cfx_barcode.cpp
index 35a5f32e28..8d9517903c 100644
--- a/xfa/fwl/core/cfx_barcode.cpp
+++ b/xfa/fwl/core/cfx_barcode.cpp
@@ -78,24 +78,7 @@ bool CFX_Barcode::SetHeight(int32_t height) {
bool CFX_Barcode::SetWidth(int32_t width) {
return m_pBCEngine ? m_pBCEngine->SetWidth(width) : false;
}
-bool CFX_Barcode::CheckContentValidity(const CFX_WideStringC& contents) {
- switch (GetType()) {
- case BC_CODE39:
- case BC_CODABAR:
- case BC_CODE128:
- case BC_CODE128_B:
- case BC_CODE128_C:
- case BC_EAN8:
- case BC_EAN13:
- case BC_UPCA:
- return m_pBCEngine
- ? static_cast<CBC_OneCode*>(m_pBCEngine.get())
- ->CheckContentValidity(contents)
- : true;
- default:
- return true;
- }
-}
+
bool CFX_Barcode::SetPrintChecksum(bool checksum) {
switch (GetType()) {
case BC_CODE39:
@@ -185,24 +168,7 @@ bool CFX_Barcode::SetFontSize(FX_FLOAT size) {
return false;
}
}
-bool CFX_Barcode::SetFontStyle(int32_t style) {
- switch (GetType()) {
- case BC_CODE39:
- case BC_CODABAR:
- case BC_CODE128:
- case BC_CODE128_B:
- case BC_CODE128_C:
- case BC_EAN8:
- case BC_EAN13:
- case BC_UPCA:
- return m_pBCEngine ? (static_cast<CBC_OneCode*>(m_pBCEngine.get())
- ->SetFontStyle(style),
- true)
- : false;
- default:
- return false;
- }
-}
+
bool CFX_Barcode::SetFontColor(FX_ARGB color) {
switch (GetType()) {
case BC_CODE39:
@@ -332,7 +298,3 @@ bool CFX_Barcode::RenderDevice(CFX_RenderDevice* device,
int32_t& e) {
return m_pBCEngine && m_pBCEngine->RenderDevice(device, matrix, e);
}
-
-bool CFX_Barcode::RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e) {
- return m_pBCEngine && m_pBCEngine->RenderBitmap(pOutBitmap, e);
-}
diff --git a/xfa/fwl/core/cfx_barcode.h b/xfa/fwl/core/cfx_barcode.h
index 0a454e5599..21fb7451d4 100644
--- a/xfa/fwl/core/cfx_barcode.h
+++ b/xfa/fwl/core/cfx_barcode.h
@@ -28,24 +28,29 @@ class CFX_Barcode {
bool Create(BC_TYPE type);
BC_TYPE GetType();
bool Encode(const CFX_WideStringC& contents, bool isDevice, int32_t& e);
+
bool RenderDevice(CFX_RenderDevice* device,
const CFX_Matrix* matrix,
int32_t& e);
- bool RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e);
+
bool SetCharEncoding(BC_CHAR_ENCODING encoding);
+
bool SetModuleHeight(int32_t moduleHeight);
bool SetModuleWidth(int32_t moduleWidth);
+
bool SetHeight(int32_t height);
bool SetWidth(int32_t width);
- bool CheckContentValidity(const CFX_WideStringC& contents);
+
bool SetPrintChecksum(bool checksum);
bool SetDataLength(int32_t length);
bool SetCalChecksum(bool state);
+
bool SetFont(CFX_Font* pFont);
bool SetFontSize(FX_FLOAT size);
- bool SetFontStyle(int32_t style);
bool SetFontColor(FX_ARGB color);
+
bool SetTextLocation(BC_TEXT_LOC location);
+
bool SetWideNarrowRatio(int32_t ratio);
bool SetStartChar(FX_CHAR start);
bool SetEndChar(FX_CHAR end);
@@ -53,7 +58,7 @@ class CFX_Barcode {
bool SetErrorCorrectionLevel(int32_t level);
bool SetTruncated(bool truncated);
- protected:
+ private:
std::unique_ptr<CBC_CodeBase> m_pBCEngine;
};
diff --git a/xfa/fwl/core/fwl_noteimp.cpp b/xfa/fwl/core/fwl_noteimp.cpp
index 70999d5f85..c17105a3f7 100644
--- a/xfa/fwl/core/fwl_noteimp.cpp
+++ b/xfa/fwl/core/fwl_noteimp.cpp
@@ -7,71 +7,24 @@
#include "xfa/fwl/core/fwl_noteimp.h"
#include "core/fxcrt/fx_ext.h"
+#include "third_party/base/ptr_util.h"
#include "third_party/base/stl_util.h"
#include "xfa/fwl/core/cfwl_message.h"
#include "xfa/fwl/core/cfwl_widgetmgr.h"
#include "xfa/fwl/core/ifwl_app.h"
#include "xfa/fwl/core/ifwl_tooltip.h"
-CFWL_NoteLoop::CFWL_NoteLoop(IFWL_Widget* pForm)
- : m_pForm(pForm), m_bContinueModal(true) {}
+CFWL_NoteLoop::CFWL_NoteLoop() : m_bContinueModal(true) {}
-FWL_Error CFWL_NoteLoop::Idle(int32_t count) {
-#if (_FX_OS_ == _FX_WIN32_DESKTOP_)
- if (count <= 0) {
-#endif
- CFWL_EvtIdle ev;
- const IFWL_App* pApp = m_pForm->GetOwnerApp();
- if (!pApp)
- return FWL_Error::Indefinite;
-
- CFWL_NoteDriver* pDriver = pApp->GetNoteDriver();
- if (!pDriver)
- return FWL_Error::Indefinite;
-
- pDriver->SendEvent(&ev);
-#if (_FX_OS_ == _FX_WIN32_DESKTOP_)
- }
-#endif
- return FWL_Error::Indefinite;
-}
-IFWL_Widget* CFWL_NoteLoop::GetForm() {
- return m_pForm;
-}
-bool CFWL_NoteLoop::ContinueModal() {
- return m_bContinueModal;
-}
-FWL_Error CFWL_NoteLoop::EndModalLoop() {
- m_bContinueModal = false;
- return FWL_Error::Succeeded;
-}
-
-FWL_Error CFWL_NoteLoop::SetMainForm(IFWL_Widget* pForm) {
- m_pForm = pForm;
- return FWL_Error::Succeeded;
-}
-void CFWL_NoteLoop::GenerateCommondEvent(uint32_t dwCommand) {
- CFWL_EvtMenuCommand ev;
- ev.m_iCommand = dwCommand;
- const IFWL_App* pApp = m_pForm->GetOwnerApp();
- if (!pApp)
- return;
-
- CFWL_NoteDriver* pDriver = pApp->GetNoteDriver();
- if (!pDriver)
- return;
-
- pDriver->SendEvent(&ev);
-}
CFWL_NoteDriver::CFWL_NoteDriver()
: m_pHover(nullptr),
m_pFocus(nullptr),
m_pGrab(nullptr),
- m_pNoteLoop(new CFWL_NoteLoop) {
+ m_pNoteLoop(pdfium::MakeUnique<CFWL_NoteLoop>()) {
PushNoteLoop(m_pNoteLoop.get());
}
CFWL_NoteDriver::~CFWL_NoteDriver() {
- ClearInvalidEventTargets(true);
+ ClearEventTargets(true);
}
void CFWL_NoteDriver::SendEvent(CFWL_Event* pNote) {
@@ -85,9 +38,9 @@ void CFWL_NoteDriver::SendEvent(CFWL_Event* pNote) {
}
}
-FWL_Error CFWL_NoteDriver::RegisterEventTarget(IFWL_Widget* pListener,
- IFWL_Widget* pEventSource,
- uint32_t dwFilter) {
+void CFWL_NoteDriver::RegisterEventTarget(IFWL_Widget* pListener,
+ IFWL_Widget* pEventSource,
+ uint32_t dwFilter) {
uint32_t key = pListener->GetEventKey();
if (key == 0) {
do {
@@ -96,32 +49,25 @@ FWL_Error CFWL_NoteDriver::RegisterEventTarget(IFWL_Widget* pListener,
pListener->SetEventKey(key);
}
if (!m_eventTargets[key])
- m_eventTargets[key] = new CFWL_EventTarget(this, pListener);
+ m_eventTargets[key] = new CFWL_EventTarget(pListener);
m_eventTargets[key]->SetEventSource(pEventSource, dwFilter);
- return FWL_Error::Succeeded;
}
-FWL_Error CFWL_NoteDriver::UnregisterEventTarget(IFWL_Widget* pListener) {
+void CFWL_NoteDriver::UnregisterEventTarget(IFWL_Widget* pListener) {
uint32_t key = pListener->GetEventKey();
if (key == 0)
- return FWL_Error::Indefinite;
+ return;
auto it = m_eventTargets.find(key);
if (it != m_eventTargets.end())
it->second->FlagInvalid();
-
- return FWL_Error::Succeeded;
-}
-
-void CFWL_NoteDriver::ClearEventTargets(bool bRemoveAll) {
- ClearInvalidEventTargets(bRemoveAll);
}
-FWL_Error CFWL_NoteDriver::PushNoteLoop(CFWL_NoteLoop* pNoteLoop) {
+void CFWL_NoteDriver::PushNoteLoop(CFWL_NoteLoop* pNoteLoop) {
m_noteLoopQueue.Add(pNoteLoop);
- return FWL_Error::Succeeded;
}
+
CFWL_NoteLoop* CFWL_NoteDriver::PopNoteLoop() {
int32_t pos = m_noteLoopQueue.GetSize();
if (pos <= 0)
@@ -165,7 +111,8 @@ bool CFWL_NoteDriver::SetFocus(IFWL_Widget* pFocus, bool bNotify) {
}
return true;
}
-FWL_Error CFWL_NoteDriver::Run() {
+
+void CFWL_NoteDriver::Run() {
#if (_FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_WIN32_DESKTOP_ || \
_FX_OS_ == _FX_WIN64_)
CFWL_NoteLoop* pTopLoop = nullptr;
@@ -177,22 +124,8 @@ FWL_Error CFWL_NoteDriver::Run() {
continue;
}
#endif
-
- return FWL_Error::Succeeded;
}
-IFWL_Widget* CFWL_NoteDriver::GetFocus() {
- return m_pFocus;
-}
-IFWL_Widget* CFWL_NoteDriver::GetHover() {
- return m_pHover;
-}
-void CFWL_NoteDriver::SetHover(IFWL_Widget* pHover) {
- m_pHover = pHover;
-}
-void CFWL_NoteDriver::SetGrab(IFWL_Widget* pGrab, bool bSet) {
- m_pGrab = bSet ? pGrab : nullptr;
-}
void CFWL_NoteDriver::NotifyTargetHide(IFWL_Widget* pNoteTarget) {
if (m_pFocus == pNoteTarget) {
m_pFocus = nullptr;
@@ -230,31 +163,27 @@ void CFWL_NoteDriver::NotifyTargetDestroy(IFWL_Widget* pNoteTarget) {
}
}
-FWL_Error CFWL_NoteDriver::RegisterForm(IFWL_Widget* pForm) {
- if (!pForm)
- return FWL_Error::Indefinite;
- if (m_forms.Find(pForm) >= 0) {
- return FWL_Error::Indefinite;
- }
+void CFWL_NoteDriver::RegisterForm(IFWL_Widget* pForm) {
+ if (!pForm || m_forms.Find(pForm) >= 0)
+ return;
+
m_forms.Add(pForm);
if (m_forms.GetSize() == 1) {
CFWL_NoteLoop* pLoop =
static_cast<CFWL_NoteLoop*>(m_noteLoopQueue.GetAt(0));
if (!pLoop)
- return FWL_Error::Indefinite;
+ return;
pLoop->SetMainForm(pForm);
}
- return FWL_Error::Succeeded;
}
-FWL_Error CFWL_NoteDriver::UnRegisterForm(IFWL_Widget* pForm) {
+
+void CFWL_NoteDriver::UnRegisterForm(IFWL_Widget* pForm) {
if (!pForm)
- return FWL_Error::Indefinite;
+ return;
int32_t nIndex = m_forms.Find(pForm);
- if (nIndex < 0) {
- return FWL_Error::Indefinite;
- }
+ if (nIndex < 0)
+ return;
m_forms.RemoveAt(nIndex);
- return FWL_Error::Succeeded;
}
bool CFWL_NoteDriver::QueueMessage(CFWL_Message* pMessage) {
pMessage->Retain();
@@ -276,15 +205,12 @@ bool CFWL_NoteDriver::UnqueueMessage(CFWL_NoteLoop* pNoteLoop) {
pMessage->Release();
return true;
}
-CFWL_NoteLoop* CFWL_NoteDriver::GetTopLoop() {
+CFWL_NoteLoop* CFWL_NoteDriver::GetTopLoop() const {
int32_t size = m_noteLoopQueue.GetSize();
if (size <= 0)
return nullptr;
return static_cast<CFWL_NoteLoop*>(m_noteLoopQueue[size - 1]);
}
-int32_t CFWL_NoteDriver::CountLoop() {
- return m_noteLoopQueue.GetSize();
-}
bool CFWL_NoteDriver::ProcessMessage(CFWL_Message* pMessage) {
CFWL_WidgetMgr* pWidgetMgr =
@@ -626,7 +552,7 @@ IFWL_Widget* CFWL_NoteDriver::GetMessageForm(IFWL_Widget* pDstTarget) {
return pMessageForm;
}
-void CFWL_NoteDriver::ClearInvalidEventTargets(bool bRemoveAll) {
+void CFWL_NoteDriver::ClearEventTargets(bool bRemoveAll) {
auto it = m_eventTargets.begin();
while (it != m_eventTargets.end()) {
auto old = it++;
@@ -637,9 +563,8 @@ void CFWL_NoteDriver::ClearInvalidEventTargets(bool bRemoveAll) {
}
}
-CFWL_EventTarget::CFWL_EventTarget(CFWL_NoteDriver* pNoteDriver,
- IFWL_Widget* pListener)
- : m_pListener(pListener), m_pNoteDriver(pNoteDriver), m_bInvalid(false) {}
+CFWL_EventTarget::CFWL_EventTarget(IFWL_Widget* pListener)
+ : m_pListener(pListener), m_bInvalid(false) {}
CFWL_EventTarget::~CFWL_EventTarget() {
m_eventSources.RemoveAll();
}
@@ -677,7 +602,8 @@ bool CFWL_EventTarget::ProcessEvent(CFWL_Event* pEvent) {
return false;
}
-bool CFWL_EventTarget::IsFilterEvent(CFWL_Event* pEvent, uint32_t dwFilter) {
+bool CFWL_EventTarget::IsFilterEvent(CFWL_Event* pEvent,
+ uint32_t dwFilter) const {
if (dwFilter == FWL_EVENT_ALL_MASK)
return true;
@@ -703,50 +629,3 @@ bool CFWL_EventTarget::IsFilterEvent(CFWL_Event* pEvent, uint32_t dwFilter) {
return !!(dwFilter & FWL_EVENT_CONTROL_MASK);
}
}
-
-CFWL_ToolTipContainer* CFWL_ToolTipContainer::s_pInstance = nullptr;
-
-CFWL_ToolTipContainer::CFWL_ToolTipContainer()
- : m_nInitDelayTime(0), m_nAutoPopDelayTime(2000) {
- m_fAnchor.Set(0.0, 0.0, 0.0, 0.0);
-}
-
-CFWL_ToolTipContainer::~CFWL_ToolTipContainer() {}
-
-void CFWL_ToolTipContainer::GetCaption(IFWL_Widget* pWidget,
- CFX_WideString& wsCaption) {
- wsCaption = m_wsCaption;
-}
-
-int32_t CFWL_ToolTipContainer::GetInitialDelay(IFWL_Widget* pWidget) {
- return m_nInitDelayTime;
-}
-
-int32_t CFWL_ToolTipContainer::GetAutoPopDelay(IFWL_Widget* pWidget) {
- return m_nAutoPopDelayTime;
-}
-
-CFX_DIBitmap* CFWL_ToolTipContainer::GetToolTipIcon(IFWL_Widget* pWidget) {
- return nullptr;
-}
-
-CFX_SizeF CFWL_ToolTipContainer::GetToolTipIconSize(IFWL_Widget* pWidget) {
- return CFX_SizeF();
-}
-
-CFX_RectF CFWL_ToolTipContainer::GetAnchor() {
- return m_fAnchor;
-}
-
-// static
-CFWL_ToolTipContainer* CFWL_ToolTipContainer::getInstance() {
- if (!s_pInstance)
- s_pInstance = new CFWL_ToolTipContainer;
- return s_pInstance;
-}
-
-// static
-void CFWL_ToolTipContainer::DeleteInstance() {
- delete s_pInstance;
- s_pInstance = nullptr;
-}
diff --git a/xfa/fwl/core/fwl_noteimp.h b/xfa/fwl/core/fwl_noteimp.h
index f8f5acbe37..45a92e7028 100644
--- a/xfa/fwl/core/fwl_noteimp.h
+++ b/xfa/fwl/core/fwl_noteimp.h
@@ -12,7 +12,6 @@
#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_message.h"
-#include "xfa/fwl/core/fwl_error.h"
#include "xfa/fwl/core/ifwl_tooltip.h"
#include "xfa/fwl/core/ifwl_widget.h"
#include "xfa/fxgraphics/cfx_graphics.h"
@@ -34,18 +33,15 @@ class IFWL_Widget;
class CFWL_NoteLoop {
public:
- CFWL_NoteLoop(IFWL_Widget* pForm = nullptr);
+ CFWL_NoteLoop();
~CFWL_NoteLoop() {}
- FWL_Error Idle(int32_t count);
- IFWL_Widget* GetForm();
- bool ContinueModal();
- FWL_Error EndModalLoop();
- FWL_Error SetMainForm(IFWL_Widget* pForm);
-
- protected:
- void GenerateCommondEvent(uint32_t dwCommand);
+ IFWL_Widget* GetForm() const { return m_pForm; }
+ bool ContinueModal() const { return m_bContinueModal; }
+ void EndModalLoop() { m_bContinueModal = false; }
+ void SetMainForm(IFWL_Widget* pForm) { m_pForm = pForm; }
+ private:
IFWL_Widget* m_pForm;
bool m_bContinueModal;
};
@@ -56,31 +52,36 @@ class CFWL_NoteDriver {
~CFWL_NoteDriver();
void SendEvent(CFWL_Event* pNote);
- FWL_Error RegisterEventTarget(IFWL_Widget* pListener,
- IFWL_Widget* pEventSource = nullptr,
- uint32_t dwFilter = FWL_EVENT_ALL_MASK);
- FWL_Error UnregisterEventTarget(IFWL_Widget* pListener);
+
+ void RegisterEventTarget(IFWL_Widget* pListener,
+ IFWL_Widget* pEventSource = nullptr,
+ uint32_t dwFilter = FWL_EVENT_ALL_MASK);
+ void UnregisterEventTarget(IFWL_Widget* pListener);
void ClearEventTargets(bool bRemoveAll);
- FWL_Error PushNoteLoop(CFWL_NoteLoop* pNoteLoop);
+
+ CFWL_NoteLoop* GetTopLoop() const;
+ void PushNoteLoop(CFWL_NoteLoop* pNoteLoop);
CFWL_NoteLoop* PopNoteLoop();
- IFWL_Widget* GetFocus();
+
+ IFWL_Widget* GetFocus() const { return m_pFocus; }
bool SetFocus(IFWL_Widget* pFocus, bool bNotify = false);
- void SetGrab(IFWL_Widget* pGrab, bool bSet);
- FWL_Error Run();
+ void SetGrab(IFWL_Widget* pGrab, bool bSet) {
+ m_pGrab = bSet ? pGrab : nullptr;
+ }
+
+ void Run();
- IFWL_Widget* GetHover();
- void SetHover(IFWL_Widget* pHover);
void NotifyTargetHide(IFWL_Widget* pNoteTarget);
void NotifyTargetDestroy(IFWL_Widget* pNoteTarget);
- FWL_Error RegisterForm(IFWL_Widget* pForm);
- FWL_Error UnRegisterForm(IFWL_Widget* pForm);
+
+ void RegisterForm(IFWL_Widget* pForm);
+ void UnRegisterForm(IFWL_Widget* pForm);
+
bool QueueMessage(CFWL_Message* pMessage);
bool UnqueueMessage(CFWL_NoteLoop* pNoteLoop);
- CFWL_NoteLoop* GetTopLoop();
- int32_t CountLoop();
bool ProcessMessage(CFWL_Message* pMessage);
- protected:
+ private:
bool DispatchMessage(CFWL_Message* pMessage, IFWL_Widget* pMessageForm);
bool DoActivate(CFWL_MsgActivate* pMsg, IFWL_Widget* pMessageForm);
bool DoDeactivate(CFWL_MsgDeactivate* pMsg, IFWL_Widget* pMessageForm);
@@ -96,7 +97,6 @@ class CFWL_NoteDriver {
void MouseSecondary(CFWL_MsgMouse* pMsg);
bool IsValidMessage(CFWL_Message* pMessage);
IFWL_Widget* GetMessageForm(IFWL_Widget* pDstTarget);
- void ClearInvalidEventTargets(bool bRemoveAll);
CFX_ArrayTemplate<IFWL_Widget*> m_forms;
CFX_ArrayTemplate<CFWL_Message*> m_noteQueue;
@@ -110,47 +110,22 @@ class CFWL_NoteDriver {
class CFWL_EventTarget {
public:
- CFWL_EventTarget(CFWL_NoteDriver* pNoteDriver, IFWL_Widget* pListener);
+ CFWL_EventTarget(IFWL_Widget* pListener);
~CFWL_EventTarget();
int32_t SetEventSource(IFWL_Widget* pSource,
uint32_t dwFilter = FWL_EVENT_ALL_MASK);
bool ProcessEvent(CFWL_Event* pEvent);
- bool IsFilterEvent(CFWL_Event* pEvent, uint32_t dwFilter);
- bool IsInvalid() { return m_bInvalid; }
+
+ bool IsInvalid() const { return m_bInvalid; }
void FlagInvalid() { m_bInvalid = true; }
- protected:
+ private:
+ bool IsFilterEvent(CFWL_Event* pEvent, uint32_t dwFilter) const;
+
CFX_MapPtrTemplate<void*, uint32_t> m_eventSources;
IFWL_Widget* m_pListener;
- CFWL_NoteDriver* m_pNoteDriver;
bool m_bInvalid;
};
-class CFWL_ToolTipContainer final : public IFWL_ToolTipDP {
- public:
- static CFWL_ToolTipContainer* getInstance();
- static void DeleteInstance();
-
- // IFWL_ToolTipDP
- void GetCaption(IFWL_Widget* pWidget, CFX_WideString& wsCaption) override;
- int32_t GetInitialDelay(IFWL_Widget* pWidget) override;
- int32_t GetAutoPopDelay(IFWL_Widget* pWidget) override;
- CFX_DIBitmap* GetToolTipIcon(IFWL_Widget* pWidget) override;
- CFX_SizeF GetToolTipIconSize(IFWL_Widget* pWidget) override;
-
- protected:
- CFWL_ToolTipContainer();
- ~CFWL_ToolTipContainer() override;
-
- CFX_RectF GetAnchor();
-
- private:
- static CFWL_ToolTipContainer* s_pInstance;
- CFX_WideString m_wsCaption;
- int32_t m_nInitDelayTime;
- int32_t m_nAutoPopDelayTime;
- CFX_RectF m_fAnchor;
-};
-
#endif // XFA_FWL_CORE_FWL_NOTEIMP_H_
diff --git a/xfa/fwl/core/ifwl_app.cpp b/xfa/fwl/core/ifwl_app.cpp
index 2612088c79..0a2b53a749 100644
--- a/xfa/fwl/core/ifwl_app.cpp
+++ b/xfa/fwl/core/ifwl_app.cpp
@@ -19,6 +19,4 @@ IFWL_App::IFWL_App(CXFA_FFApp* pAdapter)
ASSERT(m_pAdapterNative);
}
-IFWL_App::~IFWL_App() {
- CFWL_ToolTipContainer::DeleteInstance();
-}
+IFWL_App::~IFWL_App() {}
diff --git a/xfa/fwl/core/ifwl_form.cpp b/xfa/fwl/core/ifwl_form.cpp
index 4a8d911976..9e632a009a 100644
--- a/xfa/fwl/core/ifwl_form.cpp
+++ b/xfa/fwl/core/ifwl_form.cpp
@@ -329,7 +329,9 @@ IFWL_Widget* IFWL_Form::DoModal() {
if (!pDriver)
return nullptr;
- m_pNoteLoop.reset(new CFWL_NoteLoop(this));
+ m_pNoteLoop = pdfium::MakeUnique<CFWL_NoteLoop>();
+ m_pNoteLoop->SetMainForm(this);
+
pDriver->PushNoteLoop(m_pNoteLoop.get());
m_bDoModalFlag = true;
SetStates(FWL_WGTSTATE_Invisible, false);