Skip to content

Commit

Permalink
グローバル変数g_pcEditWndを削除する
Browse files Browse the repository at this point in the history
CEditWndのインスタンスはクラスのstatic変数に保持されるので、グローバル変数に持つと二重保持になり無駄です。
  • Loading branch information
sanomari committed Oct 17, 2021
1 parent f477971 commit 4b341c4
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 16 deletions.
3 changes: 0 additions & 3 deletions sakura_core/_main/global.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,6 @@ LPCWSTR GetAppName( void )
return pcProcess->GetAppName();
}

//2007.10.02 kobake CEditWndのインスタンスへのポインタをここに保存しておく
CEditWnd* g_pcEditWnd = NULL;

/*! 選択領域描画用パラメータ */
const COLORREF SELECTEDAREA_RGB = RGB( 255, 255, 255 );
const int SELECTEDAREA_ROP2 = R2_XORPEN;
Expand Down
4 changes: 0 additions & 4 deletions sakura_core/_main/global.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,5 @@ struct SSearchOption{
bool operator != (const SSearchOption& rhs) const noexcept;
};

//2007.10.02 kobake CEditWndのインスタンスへのポインタをここに保存しておく
class CEditWnd;
extern CEditWnd* g_pcEditWnd;

HINSTANCE G_AppInstance();
#endif /* SAKURA_GLOBAL_BD124BE7_A850_41F3_9F5D_8A4F0E45A4C9_H_ */
23 changes: 17 additions & 6 deletions sakura_core/util/MessageBoxF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
#include <stdarg.h>
#include <tchar.h>
#include "MessageBoxF.h"
#include "_main/CProcess.h"
#include "window/CEditWnd.h"
#include "CSelectLang.h"
#include "config/app_constants.h"
Expand Down Expand Up @@ -74,14 +75,24 @@ int Wrap_MessageBox(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)
);
}

HWND GetMessageBoxOwner(HWND hwndOwner)
/*!
* メッセージボックスのオーナーウインドウを取得します。
*
* @param [in,opt] hWndOwner オーナーウインドウ
* @returns メッセージボックスのオーナーウインドウ
* @retval 指定したオーナーウインドウが不正値で、プロセスのメインウインドウが作成済みの場合
* @retval hWndOwner 指定したオーナーウインドウが適正値で、メインウインドウが未作成の場合
*/
HWND GetMessageBoxOwner(HWND hWndOwner)
{
if(hwndOwner==NULL && g_pcEditWnd){
return g_pcEditWnd->GetHwnd();
}
else{
return hwndOwner;
if( !hWndOwner || !::IsWindow(hWndOwner) )
{
if( const auto pcProcess = CProcess::getInstance() )
{
hWndOwner = pcProcess->GetMainWindow();
}
}
return hWndOwner;
}

/*!
Expand Down
3 changes: 0 additions & 3 deletions sakura_core/window/CEditWnd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -233,13 +233,10 @@ CEditWnd::CEditWnd()
, m_IconClicked(icNone) //by 鬼(2)
, m_nSelectCountMode( SELECT_COUNT_TOGGLE ) //文字カウント方法の初期値はSELECT_COUNT_TOGGLE→共通設定に従う
{
g_pcEditWnd=this;
}

CEditWnd::~CEditWnd()
{
g_pcEditWnd=NULL;

delete m_pPrintPreview;
m_pPrintPreview = NULL;

Expand Down

0 comments on commit 4b341c4

Please sign in to comment.