[Bug 3023] Orcad - "Place Part" never tries to put down a part

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Jun 30 20:25:21 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=3023





--- Comment #24 from Eliot Blennerhassett <ewblen+wine at gmail.com>  2010-06-30 20:25:19 ---
refining my previous comment.
OrCad is an MDI (?) app. I.e. multiple windows in a workspace.

The place part functionality fails if the specific schematic window within the
workspace loses focus, either by clicking on another window in the workspace,
or moving the mouse outside the workspace.

Could it be that WINPOS_ActivateOtherWindow() is activating the 'wrong' window?

I do have a patch that allows test mentioned in #22 to succeed, and yet OrCad
to work.
Copy static DEFDLG_GetDlgProc, then use it thus:

{
    DLGPROC dlgproc;

    if (!(dlgproc = DIALOG_GetDlgProc( hwnd )))
    if (hwnd == GetActiveWindow())
        WINPOS_ActivateOtherWindow( hwnd );
}

I.e. only call WINPOS_ActivateOtherWindow if the hwnd has no dialog proc, i.e.
it is not a real dialog window.

I'd love to know what app and symptom the failing test, and this code are
addressing. I have be trawling through the CVS logs, this line of code was
added in 2004 by juilliard to wine/windows/dialog.c cvs r1.130, and the test in
msg.c was added at the same time, with no comment about why.

I still maintain that the usage of EndDialog in tests/msg.c is unusual, and
doesn't actually test the 99.9% usage case where it is called from within the
dialog's dlgProc.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list