Closed
Bug 238382
Opened 21 years ago
Closed 14 years ago
[ActiveX] tab navigation broken in forms in control
Categories
(Core Graveyard :: Embedding: ActiveX Wrapper, defect)
Tracking
(Not tracked)
RESOLVED
INVALID
People
(Reporter: max, Unassigned)
Details
Attachments
(1 file)
|
3.11 KB,
patch
|
adamlock
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113
Tab key doesn't work in embedded applications with ActiveX
Reproducible: Always
Steps to Reproduce:
1. Compile and run the sample application
http://www.iol.ie/~locka/mozilla/MozCtlDemo2.zip
2. Go to any url with more than on field and put cursor into one of the fields
3. Press <Tab> key
Actual Results:
Nothing happens
Expected Results:
Next field should be selected
WM_GETDLGCODE returns DLGC_WANTALLKEYS. I suppose it should return
DLGC_WANTARROWS|DLGC_WANTTAB
Comment 1•21 years ago
|
||
I tested this, and DLGC_WANTALLKEYS & DLGC_WANTARROWS != 0 and
WANTALLKEYS & DLGC_WANTTAB != 0, so this is not the problem.
Actually CMozillaBrowser::OnGetDlgCode is only called a few time when it is
created and when it gets the focus I think, but not when a key is pressed.
What we should do is us a CComCompositeControl instead of a CComControl.
See this Atl doc:
"A control implemented by a CComCompositeControl-derived class has default
tabbing behavior built in. When the control receives focus by being tabbed to in
a containing application, successively pressing the TAB key will cause the focus
to be cycled through all of the composite control's contained controls, then out
of the composite control and on to the next item in the tab order of the container."
Comment 2•21 years ago
|
||
There's still something strange I have to find out, about how the control gets
the focus the first time you click in it. But when you get into it with tab,
you can then tab around all mozilla's buttons, text fields, etc.
Updated•21 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
| Reporter | ||
Comment 3•21 years ago
|
||
It's even stranger. I've compiled the test app
mozilla-1.6/embedding/browser/activex/tests/cbrowse/
and tabs worked ok there. But when I removed from the dialog everything but the
control itself, tabs didn't work again.
To re-enable tabs in the browser there should be at least one control on the
parent dialog with tab stops enabled (!)
Comment 4•21 years ago
|
||
Can the control simply inherit from the CComCompositeControl instead of
CComControl? Unfortunately, replacing CComControl by CComCompositeControl in
embedding/browser/activex/src/control/MozillaBrowser.h is not enough. Here is
the command line output:
StdAfx.cpp
Building deps for
/cygdrive/c/mozilla-build/source/seamonkey-1.7rc1/mozilla/embedding/browser/active
x/src/control/StdAfx.cpp
StdAfx.cpp
statreg.cpp is obsolete. Please remove it from your project.
atlimpl.cpp is obsolete. Please remove it from your project.
atlctl.cpp is obsolete. Please remove it from your project.
atlwin.cpp is obsolete. Please remove it from your project.
C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\atlmfc\include\atlctl.h(1848) : error C2039:
'IDD' : is not a member of 'CMozillaBrowser'
c:\mozilla-build\source\seamonkey-1.7rc1\mozilla\embedding\browser\activex\src\control\Mozil
laBrowser.h(77) : see declaration of 'CMozillaBrowser'
C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\atlmfc\include\atlctl.h(1846) : while
compiling class-template member function 'LRESULT
ATL::CComCompositeControl<T>::OnInitDialog(UINT,W
PARAM,LPARAM,BOOL &)'
with
[
T=CMozillaBrowser
]
c:\mozilla-build\source\seamonkey-1.7rc1\mozilla\embedding\browser\activex\src\control\Mozil
laBrowser.h(81) : see reference to class template instantiation
'ATL::CComCompositeControl<T>' being
compiled
with
[
T=CMozillaBrowser
]
In the directory
/cygdrive/c/mozilla-build/source/seamonkey-1.7rc1/mozilla/obj-i586-pc-msvc/embeddi
ng/browser/activex/src/control
The following command failed to execute properly:
/cygdrive/c/mozilla-build/source/seamonkey-1.7rc1/mozilla/build/cygwin-wrapper
cl -FoStdAfx.obj -c -
DOSTYPE="WINNT5.1" -DOSARCH="WINNT" -DMOZ_ACTIVEX_CONTROL_SUPPORT -I.
-I../../../../../dist/include/
xpcom -I../../../../../dist/include/string -I../../../../../dist/include/js
-I../../../../../dist/in
clude/widget -I../../../../../dist/include/gfx
-I../../../../../dist/include/view -I../../../../../d
ist/include/necko -I../../../../../dist/include/pref
-I../../../../../dist/include/webbrwsr -I../../
../../../dist/include/docshell -I../../../../../dist/include/dom
-I../../../../../dist/include/urilo
ader -I../../../../../dist/include/layout -I../../../../../dist/include/content
-I../../../../../dis
t/include/editor -I../../../../../dist/include/webshell
-I../../../../../dist/include/profile -I../.
./../../../dist/include/embed_base -I../../../../../dist/include/necko
-I../../../../../dist/include
/windowwatcher -I../../../../../dist/include/webbrowserpersist
-I../../../../../dist/include/helperA
ppDlg -I../../../../../dist/include/exthandler
-I../../../../../dist/include/mimetype -I../../../../
../dist/include/composer -I../../../../../dist/include/commandhandler
-I../../../../../dist/include/
ax_common -I../../../../../dist/include -I../../../../../dist/include
-I../../../../../dist/include/
nspr -TP -nologo -W3 -nologo -Gy -Fdmozctl.pdb -DNDEBUG -DTRIMMED -Zi -O1
-UDEBUG -DNDEBUG /D WIN32
/GX /U ClientWallet -MD -DX_DISPLAY_MISSING=1 -DMOZILLA_VERSION="1.7b"
-DHAVE_SNPRINTF=1 -D_WINDOWS=
1 -D_WIN32=1 -DWIN32=1 -DXP_WIN=1 -DXP_WIN32=1 -DHW_THREADS=1 -DWINVER=0x400
-DSTDC_HEADERS=1 -DWIN3
2_LEAN_AND_MEAN=1 -DNO_X11=1 -D_X86_=1 -DD_INO=d_ino
-DMOZ_DEFAULT_TOOLKIT="windows" -DMOZ_APP_NAME=
"mozilla" -DOJI=1 -DIBMBIDI=1 -DMOZ_VIEW_SOURCE=1 -DACCESSIBILITY=1
-DMOZ_XPINSTALL=1 -DMOZ_JSLOADER
=1 -DMOZ_MATHML=1 -DMOZ_LOGGING=1 -DMOZ_USER_DIR="Mozilla" -DMOZ_XUL=1
-DMOZ_PROFILESHARING=1 -DMOZ_
PROFILELOCKING=1 -DMOZ_DLL_SUFFIX=".dll" -DJS_THREADSAFE=1 -DNS_PRINT_PREVIEW=1
-DNS_PRINTING=1 -DMO
ZILLA_LOCALE_VERSION="1.7b" -DMOZILLA_REGION_VERSION="1.7b"
-DMOZILLA_SKIN_VERSION="1.5" -D_MOZILLA_
CONFIG_H_ -DMOZILLA_CLIENT
/cygdrive/c/mozilla-build/source/seamonkey-1.7rc1/mozilla/embedding/brows
er/activex/src/control/StdAfx.cpp
make[1]: *** [StdAfx.obj] Error 1
make: *** [all] Error 2
Updated•21 years ago
|
Attachment #145093 -
Flags: review?(adamlock)
Comment 5•21 years ago
|
||
(In reply to comment #4)
> Can the control simply inherit from the CComCompositeControl instead of
> CComControl?
I don't remember exactly why I just took PreTranslateAccelarator out of
CComCompositeControl, but it may have something to do with the fact that a
CComCompositeControl is supposed to have other ActiveX controls in it, whereas
in our case we don't have this: we have widgets inside (not even Windows window
handles).
Comment on attachment 145093 [details] [diff] [review]
PreTranslateAccelarator taken from CComCompositeControl in AtlCtl.h
CComCompositeControl houses other windows using a dialog resource. It would
probably cause a lot more problems than it would solve.
The patch looks okay though
Attachment #145093 -
Flags: review?(adamlock) → review+
Updated•21 years ago
|
Attachment #145093 -
Flags: superreview?(jst)
Updated•21 years ago
|
Attachment #145093 -
Flags: superreview?(jst) → superreview+
Comment 7•21 years ago
|
||
I'm going to believe that I'm seeing this bug in a real world scenario. Before
20040623XX, and now in
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8a3) Gecko/20040716
I can't tab between drop down lists and text fields in a < form > area. The
easiest place to notice this is in the bill entry form at the
http://www.wheresgeorge.com/
main page. If this is a different bug (wouldn't that be a switch!), let me know,
and I'll open a new bug for it. I'm not certain the difficulty is specifically
with Active X in my case, as I am dealing with a simple form.
Comment 8•21 years ago
|
||
(In reply to comment #7)
> I'm going to believe that I'm seeing this bug in a real world scenario. Before
> 20040623XX, and now in
I should have said that tabbing to drop down lists, as well as check boxes,
worked prior to 20040623XX, but stopped working at that time, and still don't
work in the current nightly build for Mac.
Random testing in http://www.livejournal.com/poll reveal that tabbing across
radio buttons is also broken.
Comment 9•21 years ago
|
||
> Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8a3) Gecko/20040716
>
Can you use an ActiveX with a Mac OS ?
Comment 10•21 years ago
|
||
(In reply to comment #9)
> > Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8a3) Gecko/20040716
> >
>
> Can you use an ActiveX with a Mac OS ?
I don't think so. However, if I'm seeing the tab key fail to function in regular
forms, either we have two bugs going on here, or the problem isn't really in
ActiveX.
I can't tell if what I'm seeing is a separate bug, as I don't have a Windows
system with which to compare.
Comment 11•21 years ago
|
||
(In reply to comment #10)
> (In reply to comment #9)
> Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8a3) Gecko/20040716
> I don't think so. However, if I'm seeing the tab key fail to function in regular
> forms, either we have two bugs going on here, or the problem isn't really in
> ActiveX.
>
> I can't tell if what I'm seeing is a separate bug, as I don't have a Windows
> system with which to compare.
I think you see something else: this is really only about the ActiveX
Comment 12•21 years ago
|
||
(In reply to comment #11)
> (In reply to comment #10)
> > (In reply to comment #9)
> > Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8a3) Gecko/20040716
> > I don't think so. However, if I'm seeing the tab key fail to function in regular
> > forms, either we have two bugs going on here, or the problem isn't really in
> > ActiveX.
> >
> > I can't tell if what I'm seeing is a separate bug, as I don't have a Windows
> > system with which to compare.
>
> I think you see something else: this is really only about the ActiveX
I've opened 252226, then. Thanks for helping!
Summary: tab navigation broken in forms in Mozilla ActiveX control → [ActiveX] tab navigation broken in forms in control
Updated•17 years ago
|
Assignee: adamlock → nobody
QA Contact: dunn5557 → activex
Comment 13•16 years ago
|
||
This is an issue for me. I've am trying to embed gecko in an application written in Borland C++ Builder 5. I obtained the control from the xulrunner 1.9.0.7 release. Since I did not want to compile my own version of gecko, I did the equivalent of the PreTranslateAccelarator patch but in my own application. Below is the relevant snippet of code from my application's message handling loop in case anyone else finds it useful:
if ( Msg.message >= WM_KEYFIRST && Msg.message <= WM_KEYLAST
&& (
Msg.wParam == VK_TAB ||
Msg.wParam == VK_LEFT ||
Msg.wParam == VK_RIGHT ||
Msg.wParam == VK_UP ||
Msg.wParam == VK_DOWN ||
Msg.wParam == VK_HOME ||
Msg.wParam == VK_END ||
Msg.wParam == VK_PRIOR ||
Msg.wParam == VK_NEXT
)
)
{
SendMessage( GetFocus(), Msg.message, Msg.wParam, Msg.lParam );
Handled = true;
Msg.message = NULL;
}
Comment 14•14 years ago
|
||
The ActiveX embedding API was removed in bug 662023 and friends, making this INVALID.
[Filter bugspam on activexinvalid]
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → INVALID
| Assignee | ||
Updated•13 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•