Tweak XP_MACOSX ifdefs to fix keyboard shortcuts (partly), context menus, and hidden window behavior and build the mac classic skin in the Mach-O build. b=109165 r=pinkerton sr=beard

This commit is contained in:
dbaron%fas.harvard.edu 2001-11-10 23:30:13 +00:00
Родитель cd8dc8ee2c
Коммит 0c93d110f3
26 изменённых файлов: 356 добавлений и 32 удалений

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

@ -715,7 +715,7 @@ nsEventStateManager::PreHandleEvent(nsIPresContext* aPresContext,
{
nsKeyEvent* keyEvent = (nsKeyEvent*)aEvent;
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
// (pinkerton, joki, saari) IE5 for mac uses Control for access keys. The HTML4 spec
// suggests to use command on mac, but this really sucks (imagine someone having a "q"
// as an access key and not letting you quit the app!). As a result, we've made a

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

@ -58,7 +58,7 @@ class nsIDocShellTreeNode;
class nsIDocShellTreeItem;
// mac uses click-hold context menus, a holdover from 4.x
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
#define CLICK_HOLD_CONTEXT_MENUS 1
#endif

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

@ -180,7 +180,7 @@ nsXBLPrototypeHandler::InitAccessKeys()
// Compiled-in defaults, in case we can't get the pref --
// mac doesn't have menu shortcuts, other platforms use alt.
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
kMenuAccessKey = 0;
kAccelKey = nsIDOMKeyEvent::DOM_VK_META;
#else

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

@ -1509,7 +1509,7 @@ GlobalWindowImpl::CheckSecurityLeftAndTop(PRInt32* aLeft, PRInt32* aTop)
screen->GetAvailLeft(&screenLeft);
screen->GetAvailWidth(&screenWidth);
screen->GetAvailHeight(&screenHeight);
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
/* The mac's coordinate system is different from the assumed Windows'
system. It offsets by the height of the menubar so that a window
placed at (0,0) will be entirely visible. Unfortunately that

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

@ -54,6 +54,8 @@ CPPSRCS = \
LOCAL_INCLUDES += -I$(srcdir)/../../base/src
# Linking against a part of another library is evil. It also currently
# prevents building on Mac OS X (DARWIN).
EXTRA_DSO_LIBS = rdfutil_s gkgfx gkconshared_s
SHARED_LIBRARY_LIBS = \

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

@ -323,7 +323,7 @@ NS_IMETHODIMP nsCaret::GetCaretCoordinates(EViewCoordinates aRelativeToType, nsI
//#59405, on windows and unix, the coordinate for IME need to be view (nearest native window) related.
if (aRelativeToType == eIMECoordinates)
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
aRelativeToType = eTopLevelWindowCoordinates;
#else
aRelativeToType = eRenderingViewCoordinates;

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

@ -323,7 +323,7 @@ NS_IMETHODIMP nsCaret::GetCaretCoordinates(EViewCoordinates aRelativeToType, nsI
//#59405, on windows and unix, the coordinate for IME need to be view (nearest native window) related.
if (aRelativeToType == eIMECoordinates)
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
aRelativeToType = eTopLevelWindowCoordinates;
#else
aRelativeToType = eRenderingViewCoordinates;

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

@ -1318,7 +1318,7 @@ nsListControlFrame::HandleListSelection(nsIDOMEvent* aEvent,
nsCOMPtr<nsIDOMMouseEvent> mouseEvent = do_QueryInterface(aEvent);
PRBool isShift;
PRBool isControl;
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
mouseEvent->GetMetaKey(&isControl);
#else
mouseEvent->GetCtrlKey(&isControl);
@ -2229,7 +2229,7 @@ nsListControlFrame::CreateScrollingViewWidget(nsIView* aView, const nsStyleDispl
widgetData.mWindowType = eWindowType_popup;
widgetData.mBorderStyle = eBorderStyle_default;
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
static NS_DEFINE_IID(kCPopUpCID, NS_POPUP_CID);
aView->CreateWidget(kCPopUpCID, &widgetData, nsnull);
#else

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

@ -1318,7 +1318,7 @@ nsListControlFrame::HandleListSelection(nsIDOMEvent* aEvent,
nsCOMPtr<nsIDOMMouseEvent> mouseEvent = do_QueryInterface(aEvent);
PRBool isShift;
PRBool isControl;
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
mouseEvent->GetMetaKey(&isControl);
#else
mouseEvent->GetCtrlKey(&isControl);
@ -2229,7 +2229,7 @@ nsListControlFrame::CreateScrollingViewWidget(nsIView* aView, const nsStyleDispl
widgetData.mWindowType = eWindowType_popup;
widgetData.mBorderStyle = eBorderStyle_default;
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
static NS_DEFINE_IID(kCPopUpCID, NS_POPUP_CID);
aView->CreateWidget(kCPopUpCID, &widgetData, nsnull);
#else

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

@ -108,7 +108,7 @@ void nsMenuBarListener::InitAccessKey()
// Compiled-in defaults, in case we can't get LookAndFeel --
// mac doesn't have menu shortcuts, other platforms use alt.
#ifndef XP_MAC
#if !(defined(XP_MAC) || defined(XP_MACOSX))
mAccessKey = nsIDOMKeyEvent::DOM_VK_ALT;
#else
mAccessKey = 0;

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

@ -1450,7 +1450,7 @@ nsMenuFrame::BuildAcceleratorText()
{
// Compiled-in defaults, in case we can't get LookAndFeel --
// command for mac, control for all other platforms.
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
accelKey = nsIDOMKeyEvent::DOM_VK_META;
#else
accelKey = nsIDOMKeyEvent::DOM_VK_CONTROL;

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

@ -221,7 +221,7 @@ nsMenuPopupFrame::Init(nsIPresContext* aPresContext,
// XXX make sure we are hidden (shouldn't this be done automatically?)
ourView->SetVisibility(nsViewVisibility_kHide);
#ifdef XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
printf("XP Popups: This is a nag to indicate that an inconsistent hack is being done on the Mac for popups.\n");
static NS_DEFINE_IID(kCPopupCID, NS_POPUP_CID);
ourView->CreateWidget(kCPopupCID, &widgetData, nsnull);

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

@ -44,7 +44,7 @@
#include "nsRepeatService.h"
#if XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
#define INITAL_REPEAT_DELAY 250
#define REPEAT_DELAY 10
#else

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

@ -26,18 +26,28 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = communicator/bookmarks/win \
communicator/search/win \
communicator/sidebar/win \
communicator/win \
global/win \
messenger/win \
messenger/addressbook/win \
preview/win \
editor/win \
navigator/win \
ifeq (mac,$(MOZ_WIDGET_TOOLKIT))
THEME_PLATFORM = mac
else
THEME_PLATFORM = win
endif
DIRS = communicator/bookmarks/$(THEME_PLATFORM) \
communicator/search/$(THEME_PLATFORM) \
communicator/sidebar/$(THEME_PLATFORM) \
communicator/$(THEME_PLATFORM) \
global/$(THEME_PLATFORM) \
messenger/$(THEME_PLATFORM) \
messenger/addressbook/$(THEME_PLATFORM) \
preview/$(THEME_PLATFORM) \
editor/$(THEME_PLATFORM) \
navigator/$(THEME_PLATFORM) \
$(NULL)
ifeq ($(THEME_PLATFORM),mac)
DIRS += communicator/profile/$(THEME_PLATFORM)
endif
include $(topsrcdir)/config/rules.mk
install::

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2000 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,29 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2000 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,29 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2000 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2000 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2000 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,28 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 2000 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -0,0 +1,30 @@
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

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

@ -251,7 +251,7 @@ nsAppShellService::CreateHiddenWindow()
{
nsresult rv;
PRInt32 initialHeight = 100, initialWidth = 100;
#if XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
const char* hiddenWindowURL = "chrome://global/content/hiddenWindow.xul";
PRUint32 chromeMask = 0;
#else
@ -270,7 +270,7 @@ nsAppShellService::CreateHiddenWindow()
if (NS_SUCCEEDED(rv)) {
mHiddenWindow = newWindow;
#if XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
// hide the hidden window by launching it into outer space. This
// way, we can keep it visible and let the OS send it activates
// to keep menus happy. This will cause it to show up in window
@ -514,7 +514,7 @@ nsAppShellService::JustCreateTopWindow(nsIXULWindow *aParent,
zlevel = nsIXULWindow::raisedZ;
else if (aChromeMask & nsIWebBrowserChrome::CHROME_WINDOW_LOWERED)
zlevel = nsIXULWindow::loweredZ;
#ifdef XP_MAC
#ifdef defined(XP_MAC) || defined(XP_MACOSX)
/* Platforms on which modal windows are always application-modal, not
window-modal (that's just the Mac, right?) want modal windows to
be stacked on top of everyone else. */
@ -712,7 +712,7 @@ nsAppShellService::UnregisterTopLevelWindow(nsIXULWindow* aWindow)
if (!windowsRemain) {
#if XP_MAC
#if defined(XP_MAC) || defined(XP_MACOSX)
// if no hidden window is available (perhaps due to initial
// Profile Manager window being cancelled), then just quit. We don't have
// to worry about focussing the hidden window, because it will get activated