Changes for the qnx platform only. These changes should not affect runtime/building

other platforms.
This commit is contained in:
amardare%qnx.com 2004-02-20 22:48:17 +00:00
Родитель 72e6d3bcf0
Коммит 0ba97869c3
8 изменённых файлов: 137 добавлений и 108 удалений

Просмотреть файл

@ -142,8 +142,14 @@ static int event_processor_callback(int fd, void *data, unsigned mode)
#ifdef MOZ_ENABLE_XREMOTE
/* the connector name that a client can use to remote control this instance of mozilla */
#define BrowserRemoteServerName "MozillaBrowserRemoteServer"
#define MailRemoteServerName "MozillaMailRemoteServer"
#if defined(MOZ_PHOENIX)
#define RemoteServerName "FirebirdRemoteServer"
#elif defined(MOZ_THUNDERBIRD)
#define RemoteServerName "ThunderbirdRemoteServer"
#else
#define RemoteServerName "MozillaRemoteServer"
#endif
#define MOZ_REMOTE_MSG_TYPE 100
@ -174,7 +180,7 @@ static void const * RemoteMsgHandler( PtConnectionServer_t *connection, void *us
static void client_connect( PtConnector_t *cntr, PtConnectionServer_t *csrvr, void *data )
{
PtConnectionMsgHandler_t handlers[] = { { 0, RemoteMsgHandler } };
static PtConnectionMsgHandler_t handlers[] = { { 0, RemoteMsgHandler } };
PtConnectionAddMsgHandlers( csrvr, handlers, sizeof(handlers)/sizeof(handlers[0]) );
}
@ -222,23 +228,8 @@ NS_IMETHODIMP nsAppShell::Create(int *bac, char **bav)
mPtInited = PR_TRUE;
#ifdef MOZ_ENABLE_XREMOTE
char *RemoteServerName = BrowserRemoteServerName;
char *RemoteServerNameExtra = nsnull;
if( argc > 0 && argv && argv[0] ) {
if( PL_strstr( argv[0], "Firebird" ) ) RemoteServerName = BrowserRemoteServerName;
else if( PL_strstr( argv[0], "thunderbird" ) ) RemoteServerName = MailRemoteServerName;
else {
/* full mozilla creates 2 connectors one for the browser side and another one for the mail side */
RemoteServerName = BrowserRemoteServerName;
RemoteServerNameExtra = MailRemoteServerName;
}
}
/* create a connector for the xremote control */
PtConnectorCreate( RemoteServerName, client_connect, NULL );
if( RemoteServerNameExtra ) PtConnectorCreate( RemoteServerNameExtra, client_connect, NULL );
#endif
}

Просмотреть файл

@ -350,7 +350,7 @@ nsClipboard::GetNativeClipboardData(nsITransferable * aTransferable,
We can have a HTML flavour from a previous copy and a TEXT flavour from a more recent copy from another application
( from instance from ped or pterm ). The HTML flavour and TEXT flavour are desynchronized and we have
to use only the most recent one */
unsigned long *dont_use_flavour = ( unsigned long * ) calloc( 1, cnt );
unsigned long *dont_use_flavour = ( unsigned long * ) calloc( cnt, sizeof( unsigned long ) );
if( !dont_use_flavour ) {
PhClipboardPasteFinish( clipPtr );
return NS_ERROR_FAILURE;

Просмотреть файл

@ -0,0 +1,45 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Christopher Blizzard.
* Portions created by Christopher Blizzard are Copyright (C)
* Christopher Blizzard. All Rights Reserved.
*
* Contributor(s):
* Adrian Mardare <amardare@qnx.com>
*/
/* the XRemoteService.cpp insists on getting the "widget helper service" */
#include <stdlib.h>
#include <nsIWidget.h>
#include <nsIXRemoteService.h>
#include <nsCOMPtr.h>
#include "nsPhMozRemoteHelper.h"
nsPhXRemoteWidgetHelper::nsPhXRemoteWidgetHelper()
{
}
nsPhXRemoteWidgetHelper::~nsPhXRemoteWidgetHelper()
{
}
NS_IMPL_ISUPPORTS1(nsPhXRemoteWidgetHelper, nsIXRemoteWidgetHelper)
NS_IMETHODIMP
nsPhXRemoteWidgetHelper::EnableXRemoteCommands(nsIWidget *aWidget)
{
return NS_OK;
}

Просмотреть файл

@ -0,0 +1,43 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Christopher Blizzard.
* Portions created by Christopher Blizzard are Copyright (C)
* Christopher Blizzard. All Rights Reserved.
*
* Contributor(s):
* Adrian Mardare <amaradre@qnx.com>
*/
#ifndef __nsPhMozRemoteHelper_h__
#define __nsPhMozRemoteHelper_h__
#include <nsIXRemoteWidgetHelper.h>
// {84f94aac-1dd2-11b2-a05f-9b338fea662c}
#define NS_PHXREMOTEWIDGETHELPER_CID \
{ 0x84f94aac, 0x1dd2, 0x11b2, \
{ 0xa0, 0x5f, 0x9b, 0x33, 0x8f, 0xea, 0x66, 0x2c } }
class nsPhXRemoteWidgetHelper : public nsIXRemoteWidgetHelper {
public:
nsPhXRemoteWidgetHelper();
virtual ~nsPhXRemoteWidgetHelper();
NS_DECL_ISUPPORTS
NS_IMETHOD EnableXRemoteCommands(nsIWidget *aWidget);
};
#endif /* __nsPhMozRemoteHelper_h__ */

Просмотреть файл

@ -787,35 +787,32 @@ struct nsKeyConverter {
};
static struct nsKeyConverter nsKeycodes[] = {
{ NS_VK_PAGE_UP, Pk_Pg_Up, PR_FALSE },
{ NS_VK_PAGE_DOWN, Pk_Pg_Down, PR_FALSE },
{ NS_VK_UP, Pk_Up, PR_FALSE },
{ NS_VK_DOWN, Pk_Down, PR_FALSE },
{ NS_VK_TAB, Pk_Tab, PR_FALSE },
{ NS_VK_HOME, Pk_Home, PR_FALSE },
{ NS_VK_END, Pk_End, PR_FALSE },
{ NS_VK_LEFT, Pk_Left, PR_FALSE },
{ NS_VK_RIGHT, Pk_Right, PR_FALSE },
{ NS_VK_DELETE, Pk_Delete, PR_FALSE },
{ NS_VK_SPACE, Pk_space, PR_TRUE },
{ NS_VK_CANCEL, Pk_Cancel, PR_FALSE },
{ NS_VK_BACK, Pk_BackSpace, PR_FALSE },
{ NS_VK_TAB, Pk_Tab, PR_FALSE },
{ NS_VK_TAB, Pk_KP_Tab, PR_FALSE },
{ NS_VK_CLEAR, Pk_Clear, PR_FALSE },
{ NS_VK_RETURN, Pk_Return, PR_FALSE },
{ NS_VK_SHIFT, Pk_Shift_L, PR_FALSE },
{ NS_VK_SHIFT, Pk_Shift_R, PR_FALSE },
{ NS_VK_SHIFT, Pk_Shift_L, PR_FALSE },
{ NS_VK_SHIFT, Pk_Shift_R, PR_FALSE },
{ NS_VK_CONTROL, Pk_Control_L, PR_FALSE },
{ NS_VK_CONTROL, Pk_Control_R, PR_FALSE },
{ NS_VK_ALT, Pk_Alt_L, PR_FALSE },
{ NS_VK_ALT, Pk_Alt_R, PR_FALSE },
{ NS_VK_INSERT, Pk_Insert, PR_FALSE },
{ NS_VK_PAUSE, Pk_Pause, PR_FALSE },
{ NS_VK_CAPS_LOCK, Pk_Caps_Lock, PR_FALSE },
{ NS_VK_ESCAPE, Pk_Escape, PR_FALSE },
{ NS_VK_SPACE, Pk_space, PR_TRUE },
{ NS_VK_PAGE_UP, Pk_Pg_Up, PR_FALSE },
{ NS_VK_PAGE_DOWN, Pk_Pg_Down, PR_FALSE },
{ NS_VK_END, Pk_End, PR_FALSE },
{ NS_VK_HOME, Pk_Home, PR_FALSE },
{ NS_VK_LEFT, Pk_Left, PR_FALSE },
{ NS_VK_UP, Pk_Up, PR_FALSE },
{ NS_VK_RIGHT, Pk_Right, PR_FALSE },
{ NS_VK_DOWN, Pk_Down, PR_FALSE },
{ NS_VK_PRINTSCREEN, Pk_Print, PR_FALSE },
{ NS_VK_INSERT, Pk_Insert, PR_FALSE },
{ NS_VK_DELETE, Pk_Delete, PR_FALSE },
{ NS_VK_COMMA, Pk_comma, PR_TRUE },
{ NS_VK_PERIOD, Pk_period, PR_TRUE },
{ NS_VK_SLASH, Pk_slash, PR_TRUE },
@ -892,9 +889,9 @@ inline void nsWidget::InitKeyEvent(PhKeyEvent_t *aPhKeyEvent,
PRBool IsChar;
unsigned long vkey;
if (Pk_KF_Cap_Valid & aPhKeyEvent->key_flags)
vkey = nsConvertKey(aPhKeyEvent->key_cap, &IsChar);
else vkey = nsConvertKey(aPhKeyEvent->key_sym, &IsChar);
if( aPhKeyEvent->key_flags & Pk_KF_Sym_Valid )
vkey = nsConvertKey( aPhKeyEvent->key_sym, &IsChar );
else vkey = nsConvertKey( aPhKeyEvent->key_cap, &IsChar );
anEvent.isShift = ( aPhKeyEvent->key_mods & Pk_KM_Shift ) ? PR_TRUE : PR_FALSE;
anEvent.isControl = ( aPhKeyEvent->key_mods & Pk_KM_Ctrl ) ? PR_TRUE : PR_FALSE;
@ -924,10 +921,10 @@ PRBool nsWidget::DispatchKeyEvent( PhKeyEvent_t *aPhKeyEvent ) {
nsKeyEvent keyEvent;
PRBool result = PR_FALSE;
if ( (aPhKeyEvent->key_flags & Pk_KF_Cap_Valid) == 0) {
if( !(aPhKeyEvent->key_flags & (Pk_KF_Cap_Valid|Pk_KF_Sym_Valid) ) ) {
//printf("nsWidget::DispatchKeyEvent throwing away invalid key: Modifiers Valid=<%d,%d,%d> this=<%p>\n",
//(aPhKeyEvent->key_flags & Pk_KF_Scan_Valid), (aPhKeyEvent->key_flags & Pk_KF_Sym_Valid), (aPhKeyEvent->key_flags & Pk_KF_Cap_Valid), this );
return PR_FALSE; //PR_TRUE;
return PR_FALSE;
}
if ( PtIsFocused(mWidget) != 2) {

Просмотреть файл

@ -40,7 +40,7 @@
#include "nsPhWidgetLog.h"
#include <Pt.h>
#include <PtServer.h>
#include <photon/PtServer.h>
#include "PtRawDrawContainer.h"
#include "nsCRT.h" /* JPB - Added to get around nsCRT undeclared issues... */

Просмотреть файл

@ -35,8 +35,14 @@
#include <unistd.h>
#include <Pt.h>
#define BrowserRemoteServerName "MozillaBrowserRemoteServer"
#define MailRemoteServerName "MozillaMailRemoteServer"
#if defined(MOZ_PHOENIX) || defined(MOZ_THUNDERBIRD)
#define BrowserRemoteServerName "FirebirdRemoteServer"
#define MailRemoteServerName "ThunderbirdRemoteServer"
#else
#define BrowserRemoteServerName "MozillaRemoteServer"
#define MailRemoteServerName "MozillaRemoteServer"
#endif
#define MOZ_REMOTE_MSG_TYPE 100
XRemoteClient::XRemoteClient()
@ -74,9 +80,15 @@ XRemoteClient::SendCommand (const char *aCommand, PRBool *aWindowFound)
char *RemoteServerName;
if( PL_strstr( aCommand, "mailto" ) )
if( !strncmp( aCommand, "mping", 5 ) ) {
RemoteServerName = MailRemoteServerName;
else RemoteServerName = BrowserRemoteServerName;
aCommand++;
}
else {
if( PL_strstr( aCommand, "mailto" ) )
RemoteServerName = MailRemoteServerName;
else RemoteServerName = BrowserRemoteServerName;
}
PtConnectionClient_t *cnt = PtConnectionFindName( RemoteServerName, 0, 0 );
if( !cnt ) {

Просмотреть файл

@ -35,7 +35,6 @@
*
* ***** END LICENSE BLOCK ***** */
#include <dirent.h> //For random splash screen.
#include "nsNativeAppSupport.h"
#define PX_IMAGE_MODULES
@ -102,53 +101,6 @@ public:
nsrefcnt mRefCnt;
}; // class nsSplashScreenPh
char *RandomSplash( char *gob )
{
int i=0;
int value=0;
int foundIT=0;
char duper[80];
DIR* dirp;
struct dirent* direntp;
dirp = opendir( gob );
if( dirp != NULL )
{
for(;;)
{
direntp = readdir( dirp );
if( direntp == NULL ) break;
i++;// number of available splash screens
}
closedir( dirp );
// generate random number based on currnet time
srand(time(NULL));
for(value = 0; value < 9999; value = rand());
dirp = opendir( gob );
if( dirp != NULL ) {
for(foundIT=1;foundIT<=i;foundIT++) {
direntp = readdir( dirp );
if( direntp == NULL ) break;
if( foundIT == value%i ) break;
}
closedir( dirp );
// return the original splash.bmp if the directory entries are "." or ".."
if (((value%i) == 1) || ((value%i) == 2))
return "../splash.bmp";
return direntp->d_name;
}
}
return (char *)EXIT_FAILURE;
}
NS_IMETHODIMP
nsSplashScreenPh::Show()
@ -156,8 +108,7 @@ nsSplashScreenPh::Show()
PhImage_t *img = nsnull;
char *p = NULL;
char *splash = NULL;
//char splash[80];
char splashdir[80];
char splash_path[256];
int inp_grp,n=0;
PhRid_t rid;
PhRegion_t region;
@ -184,20 +135,10 @@ nsSplashScreenPh::Show()
mDialog = nsnull;
/* Setup proper path to the splash.bmp so it loads the splash screen at start up. */
/* Only try and open the splash screen bitmap if running exec'ing from mozilla shellscript*/
splash = getenv ("ADDON_PATH");
if ( splash ) {
// if ADDON_PATH/splash/ exists -- randomly choose a splash screen from here...
strcpy (splashdir,"/opt/Mozilla/mozilla/splash/");
if( lstat( splashdir, &sbuf ) == 0)
{
strcpy (splash,splashdir);
strcat (splash,(char *)RandomSplash(splashdir));
}
else
strcat (splash,"/splash.bmp");
if ((img = PxLoadImage(splash, NULL)) !=NULL )
splash = getenv( "MOZILLA_FIVE_HOME" );
if( splash ) {
sprintf( splash_path, "%s/splash.bmp", splash );
if( ( img = PxLoadImage( splash_path, NULL ) ) != NULL )
{
PtArg_t arg[6];
PhPoint_t pos;