%sAzDrawing 1.3においてAXTopWindow.cppの407行目あたりのsetAppIconにおけるXChangeProperty呼び出しで、Segmentation faultが出て起動できなかった件ですが、呼び出し元をコメントアウトする以外に、ふと思いついてこうしてみました。
XWindowのサンプルを見て回っていて、ん?と思った部分を追加してみたわけです。
根拠なしに実に適当に。
この部分を
void AXTopWindow::setAppIcon(const LPDWORD pBuf,BOOL bClear) { if(pBuf) { ::XChangeProperty(DISP, m_id, axatom(AXAppAtom::_NET_WM_ICON), XA_CARDINAL, 32, (bClear)? PropModeReplace: PropModeAppend, (LPBYTE)pBuf, pBuf[0] * pBuf[1] + 2); } }
以下のように一行書き加えると
void AXTopWindow::setAppIcon(const LPDWORD pBuf,BOOL bClear) { if(pBuf) { ::XFlush(DISP); ::XChangeProperty(DISP, m_id, axatom(AXAppAtom::_NET_WM_ICON), XA_CARDINAL, 32, (bClear)? PropModeReplace: PropModeAppend, (LPBYTE)pBuf, pBuf[0] * pBuf[1] + 2); } }
偶然にもこれでSegmentation faultは起きなくなり、正常起動できるようになったようです。とりあえず。今のところは。
もしかしてこの問題、環境依存なのですかねぇ。なーんかroot(sudo)では修正なしで動くという点から見ても。
しかし、他のアプリでこういう部分で例外起こして止まるのは見ないのですよ、今のところ…
このような良いソフトが初期化部分で停止してしまうのは残念至極でしたが、とりあえず動くようになって良かったと。
%sAzDrawing 1.3においてAXTopWindow.cppの407行目あたりのsetAppIconにおけるXChangeProperty呼び出しで、Segmentation faultが出て起動できなかった件ですが、呼び出し元をコメントアウトする以外に、ふと思いついてこうしてみました。
XWindowのサンプルを見て回っていて、ん?と思った部分を追加してみたわけです。
根拠なしに実に適当に。
この部分を
void AXTopWindow::setAppIcon(const LPDWORD pBuf,BOOL bClear) { if(pBuf) { ::XChangeProperty(DISP, m_id, axatom(AXAppAtom::_NET_WM_ICON), XA_CARDINAL, 32, (bClear)? PropModeReplace: PropModeAppend, (LPBYTE)pBuf, pBuf[0] * pBuf[1] + 2); } }
以下のように一行書き加えると
void AXTopWindow::setAppIcon(const LPDWORD pBuf,BOOL bClear) { if(pBuf) { ::XFlush(DISP); ::XChangeProperty(DISP, m_id, axatom(AXAppAtom::_NET_WM_ICON), XA_CARDINAL, 32, (bClear)? PropModeReplace: PropModeAppend, (LPBYTE)pBuf, pBuf[0] * pBuf[1] + 2); } }
偶然にもこれでSegmentation faultは起きなくなり、正常起動できるようになったようです。とりあえず。今のところは。
もしかしてこの問題、環境依存なのですかねぇ。なーんかroot(sudo)では修正なしで動くという点から見ても。
しかし、他のアプリでこういう部分で例外起こして止まるのは見ないのですよ、今のところ…
このような良いソフトが初期化部分で停止してしまうのは残念至極でしたが、とりあえず動くようになって良かったと。