From bd35822cb0cd80b4e61c9da38aaa026c2826b5bf Mon Sep 17 00:00:00 2001 From: "brade%comcast.net" Date: Fri, 19 Mar 2004 14:17:51 +0000 Subject: [PATCH] =?UTF-8?q?fix=20for=20bug=20237103;=20implement=20QueryCo?= =?UTF-8?q?mmandIndeterm;=20patch=20by=20Alexandre=20Tr=C3=83=C2=A9mon;=20?= =?UTF-8?q?r=3Dbrade,=20sr=3Djst;=20a=3Dchofmann?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://10.0.0.236/trunk@154106 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/document/src/nsHTMLDocument.cpp | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index 8aae201c20f..2dfada56d18 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -4008,7 +4008,35 @@ nsHTMLDocument::QueryCommandIndeterm(const nsAString & commandID, if (!mEditingIsOn) return NS_ERROR_FAILURE; - return NS_ERROR_NOT_IMPLEMENTED; + // get command manager and dispatch command to our window if it's acceptable + nsCOMPtr cmdMgr; + GetMidasCommandManager(getter_AddRefs(cmdMgr)); + if (!cmdMgr) + return NS_ERROR_FAILURE; + + nsCOMPtr window = do_QueryInterface(mScriptGlobalObject); + if (!window) + return NS_ERROR_FAILURE; + + nsCAutoString cmdToDispatch, paramToCheck; + PRBool dummy; + if (!ConvertToMidasInternalCommand(commandID, commandID, + cmdToDispatch, paramToCheck, dummy, dummy)) + return NS_ERROR_NOT_IMPLEMENTED; + + nsresult rv; + nsCOMPtr cmdParams = do_CreateInstance( + NS_COMMAND_PARAMS_CONTRACTID, &rv); + NS_ENSURE_SUCCESS(rv, rv); + + rv = cmdMgr->GetCommandState(cmdToDispatch.get(), window, cmdParams); + if (NS_FAILED(rv)) + return rv; + + // if command does not have a state_mixed value, this call fails, so we fail too, + // which is what is expected + rv = cmdParams->GetBooleanValue("state_mixed", _retval); + return rv; } /* boolean queryCommandState(in DOMString commandID); */