gecko-dev/widget/windows/moz.build
Ray Kraesig fca3c6a755 Bug 1924247 - [2/5] Tidy up SynthesizedEvent, &c. r=masayuki
Clean up MouseScrollHandler::SynthesizedEvent:
  - Since this is a private local class, move it into the .cpp file, to
    minimize the number of compilation units that need to parse it.
  - Explicitly check `mSynthesizingEvent` for validity BEFORE calling
    nonstatic member functions. (Previously this code would call through
    `nullptr` as part of normal operation!)
  - Use `UniquePtr` in preference to explicit `new` and `delete`.

Additionally:
  - At the end of the file, undo the #define-poisoning of
    `GetMessagePos` to allow WinMouseScrollHandler.cpp to be used in
    unified builds. Adjust `moz.build` accordingly.
  - Remove a now-unnecessary kungFuDeathGrip. (The event-object
    immediately afterwards also holds a strong reference.)

No functional changes.

Differential Revision: https://phabricator.services.mozilla.com/D226267
2024-11-06 19:14:44 +00:00

213 lines
5.1 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: Win32")
SCHEDULES.exclusive = ["windows"]
with Files("*CompositorWidget*"):
BUG_COMPONENT = ("Core", "Graphics")
with Files("*IMEHandler*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("*IMMHandler*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("*KeyboardLayout*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("OSK*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
with Files("*TSFTextStore*"):
BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling")
DIRS += [
"filedialog",
]
TEST_DIRS += ["tests"]
EXPORTS += [
"nsAppShell.h",
"nsdefs.h",
"WindowHook.h",
"WinUtils.h",
]
EXPORTS.mozilla += [
"ScreenHelperWin.h",
"ShellHeaderOnlyUtils.h",
"ToastNotificationHeaderOnlyUtils.h",
"UrlmonHeaderOnlyUtils.h",
"WindowsConsole.h",
"WindowsEventLog.h",
"WinHeaderOnlyUtils.h",
]
EXPORTS.mozilla.widget += [
"AudioSession.h",
"CompositorWidgetChild.h",
"CompositorWidgetParent.h",
"InProcessWinCompositorWidget.h",
"JumpListBuilder.h",
"nsWindowLoggedMessages.h",
"WinCompositorWidget.h",
"WinCompositorWindowThread.h",
"WindowsEMF.h",
"WindowsSMTCProvider.h",
"WinEventObserver.h",
"WinMessages.h",
"WinModifierKeyState.h",
"WinRegistry.h",
"WinTaskbar.h",
"WinWindowOcclusionTracker.h",
]
UNIFIED_SOURCES += [
"AudioSession.cpp",
"CompositorWidgetChild.cpp",
"DirectManipulationOwner.cpp",
"GfxInfo.cpp",
"IEnumFE.cpp",
"IMMHandler.cpp",
"JumpListBuilder.cpp",
"KeyboardLayout.cpp",
"LSPAnnotator.cpp",
"nsAppShell.cpp",
"nsClipboard.cpp",
"nsColorPicker.cpp",
"nsDataObj.cpp",
"nsDataObjCollection.cpp",
"nsDragService.cpp",
"nsLookAndFeel.cpp",
"nsNativeDragSource.cpp",
"nsNativeDragTarget.cpp",
"nsNativeThemeWin.cpp",
"nsSound.cpp",
"nsToolkit.cpp",
"nsUserIdleServiceWin.cpp",
"nsUXThemeData.cpp",
"nsWindow.cpp",
"nsWindowDbg.cpp",
"nsWindowGfx.cpp",
"nsWindowLoggedMessages.cpp",
"nsWindowTaskbarConcealer.cpp",
"nsWinGesture.cpp",
"OSKTabTipManager.cpp",
"OSKVRManager.cpp",
"RemoteBackbuffer.cpp",
"ScreenHelperWin.cpp",
"SystemStatusBar.cpp",
"TaskbarPreview.cpp",
"TaskbarPreviewButton.cpp",
"TaskbarTabPreview.cpp",
"TaskbarWindowPreview.cpp",
"WinCompositorWindowThread.cpp",
"WindowHook.cpp",
"WindowsConsole.cpp",
"WinEventObserver.cpp",
"WinIMEHandler.cpp",
"WinMouseScrollHandler.cpp",
"WinPointerEvents.cpp",
"WinRegistry.cpp",
"WinTaskbar.cpp",
"WinTextEventDispatcherListener.cpp",
"WinUtils.cpp",
"WinWindowOcclusionTracker.cpp",
]
# The following files cannot be built in unified mode because of name clashes.
SOURCES += [
"CompositorWidgetParent.cpp",
"InProcessWinCompositorWidget.cpp",
"MediaKeysEventSourceFactory.cpp",
"nsBidiKeyboard.cpp",
"nsFilePicker.cpp",
"nsSharePicker.cpp",
"nsWidgetFactory.cpp",
"OSKInputPaneManager.cpp",
"WinCompositorWidget.cpp",
"WindowsSMTCProvider.cpp",
"WindowsUIUtils.cpp",
]
# Needs INITGUID and we don't allow INITGUID in unified sources since bug 970429.
SOURCES += [
"InputDeviceUtils.cpp",
"TSFTextStore.cpp",
]
if CONFIG["NS_PRINTING"]:
UNIFIED_SOURCES += [
"nsDeviceContextSpecWin.cpp",
"nsPrintDialogWin.cpp",
"nsPrinterWin.cpp",
"nsPrintSettingsServiceWin.cpp",
"nsPrintSettingsWin.cpp",
]
SOURCES += [
"nsPrintDialogUtil.cpp",
]
if CONFIG["MOZ_ENABLE_SKIA_PDF"]:
UNIFIED_SOURCES += [
"WindowsEMF.cpp",
]
XPCOM_MANIFESTS += [
"components.conf",
]
include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
if CONFIG["MOZ_ENABLE_SKIA_PDF"]:
LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
"/layout/forms",
"/layout/generic",
"/layout/style",
"/layout/xul",
"/toolkit/components/jsoncpp/include",
"/toolkit/xre",
"/widget",
"/widget/headless",
"/xpcom/base",
]
if CONFIG["MOZ_BUILD_APP"] == "browser":
DEFINES["MOZ_BUILD_APP_IS_BROWSER"] = True
DEFINES["MOZ_UNICODE"] = True
DEFINES["MOZ_APP_NAME"] = '"%s"' % CONFIG["MOZ_APP_NAME"]
# Turn `firefox` into `Firefox`.
DEFINES["MOZ_TOAST_APP_NAME"] = '"%s"' % CONFIG["MOZ_APP_NAME"].title()
USE_LIBS += [
"jsoncpp",
]
OS_LIBS += [
"ktmw32",
"rpcrt4",
"urlmon",
"winmm",
]
# mingw is missing Windows toast notification definitions.
if CONFIG["CC_TYPE"] == "clang-cl":
SOURCES += [
"ToastNotification.cpp",
"ToastNotificationHandler.cpp",
]
SPHINX_TREES["/widget/windows"] = "docs"