mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-02 14:30:43 +00:00

By getting the right screen size we can shrink the popup menus which overflows the screen size under Wayland. The ScreenManager does not help us, because we can't get absolute window position, but we can use gdk_display_get_monitor_at_window and gdk_monitor_get_workarea to get the correct screen rectangle. Differential Revision: https://phabricator.services.mozilla.com/D49289 --HG-- extra : moz-landing-system : lando
338 lines
8.0 KiB
Python
338 lines
8.0 KiB
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
with Files("**"):
|
|
BUG_COMPONENT = ("Core", "Widget")
|
|
|
|
with Files("crashtests/*1128214*"):
|
|
BUG_COMPONENT = ("Core", "Layout")
|
|
|
|
with Files("crashtests/*303901*"):
|
|
BUG_COMPONENT = ("Core", "Graphics")
|
|
|
|
with Files("crashtests/*380359*"):
|
|
BUG_COMPONENT = ("Core", "Widget")
|
|
|
|
with Files("reftests/**"):
|
|
BUG_COMPONENT = ("Core", "Widget: Cocoa")
|
|
|
|
with Files("reftests/*fallback*"):
|
|
BUG_COMPONENT = ("Core", "Layout: Form Controls")
|
|
|
|
with Files("*CompositorWidget*"):
|
|
BUG_COMPONENT = ("Core", "Graphics")
|
|
|
|
with Files("*Gfx*"):
|
|
BUG_COMPONENT = ("Core", "Graphics")
|
|
|
|
with Files("*WindowSurface*"):
|
|
BUG_COMPONENT = ("Core", "Graphics")
|
|
|
|
with Files("*FontRange*"):
|
|
BUG_COMPONENT = ("Core", "Widget: Cocoa")
|
|
|
|
toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
|
|
|
|
if toolkit in ('cocoa', 'android', 'uikit'):
|
|
DIRS += [toolkit]
|
|
|
|
if toolkit == 'windows':
|
|
DIRS += ['windows']
|
|
|
|
XPIDL_SOURCES += [
|
|
'nsIJumpListBuilder.idl',
|
|
'nsIJumpListItem.idl',
|
|
'nsIPrintSettingsWin.idl',
|
|
'nsITaskbarOverlayIconController.idl',
|
|
'nsITaskbarPreview.idl',
|
|
'nsITaskbarPreviewButton.idl',
|
|
'nsITaskbarPreviewController.idl',
|
|
'nsITaskbarProgress.idl',
|
|
'nsITaskbarTabPreview.idl',
|
|
'nsITaskbarWindowPreview.idl',
|
|
'nsIWindowsUIUtils.idl',
|
|
'nsIWinTaskbar.idl',
|
|
]
|
|
elif toolkit == 'cocoa':
|
|
XPIDL_SOURCES += [
|
|
'nsIMacDockSupport.idl',
|
|
'nsIMacFinderProgress.idl',
|
|
'nsIMacSharingService.idl',
|
|
'nsIMacWebAppUtils.idl',
|
|
'nsIStandaloneNativeMenu.idl',
|
|
'nsISystemStatusBar.idl',
|
|
'nsITaskbarProgress.idl',
|
|
'nsITouchBarHelper.idl',
|
|
'nsITouchBarInput.idl',
|
|
'nsITouchBarUpdater.idl',
|
|
]
|
|
EXPORTS += [
|
|
'nsINativeMenuService.h',
|
|
]
|
|
|
|
TEST_DIRS += ['tests']
|
|
|
|
DIRS += ['headless']
|
|
|
|
# Don't build the DSO under the 'build' directory as windows does.
|
|
#
|
|
# The DSOs get built in the toolkit dir itself. Do this so that
|
|
# multiple implementations of widget can be built on the same
|
|
# source tree.
|
|
#
|
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
|
|
DIRS += ['gtk']
|
|
|
|
if CONFIG['MOZ_X11']:
|
|
DIRS += ['gtkxtbin']
|
|
|
|
XPIDL_SOURCES += [
|
|
'nsIGtkTaskbarProgress.idl',
|
|
'nsITaskbarProgress.idl',
|
|
]
|
|
|
|
XPIDL_SOURCES += [
|
|
'nsIAppShell.idl',
|
|
'nsIBaseWindow.idl',
|
|
'nsIBidiKeyboard.idl',
|
|
'nsIClipboard.idl',
|
|
'nsIClipboardHelper.idl',
|
|
'nsIClipboardOwner.idl',
|
|
'nsIColorPicker.idl',
|
|
'nsIDisplayInfo.idl',
|
|
'nsIDragService.idl',
|
|
'nsIDragSession.idl',
|
|
'nsIFilePicker.idl',
|
|
'nsIFormatConverter.idl',
|
|
'nsIGfxInfo.idl',
|
|
'nsIGfxInfoDebug.idl',
|
|
'nsIIdleService.idl',
|
|
'nsIIdleServiceInternal.idl',
|
|
'nsIPrinterEnumerator.idl',
|
|
'nsIPrintSession.idl',
|
|
'nsIPrintSettings.idl',
|
|
'nsIPrintSettingsService.idl',
|
|
'nsIScreen.idl',
|
|
'nsIScreenManager.idl',
|
|
'nsISharePicker.idl',
|
|
'nsISound.idl',
|
|
'nsITransferable.idl',
|
|
]
|
|
|
|
XPIDL_MODULE = 'widget'
|
|
|
|
EXPORTS += [
|
|
'GfxDriverInfo.h',
|
|
'GfxInfoBase.h',
|
|
'GfxInfoCollector.h',
|
|
'InputData.h',
|
|
'nsBaseAppShell.h',
|
|
'nsBaseDragService.h',
|
|
'nsBaseFilePicker.h',
|
|
'nsBaseScreen.h',
|
|
'nsBaseWidget.h',
|
|
'nsIDeviceContextSpec.h',
|
|
'nsIdleService.h',
|
|
'nsIKeyEventInPluginCallback.h',
|
|
'nsIPluginWidget.h',
|
|
'nsIPrintDialogService.h',
|
|
'nsIRollupListener.h',
|
|
'nsIWidget.h',
|
|
'nsIWidgetListener.h',
|
|
'nsWidgetInitData.h',
|
|
'nsWidgetsCID.h',
|
|
'PuppetWidget.h',
|
|
]
|
|
|
|
EXPORTS.mozilla += [
|
|
'BasicEvents.h',
|
|
'CommandList.h',
|
|
'ContentCache.h',
|
|
'ContentEvents.h',
|
|
'EventClassList.h',
|
|
'EventForwards.h',
|
|
'EventMessageList.h',
|
|
'FontRange.h',
|
|
'LookAndFeel.h',
|
|
'MiscEvents.h',
|
|
'MouseEvents.h',
|
|
'ProcInfo.h',
|
|
'TextEventDispatcher.h',
|
|
'TextEventDispatcherListener.h',
|
|
'TextEvents.h',
|
|
'TextRange.h',
|
|
'TouchEvents.h',
|
|
'VsyncDispatcher.h',
|
|
'WidgetUtils.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.widget += [
|
|
'CompositorWidget.h',
|
|
'IMEData.h',
|
|
'InProcessCompositorWidget.h',
|
|
'nsAutoRollup.h',
|
|
'PuppetBidiKeyboard.h',
|
|
'Screen.h',
|
|
'ScreenManager.h',
|
|
'WidgetMessageUtils.h',
|
|
'WindowSurface.h'
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'CompositorWidget.cpp',
|
|
'ContentCache.cpp',
|
|
'GfxDriverInfo.cpp',
|
|
'GfxInfoBase.cpp',
|
|
'GfxInfoCollector.cpp',
|
|
'IMEData.cpp',
|
|
'InProcessCompositorWidget.cpp',
|
|
'InputData.cpp',
|
|
'nsAutoRollup.cpp',
|
|
'nsBaseAppShell.cpp',
|
|
'nsBaseScreen.cpp',
|
|
'nsClipboardHelper.cpp',
|
|
'nsClipboardProxy.cpp',
|
|
'nsColorPickerProxy.cpp',
|
|
'nsContentProcessWidgetFactory.cpp',
|
|
'nsDragServiceProxy.cpp',
|
|
'nsFilePickerProxy.cpp',
|
|
'nsHTMLFormatConverter.cpp',
|
|
'nsIdleService.cpp',
|
|
'nsIWidgetListener.cpp',
|
|
'nsPrimitiveHelpers.cpp',
|
|
'nsPrintSettingsImpl.cpp',
|
|
'nsSoundProxy.cpp',
|
|
'nsTransferable.cpp',
|
|
'nsXPLookAndFeel.cpp',
|
|
'PuppetBidiKeyboard.cpp',
|
|
'PuppetWidget.cpp',
|
|
'Screen.cpp',
|
|
'SharedWidgetUtils.cpp',
|
|
'TextEventDispatcher.cpp',
|
|
'VsyncDispatcher.cpp',
|
|
'WidgetEventImpl.cpp',
|
|
'WidgetUtils.cpp',
|
|
]
|
|
|
|
if CONFIG['OS_ARCH'] == 'Linux':
|
|
EXPORTS.mozilla.widget += [
|
|
'LSBUtils.h'
|
|
]
|
|
SOURCES += [
|
|
'LSBUtils.cpp'
|
|
]
|
|
|
|
if CONFIG['MOZ_XUL'] and CONFIG['NS_PRINTING']:
|
|
EXPORTS += [
|
|
'nsDeviceContextSpecProxy.h',
|
|
'nsPrintSettingsService.h',
|
|
]
|
|
UNIFIED_SOURCES += [
|
|
'nsDeviceContextSpecProxy.cpp',
|
|
'nsPrintSession.cpp',
|
|
'nsPrintSettingsService.cpp',
|
|
]
|
|
|
|
# nsBaseWidget.cpp needs to be built separately because of name clashes in the OS X headers
|
|
# nsBaseDragService.cpp moved out of UNIFIED to fix xgill crash (bug 1259850) after moving widget/ContentHelper -> apz/util/TouchActionHelper
|
|
SOURCES += [
|
|
'nsBaseDragService.cpp',
|
|
'nsBaseWidget.cpp',
|
|
'ScreenManager.cpp',
|
|
]
|
|
|
|
if CONFIG['MOZ_INSTRUMENT_EVENT_LOOP']:
|
|
EXPORTS.mozilla += [
|
|
'WidgetTraceEvent.h',
|
|
]
|
|
|
|
EXPORTS.ipc = ['nsGUIEventIPC.h']
|
|
|
|
if CONFIG['MOZ_X11']:
|
|
DIRS += ['x11']
|
|
SOURCES += [
|
|
'GfxInfoX11.cpp',
|
|
'nsShmImage.cpp',
|
|
'WindowSurfaceX11SHM.cpp',
|
|
]
|
|
|
|
if toolkit == 'windows':
|
|
EXPORTS += [
|
|
'PluginWidgetProxy.h',
|
|
]
|
|
SOURCES += [
|
|
'PluginWidgetProxy.cpp',
|
|
]
|
|
|
|
if toolkit in ('cocoa', 'windows'):
|
|
UNIFIED_SOURCES += [
|
|
'nsBaseClipboard.cpp',
|
|
]
|
|
|
|
if toolkit in {'gtk', 'cocoa', 'windows',
|
|
'android', 'uikit'}:
|
|
UNIFIED_SOURCES += [
|
|
'nsBaseFilePicker.cpp',
|
|
]
|
|
|
|
if toolkit in ('gtk', 'windows', 'cocoa', 'android'):
|
|
UNIFIED_SOURCES += [
|
|
'nsNativeTheme.cpp',
|
|
]
|
|
if toolkit == 'gtk':
|
|
XPIDL_SOURCES += [
|
|
'nsIApplicationChooser.idl',
|
|
]
|
|
|
|
DEFINES['MOZ_CROSS_PROCESS_IME'] = True
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/dom/base',
|
|
'/dom/ipc',
|
|
'/layout/base',
|
|
'/layout/forms',
|
|
'/layout/generic',
|
|
'/layout/painting',
|
|
'/layout/xul',
|
|
'/layout/xul/tree/',
|
|
'/view',
|
|
'/widget',
|
|
'/widget/headless',
|
|
]
|
|
|
|
if toolkit == 'windows':
|
|
IPDL_SOURCES = [
|
|
'headless/HeadlessWidgetTypes.ipdlh',
|
|
'windows/PCompositorWidget.ipdl',
|
|
'windows/PlatformWidgetTypes.ipdlh',
|
|
]
|
|
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk' and CONFIG['MOZ_X11']:
|
|
IPDL_SOURCES = [
|
|
'gtk/PCompositorWidget.ipdl',
|
|
'gtk/PlatformWidgetTypes.ipdlh',
|
|
'headless/HeadlessWidgetTypes.ipdlh',
|
|
]
|
|
else:
|
|
IPDL_SOURCES = [
|
|
'headless/HeadlessWidgetTypes.ipdlh',
|
|
'PCompositorWidget.ipdl',
|
|
'PlatformWidgetTypes.ipdlh',
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/widget/%s' % toolkit,
|
|
]
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
|
|
DEFINES['MOZ_ENABLE_D3D10_LAYER'] = True
|
|
|
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|
|
if CONFIG['MOZ_WAYLAND']:
|
|
CXXFLAGS += CONFIG['MOZ_WAYLAND_CFLAGS']
|