diff -up ./esc/src/app/daemon/manifest.mn.fix9 ./esc/src/app/daemon/manifest.mn --- ./esc/src/app/daemon/manifest.mn.fix9 2011-03-24 12:35:31.481712082 -0700 +++ ./esc/src/app/daemon/manifest.mn 2011-03-24 12:35:39.758712086 -0700 @@ -37,7 +37,7 @@ DEFINES += $(shell pkg-config --cflags x CPPFLAGS += $(DEFINES) -g LDFLAGS += -lstdc++ -L$(CORE_DIST)/$(OBJDIR)/lib -L$(XULRUNNER_LIBS_LDFLAGS) -lnss3 -lnspr4 -lssl3 -lckyapplet $(shell pkg-config --libs xft) -LDFLAGS += -lckymanager -lhttpchunked -lm -lnss3 -lplc4 -lplds4 +LDFLAGS += -lckymanager -lhttpchunked -lm -lnss3 -lplc4 -lplds4 -lX11 # MODULE public and private header directories are implicitly REQUIRED. CPPSRCS = \ diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix9 ./esc/src/app/xpcom/rhCoolKey.cpp --- ./esc/src/app/xpcom/rhCoolKey.cpp.fix9 2011-03-24 12:37:10.273712093 -0700 +++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-03-24 12:37:18.813712092 -0700 @@ -70,6 +70,7 @@ #define PSM_COMPONENT_CONTRACTID "@mozilla.org/psm;1" #define NS_CERTOVERRIDE_CONTRACTID "@mozilla.org/security/certoverride;1" +#define RH_COOLKEY_CONTRACTID "@redhat.com/rhCoolKey;1" static const nsIID kIModuleIID = NS_IMODULE_IID; static const nsIID kIFactoryIID = NS_IFACTORY_IID; @@ -1711,297 +1712,36 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyVersi NS_GENERIC_FACTORY_CONSTRUCTOR(rhCoolKey) -NS_IMPL_ISUPPORTS1(rhCoolKey,rhICoolKey) - -// Implement full module and factory dance so we can see what is going on - -class rhCoolKeyFactory: public nsIFactory{ -private: -nsrefcnt mRefCnt; -public: -rhCoolKeyFactory(); -virtual ~rhCoolKeyFactory(); - -NS_IMETHOD QueryInterface(const nsIID &aIID, void **aResult); -NS_IMETHOD_(nsrefcnt) AddRef(void); -NS_IMETHOD_(nsrefcnt) Release(void); - -NS_IMETHOD CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *result); -NS_IMETHOD LockFactory(PRBool lock); - +// Build a table of ClassIDs (CIDs) which are implemented by this module. CIDs +// // should be completely unique UUIDs. +// // each entry has the form { CID, service, factoryproc, constructorproc } +// // where factoryproc is usually NULL. +static const mozilla::Module::CIDEntry kCoolKeyCIDs[] = { + { &kCoolKeyCID, false, NULL, rhCoolKeyConstructor }, + { NULL } + }; + +// Build a table which maps contract IDs to CIDs. +// // A contract is a string which identifies a particular set of functionality. In some +// // cases an extension component may override the contract ID of a builtin gecko component +// // to modify or extend functionality. +// +static const mozilla::Module::ContractIDEntry kCoolKeyContracts[] = { + { RH_COOLKEY_CONTRACTID, &kCoolKeyCID }, + { NULL } }; -rhCoolKeyFactory::rhCoolKeyFactory() -{ -mRefCnt = 0; -} -rhCoolKeyFactory::~rhCoolKeyFactory() -{ -} - -NS_IMETHODIMP rhCoolKeyFactory::QueryInterface(const nsIID &aIID, -void **aResult) -{ -if (aResult == NULL) { -return NS_ERROR_NULL_POINTER; -} -*aResult = NULL; -if (aIID.Equals(kISupportsIID)) { -*aResult = (void *) this; -} -else -if (aIID.Equals(kIFactoryIID)) { -*aResult = (void *) this; -} - -if (*aResult == NULL) { -return NS_ERROR_NO_INTERFACE; -} - -AddRef(); -return NS_OK; -} - -NS_IMETHODIMP_(nsrefcnt) rhCoolKeyFactory::AddRef() -{ -return ++mRefCnt; -} - - -NS_IMETHODIMP_(nsrefcnt) rhCoolKeyFactory::Release() -{ -if (--mRefCnt == 0) { -delete this; -return 0; -} -return mRefCnt; -} - - -NS_IMETHODIMP -rhCoolKeyFactory::CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *result) -{ -if (!result) -return NS_ERROR_INVALID_ARG; - -rhCoolKey* sample = new rhCoolKey(); -if (!sample) -return NS_ERROR_OUT_OF_MEMORY; - -nsresult rv = sample->QueryInterface(iid, result); - -if (NS_FAILED(rv)) { -*result = nsnull; -delete sample; -} - -return rv; -} - - -NS_IMETHODIMP -rhCoolKeyFactory::LockFactory(PRBool lock) -{ -return NS_ERROR_NOT_IMPLEMENTED; -} - -// Module implementation -class rhCoolKeyModule : public nsIModule -{ -public: -rhCoolKeyModule(); -virtual ~rhCoolKeyModule(); - -// nsISupports methods: -NS_IMETHOD QueryInterface(const nsIID & uuid, void * *result); -NS_IMETHOD_(nsrefcnt) AddRef(void); -NS_IMETHOD_(nsrefcnt) Release(void); - -// nsIModule methods: -NS_IMETHOD GetClassObject(nsIComponentManager *aCompMgr, const nsCID & aClass, const nsIID & aIID, void * *aResult); -NS_IMETHOD RegisterSelf(nsIComponentManager *aCompMgr, nsIFile *aLocation, const char *aLoaderStr, const char *aType); -NS_IMETHOD UnregisterSelf(nsIComponentManager *aCompMgr, nsIFile *aLocation, const char *aLoaderStr); -NS_IMETHOD CanUnload(nsIComponentManager *aCompMgr, PRBool *_retval); - -private: -nsrefcnt mRefCnt; +static const mozilla::Module kCoolKeyModule = { + mozilla::Module::kVersion, + kCoolKeyCIDs, + kCoolKeyContracts, + NULL }; +// The following line implements the one-and-only "NSModule" symbol exported from this +// // shared library. + NSMODULE_DEFN(rhCoolKeyModule) = &kCoolKeyModule; +// -//---------------------------------------------------------------------- - -rhCoolKeyModule::rhCoolKeyModule() -{ -mRefCnt = 0; -} - -rhCoolKeyModule::~rhCoolKeyModule() -{ -} - -// nsISupports implemention -NS_IMETHODIMP_(nsrefcnt) -rhCoolKeyModule::AddRef(void) -{ -char tBuff[56]; -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::AddRef \n",GetTStamp(tBuff,56))); -++mRefCnt; -return mRefCnt; -} - - -NS_IMETHODIMP_(nsrefcnt) -rhCoolKeyModule::Release(void) -{ -char tBuff[56]; -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::Release : mRefCnt %d \n",GetTStamp(tBuff,56),mRefCnt - 1)); ---mRefCnt; -if (mRefCnt == 0) { -mRefCnt = 1; /* stabilize */ -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::Release deleting Module \n",GetTStamp(tBuff,56))); -delete this; -return 0; -} -return mRefCnt; -} - - -NS_IMETHODIMP -rhCoolKeyModule::QueryInterface(REFNSIID aIID, void** aInstancePtr) -{ -char tBuff[56]; -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::QueryInterface \n",GetTStamp(tBuff,56))); -if ( !aInstancePtr ) -return NS_ERROR_NULL_POINTER; - -nsISupports* foundInterface; - -if ( aIID.Equals(kIModuleIID) ) -foundInterface = (nsIModule*) this; - -else if ( aIID.Equals(kISupportsIID) ) -foundInterface = (nsISupports*) this; - -else -foundInterface = 0; - -if (foundInterface) { -foundInterface->AddRef(); -*aInstancePtr = foundInterface; -return NS_OK; -} - -*aInstancePtr = foundInterface; -return NS_NOINTERFACE; -} - - -// Create a factory object for creating instances of aClass. -NS_IMETHODIMP -rhCoolKeyModule::GetClassObject(nsIComponentManager *aCompMgr, -const nsCID& aClass, -const nsIID& aIID, -void** result) -{ -char tBuff[56]; -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::GetClassObject \n",GetTStamp(tBuff,56))); -if (!kCoolKeyCID.Equals(aClass)) -return NS_ERROR_FACTORY_NOT_REGISTERED; - -if (!result) -return NS_ERROR_INVALID_ARG; - -rhCoolKeyFactory* factory = new rhCoolKeyFactory(); -if (!factory) -return NS_ERROR_OUT_OF_MEMORY; - -nsresult rv = factory->QueryInterface(aIID, result); - -if (NS_FAILED(rv)) { -*result = nsnull; -delete factory; -} - -return rv; -} - - -NS_IMETHODIMP -rhCoolKeyModule::RegisterSelf(nsIComponentManager *aCompMgr, -nsIFile* aPath, -const char* registryLocation, -const char* componentType) -{ - -char tBuff[54]; -nsIComponentRegistrar* compReg = nsnull; - -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::RegisterSelf \n",GetTStamp(tBuff,56))); -nsresult rv = aCompMgr->QueryInterface(kIComponentRegistrarIID, (void**)&compReg); -if (NS_FAILED(rv)) -return rv; - -rv = compReg->RegisterFactoryLocation(kCoolKeyCID, -"CoolKey", -"@redhat.com/rhCoolKey", -aPath, -registryLocation, -componentType); - -compReg->Release(); - -return rv; -} - -NS_IMETHODIMP -rhCoolKeyModule::UnregisterSelf(nsIComponentManager* aCompMgr, -nsIFile* aPath, -const char* registryLocation) -{ -char tBuff[56]; -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::UnregisterSelf \n",GetTStamp(tBuff,56))); -nsIComponentRegistrar* compReg = nsnull; - -nsresult rv = aCompMgr->QueryInterface(kIComponentRegistrarIID, (void**)&compReg); -if (NS_FAILED(rv)) -return rv; - -rv = compReg->UnregisterFactoryLocation(kCoolKeyCID, aPath); - -compReg->Release(); - -return rv; -} - -NS_IMETHODIMP -rhCoolKeyModule::CanUnload(nsIComponentManager *aCompMgr, PRBool *okToUnload) -{ -*okToUnload = PR_FALSE; // we do not know how to unload. -return NS_OK; -} - - -//---------------------------------------------------------------------- - -extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr, -nsIFile* location, -nsIModule** return_cobj) -{ -nsresult rv = NS_OK; - -char tBuff[56]; -PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::NSGetModule \n",GetTStamp(tBuff,56))); - -// Create and initialize the module instance -rhCoolKeyModule *m = new rhCoolKeyModule(); -if (!m) { -return NS_ERROR_OUT_OF_MEMORY; -} +NS_IMPL_ISUPPORTS1(rhCoolKey,rhICoolKey) -// Increase refcnt and store away nsIModule interface to m in return_cobj -rv = m->QueryInterface(kIModuleIID, (void**)return_cobj); -if (NS_FAILED(rv)) { -delete m; -} -return rv; -} diff -up ./esc/src/app/xpcom/rhCoolKey.h.fix9 ./esc/src/app/xpcom/rhCoolKey.h --- ./esc/src/app/xpcom/rhCoolKey.h.fix9 2011-03-24 12:40:07.291712102 -0700 +++ ./esc/src/app/xpcom/rhCoolKey.h 2011-03-24 12:40:15.644712108 -0700 @@ -19,7 +19,9 @@ #define RH_COOLKEY_H #include "rhICoolKey.h" -#include "nsIGenericFactory.h" +/*#include "nsIGenericFactory.h" */ +#include "mozilla/ModuleUtils.h" +#include "nsIClassInfoImpl.h" #include "nsEmbedString.h" #include #include "nspr.h" diff -up ./esc/src/app/xpcom/rhICoolKey.idl.fix9 ./esc/src/app/xpcom/rhICoolKey.idl --- ./esc/src/app/xpcom/rhICoolKey.idl.fix9 2011-03-24 12:42:27.595712113 -0700 +++ ./esc/src/app/xpcom/rhICoolKey.idl 2011-03-24 12:42:39.069712124 -0700 @@ -17,12 +17,11 @@ #include "nsISupports.idl" #include "rhIKeyNotify.idl" -#include "nsIObserver.idl" +//#include "nsIObserver.idl" -interface nsIDOMHTMLDocument; [scriptable,uuid(ea54eee4-9548-4b63-b94d-c519ffc91d09)] -interface rhICoolKey: nsISupports +interface rhICoolKey:nsISupports { void rhNotifyKeyStateChange(in unsigned long aKeyType, in string aKeyID, in unsigned long aKeyState, in unsigned long aData, in string strData); diff -up ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix9 ./esc/src/app/xpcom/tray/rhLinuxTray.cpp --- ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix9 2011-03-24 12:43:20.262712118 -0700 +++ ./esc/src/app/xpcom/tray/rhLinuxTray.cpp 2011-03-24 12:43:34.767712121 -0700 @@ -18,14 +18,17 @@ #define FORCE_PR_LOG 1 #include "rhTray.h" -#include "nsIGenericFactory.h" +#include "mozilla/ModuleUtils.h" #include #include "notifytray.h" #include "nsIStringBundle.h" #include #include -NS_IMPL_ISUPPORTS1(rhTray, rhITray) +#define RH_COOLKEY_TRAY_CONTRACTID "@redhat.com/rhTray;1" + +static const nsCID kCoolKeyTrayCID = RH_TRAY_CID; + GtkWidget* rhTray::mWnd = NULL; GtkWidget* rhTray::mIconMenu = NULL; @@ -861,15 +864,36 @@ gboolean rhTrayWindowListener::WndDelete NS_GENERIC_FACTORY_CONSTRUCTOR(rhTray) -//rhTray Module Implementation +// Build a table of ClassIDs (CIDs) which are implemented by this module. CIDs +// // // should be completely unique UUIDs. +// // // each entry has the form { CID, service, factoryproc, constructorproc } +// // // where factoryproc is usually NULL. + +static const mozilla::Module::CIDEntry kCoolKeyTrayCIDs[] = { + { &kCoolKeyTrayCID, false, NULL, rhTrayConstructor }, + { NULL } +}; -static const nsModuleComponentInfo components[] = -{ - { "rhTray", - RH_TRAY_CID, - "@redhat.com/rhTray", - rhTrayConstructor - } +// Build a table which maps contract IDs to CIDs. +// A contract is a string which identifies a particular set of functionality. In some +// cases an extension component may override the contract ID of a builtin gecko component +// to modify or extend functionality. + +static const mozilla::Module::ContractIDEntry kCoolKeyTrayContracts[] = { + { RH_COOLKEY_TRAY_CONTRACTID, &kCoolKeyTrayCID }, + { NULL } }; -NS_IMPL_NSGETMODULE(rhTrayModule, components) +static const mozilla::Module kCoolKeyTrayModule = { + mozilla::Module::kVersion, + kCoolKeyTrayCIDs, + kCoolKeyTrayContracts, + NULL +}; + +// The following line implements the one-and-only "NSModule" symbol exported from this +// shared library. +NSMODULE_DEFN(rhCoolKeyTrayModule) = &kCoolKeyTrayModule; + +NS_IMPL_ISUPPORTS1(rhTray,rhITray) + diff -up ./esc/src/app/xpcom/tray/rhTray.h.fix9 ./esc/src/app/xpcom/tray/rhTray.h --- ./esc/src/app/xpcom/tray/rhTray.h.fix9 2011-03-24 12:44:10.035712119 -0700 +++ ./esc/src/app/xpcom/tray/rhTray.h 2011-03-24 12:44:19.059712129 -0700 @@ -19,7 +19,8 @@ #define RH_TRAY_H #include "rhITray.h" -#include "nsIGenericFactory.h" +//#include "nsIGenericFactory.h" +//#include mozilla/ModuleUtils.h #include "nsEmbedString.h" #include #include "nsCOMPtr.h" diff -up ./esc/src/app/xul/esc/application.ini.fix9 ./esc/src/app/xul/esc/application.ini --- ./esc/src/app/xul/esc/application.ini.fix9 2011-03-24 12:45:51.087712126 -0700 +++ ./esc/src/app/xul/esc/application.ini 2011-03-24 12:46:01.780712129 -0700 @@ -25,11 +25,11 @@ Vendor=RedHat Name=ESC ; ; This field specifies your application's version. This field is optional. -Version=1.1.0-12 +Version=1.1.0-13 ; ; This field specifies your application's build ID (timestamp). This field is ; required. -BuildID=0000001012 +BuildID=0000001013 ; ; This ID is just an example. Every XUL app ought to have it's own unique ID. ; You can use the microsoft "guidgen" or "uuidgen" tools, or go on @@ -41,12 +41,12 @@ ID={6380471b-1924-4b48-b652-49f42951af86 ; This field is required. It specifies the minimum Gecko version that this ; application requires. Specifying 1.8 matches all releases with a version ; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2). -MinVersion=1.9 +MinVersion=1.99 ; ; This field is optional. It specifies the maximum Gecko version that this ; application requires. It should be specified if your application uses ; unfrozen interfaces. Specifying 1.8 matches all releases with a version ; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2). -MaxVersion=1.99 +MaxVersion=2.99 [Shell] diff -up ./esc/src/app/xul/esc/chrome/chrome.manifest.fix9 ./esc/src/app/xul/esc/chrome/chrome.manifest --- ./esc/src/app/xul/esc/chrome/chrome.manifest.fix9 2011-03-24 12:52:14.601712157 -0700 +++ ./esc/src/app/xul/esc/chrome/chrome.manifest 2011-03-24 12:52:23.723712155 -0700 @@ -1,19 +0,0 @@ -# BEGIN COPYRIGHT BLOCK -# This Program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; version 2 of the License. -# -# This Program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple -# Place, Suite 330, Boston, MA 02111-1307 USA. -# -# Copyright (C) 2005 Red Hat, Inc. -# All rights reserved. -# END COPYRIGHT BLOCK - -content esc content/esc/ -locale esc en-US locale/en-US/ diff -up ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix9 ./esc/src/app/xul/esc/chrome/content/esc/ESC.js --- ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix9 2011-03-24 12:52:49.995712156 -0700 +++ ./esc/src/app/xul/esc/chrome/content/esc/ESC.js 2011-03-24 12:52:59.829712160 -0700 @@ -132,7 +132,7 @@ jsNotify.prototype = { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - netkey = Components.classes["@redhat.com/rhCoolKey"].getService(); + netkey = Components.classes["@redhat.com/rhCoolKey;1"].getService(); netkey = netkey.QueryInterface(Components.interfaces.rhICoolKey); gNotify = new jsNotify; netkey.rhCoolKeySetNotifyCallback(gNotify); diff -up ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix9 ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js --- ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix9 2011-03-24 12:53:21.344712157 -0700 +++ ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js 2011-03-24 12:53:28.456712159 -0700 @@ -63,7 +63,7 @@ jsWindNotify.prototype = { // GECKO ONLY initialization try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - gTray = Components.classes["@redhat.com/rhTray"].getService(); + gTray = Components.classes["@redhat.com/rhTray;1"].getService(); gTray = gTray.QueryInterface(Components.interfaces.rhITray); diff -up ./esc/src/app/xul/esc/chrome.manifest.fix9 ./esc/src/app/xul/esc/chrome.manifest --- ./esc/src/app/xul/esc/chrome.manifest.fix9 2011-03-24 12:49:14.983712140 -0700 +++ ./esc/src/app/xul/esc/chrome.manifest 2011-03-24 12:49:47.350712147 -0700 @@ -0,0 +1,33 @@ +# BEGIN COPYRIGHT BLOCK +# This Program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; version 2 of the License. +# +# This Program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA. +# +# Copyright (C) 2005 Red Hat, Inc. +# All rights reserved. +# END COPYRIGHT BLOCK + +content esc chrome/content/esc/ +locale esc en-US chrome/locale/en-US/ + +interfaces components/rhICoolKey.xpt +interfaces components/rhIKeyNotify.xpt +interfaces components/rhITray.xpt +interfaces components/rhITrayWindNotify.xpt + + +binary-component components/librhCoolKey.so +binary-component components/librhTray.so + + +component {36c65861-52a8-4ce9-aa3b-235b88216ed4} components/escCLH.js +contract @redhat.com/esc-clh;1 {36c65861-52a8-4ce9-aa3b-235b88216ed4} +category command-line-handler escCLH @redhat.com/esc-clh;1 diff -up ./esc/src/app/xul/esc/components/escCLH.js.fix9 ./esc/src/app/xul/esc/components/escCLH.js --- ./esc/src/app/xul/esc/components/escCLH.js.fix9 2011-03-24 12:54:15.072712160 -0700 +++ ./esc/src/app/xul/esc/components/escCLH.js 2011-03-24 12:54:53.868712165 -0700 @@ -2,6 +2,8 @@ * -myapp commandline handler; starts up My App. */ + Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); + const nsIAppShellService = Components.interfaces.nsIAppShellService; const nsISupports = Components.interfaces.nsISupports; const nsICategoryManager = Components.interfaces.nsICategoryManager; @@ -20,20 +22,26 @@ consoleService.logStringMessage("esc: " + message + "\n"); } +Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); + /* * Classes */ + +function escCLH() {} - const escCLH = { + escCLH.prototype = { + + + contractID: "@redhat.com/esc-clh;1", + classID: Components.ID("{36c65861-52a8-4ce9-aa3b-235b88216ed4}"), + // const clh_category = "c-esc"; + + /* nsISupports */ - QueryInterface : function clh_QI(iid) { - if (iid.equals(nsICommandLineHandler) || - iid.equals(nsIFactory) || - iid.equals(nsISupports)) - return this; - throw Components.results.NS_ERROR_NO_INTERFACE; - }, + QueryInterface : XPCOMUtils.generateQI([nsICommandLineHandler]), + /* nsICommandLineHandler */ @@ -91,76 +99,8 @@ helpInfo : " -myapp Open the My App.\n", - /* nsIFactory */ - - createInstance : function clh_CI(outer, iid) { - if (outer != null) - throw Components.results.NS_ERROR_NO_AGGREGATION; - - return this.QueryInterface(iid); - }, - - lockFactory : function clh_lock(lock) { - /* no-op */ - } - }; - - const clh_contractID = "@redhat.com/esc-clh;1"; - const clh_CID = Components.ID("{36c65861-52a8-4ce9-aa3b-235b88216ed4}"); - const clh_category = "c-esc"; - - const escCLHModule = { - /* nsISupports */ - - QueryInterface : function mod_QI(iid) { - if (iid.equals(nsIModule) || - iid.equals(nsISupports)) - return this; - - throw Components.results.NS_ERROR_NO_INTERFACE; - }, - - /* nsIModule */ - getClassObject : function mod_gch(compMgr, cid, iid) { - if (cid.equals(clh_CID)) - return escCLH.QueryInterface(iid); - - throw Components.results.NS_ERROR_NOT_REGISTERED; - }, - - registerSelf : function mod_regself(compMgr, fileSpec, location, type) { - compMgr.QueryInterface(nsIComponentRegistrar); - - compMgr.registerFactoryLocation(clh_CID, - "escCLH", - clh_contractID, - fileSpec, - location, - type); - - var catMan = Components.classes["@mozilla.org/categorymanager;1"] - .getService(nsICategoryManager); - catMan.addCategoryEntry("command-line-handler", - clh_category, - clh_contractID, true, true); - }, - - unregisterSelf : function mod_unreg(compMgr, location, type) { - compMgr.QueryInterface(nsIComponentRegistrar); - - compMgr.unregisterFactoryLocation(clh_CID, location); - - var catMan = Components.classes["@mozilla.org/categorymanager;1"] - .getService(nsICategoryManager); - catMan.deleteCategoryEntry("command-line-handler", clh_category); - }, - - canUnload : function (compMgr) { - return true; - } }; /* Module initialisation */ - function NSGetModule(comMgr, fileSpec) { - return escCLHModule; - } + +var NSGetFactory = XPCOMUtils.generateNSGetFactory([escCLH]); diff -up ./esc/src/lib/notifytray/notifyareaicon.c.fix9 ./esc/src/lib/notifytray/notifyareaicon.c --- ./esc/src/lib/notifytray/notifyareaicon.c.fix9 2011-03-24 12:57:00.410712173 -0700 +++ ./esc/src/lib/notifytray/notifyareaicon.c 2011-03-24 12:57:21.501712174 -0700 @@ -90,19 +90,7 @@ notify_area_icon_class_init (NotifyAreaI static void notify_area_icon_unrealize (GtkWidget *widget) { - NotifyAreaIcon *icon = (NotifyAreaIcon *) widget; - - GdkWindow *root_window; - g_print("notify_area_icon_unrealize \n"); - if (icon->manager_wnd != None) - { - GdkWindow *gdkwin; - gdkwin = gdk_window_lookup (icon->manager_wnd); - - } - - root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); if (GTK_WIDGET_CLASS (plug_parent_class)->unrealize) (* GTK_WIDGET_CLASS (plug_parent_class)->unrealize) (widget); @@ -159,14 +147,6 @@ notify_area_icon_update_manager_wnd(Noti xdisplay = gdk_display; - if (icon->manager_wnd != None) - { - GdkWindow *gdkwin; - - gdkwin = gdk_window_lookup (icon->manager_wnd); - - } - XGrabServer (xdisplay); icon->manager_wnd = XGetSelectionOwner (xdisplay, icon->selection_atom); @@ -235,7 +215,7 @@ notify_area_icon_new(const gchar *name) { NotifyAreaIcon *icon; char buff[256]; - GdkWindow *root; + /* GdkWindow *root; */ Screen *xscreen = DefaultScreenOfDisplay (gdk_display); @@ -275,8 +255,6 @@ notify_area_icon_new(const gchar *name) notify_area_icon_update_manager_wnd(icon); g_print ("attempted to update_manager_wnd: %p",(void *)icon->manager_wnd); - - root = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); icon->tooltips = gtk_tooltips_new (); diff -up ./esc/src/lib/notifytray/notifytray.c.fix9 ./esc/src/lib/notifytray/notifytray.c --- ./esc/src/lib/notifytray/notifytray.c.fix9 2011-03-24 12:57:57.680712175 -0700 +++ ./esc/src/lib/notifytray/notifytray.c 2011-03-24 12:58:07.243712165 -0700 @@ -239,7 +239,7 @@ void notify_icon_send_tooltip_msg(const } g_print("icon %s", icon); - NotifyNotification *not = notify_notification_new(msg_title, message,icon, GTK_WIDGET(notify)); + NotifyNotification *not = notify_notification_new(msg_title, message,icon); /*, GTK_WIDGET(notify));*/ if(not) {