mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 03:05:34 +00:00
df895249c6
Most of our keyboard shortcut handling is handled by nsXBLWindowKeyHandler along with nsXBLPrototypeHandler. With the impending removal of XBL this needs to change. This patch moves nsXBLWindowKeyHandler to dom/events/GlobalKeyListener and copies nsXBLPrototypeHandler to dom/events/KeyEventHandler. Windows, text elements and XUL <keyset> are changed to use the new copies and anything unnecessary for those is stripped out. XBL handler elements still remain using the existing nsXBLPrototypeHandler path. Some of the code is ripped out there to make it compile. There is probably a lot more that can be removed but since the whole of XBL is likely gone soon I'm not sure it is worth cleaning that up much. Differential Revision: https://phabricator.services.mozilla.com/D42336 --HG-- rename : dom/xbl/nsXBLWindowKeyHandler.cpp => dom/events/GlobalKeyListener.cpp rename : dom/xbl/nsXBLWindowKeyHandler.h => dom/events/GlobalKeyListener.h rename : dom/xbl/nsXBLPrototypeHandler.cpp => dom/events/KeyEventHandler.cpp rename : dom/xbl/nsXBLPrototypeHandler.h => dom/events/KeyEventHandler.h rename : dom/xbl/builtin/ShortcutKeyDefinitionsForBrowserCommon.h => dom/events/ShortcutKeyDefinitionsForBrowserCommon.h rename : dom/xbl/builtin/ShortcutKeyDefinitionsForEditorCommon.h => dom/events/ShortcutKeyDefinitionsForEditorCommon.h rename : dom/xbl/builtin/ShortcutKeyDefinitionsForInputCommon.h => dom/events/ShortcutKeyDefinitionsForInputCommon.h rename : dom/xbl/builtin/ShortcutKeyDefinitionsForInputCommon.h => dom/events/ShortcutKeyDefinitionsForTextAreaCommon.h rename : dom/xbl/builtin/ShortcutKeys.cpp => dom/events/ShortcutKeys.cpp rename : dom/xbl/builtin/ShortcutKeys.h => dom/events/ShortcutKeys.h rename : dom/xbl/builtin/android/ShortcutKeyDefinitions.cpp => dom/events/android/ShortcutKeyDefinitions.cpp rename : dom/xbl/builtin/android/moz.build => dom/events/android/moz.build rename : dom/xbl/builtin/emacs/ShortcutKeyDefinitions.cpp => dom/events/emacs/ShortcutKeyDefinitions.cpp rename : dom/xbl/builtin/android/moz.build => dom/events/emacs/moz.build rename : dom/xbl/builtin/mac/ShortcutKeyDefinitions.cpp => dom/events/mac/ShortcutKeyDefinitions.cpp rename : dom/xbl/builtin/android/moz.build => dom/events/mac/moz.build rename : dom/xbl/builtin/unix/ShortcutKeyDefinitions.cpp => dom/events/unix/ShortcutKeyDefinitions.cpp rename : dom/xbl/builtin/android/moz.build => dom/events/unix/moz.build rename : dom/xbl/builtin/win/ShortcutKeyDefinitions.cpp => dom/events/win/ShortcutKeyDefinitions.cpp rename : dom/xbl/builtin/android/moz.build => dom/events/win/moz.build extra : moz-landing-system : lando
90 lines
3.3 KiB
C++
90 lines
3.3 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* 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/. */
|
|
#ifndef include_gfx_ipc_UiCompositorControllerChild_h
|
|
#define include_gfx_ipc_UiCompositorControllerChild_h
|
|
|
|
#include "mozilla/layers/PUiCompositorControllerChild.h"
|
|
|
|
#include "mozilla/gfx/2D.h"
|
|
#include "mozilla/Maybe.h"
|
|
#include "mozilla/ipc/Shmem.h"
|
|
#include "mozilla/layers/UiCompositorControllerParent.h"
|
|
#include "mozilla/RefPtr.h"
|
|
#include "nsThread.h"
|
|
|
|
class nsBaseWidget;
|
|
|
|
namespace mozilla {
|
|
namespace layers {
|
|
|
|
class UiCompositorControllerChild final
|
|
: protected PUiCompositorControllerChild {
|
|
friend class PUiCompositorControllerChild;
|
|
|
|
public:
|
|
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(UiCompositorControllerChild)
|
|
|
|
static RefPtr<UiCompositorControllerChild> CreateForSameProcess(
|
|
const LayersId& aRootLayerTreeId);
|
|
static RefPtr<UiCompositorControllerChild> CreateForGPUProcess(
|
|
const uint64_t& aProcessToken,
|
|
Endpoint<PUiCompositorControllerChild>&& aEndpoint);
|
|
|
|
bool Pause();
|
|
bool Resume();
|
|
bool ResumeAndResize(const int32_t& aX, const int32_t& aY,
|
|
const int32_t& aHeight, const int32_t& aWidth);
|
|
bool InvalidateAndRender();
|
|
bool SetMaxToolbarHeight(const int32_t& aHeight);
|
|
bool SetFixedBottomOffset(int32_t aOffset);
|
|
bool SetPinned(const bool& aPinned, const int32_t& aReason);
|
|
bool ToolbarAnimatorMessageFromUI(const int32_t& aMessage);
|
|
bool SetDefaultClearColor(const uint32_t& aColor);
|
|
bool RequestScreenPixels();
|
|
bool EnableLayerUpdateNotifications(const bool& aEnable);
|
|
bool ToolbarPixelsToCompositor(Shmem& aMem, const ScreenIntSize& aSize);
|
|
|
|
void Destroy();
|
|
|
|
void SetBaseWidget(nsBaseWidget* aWidget);
|
|
bool AllocPixelBuffer(const int32_t aSize, Shmem* aMem);
|
|
bool DeallocPixelBuffer(Shmem& aMem);
|
|
|
|
protected:
|
|
void ActorDestroy(ActorDestroyReason aWhy) override;
|
|
void ActorDealloc() override;
|
|
void ProcessingError(Result aCode, const char* aReason) override;
|
|
void HandleFatalError(const char* aMsg) const override;
|
|
mozilla::ipc::IPCResult RecvToolbarAnimatorMessageFromCompositor(
|
|
const int32_t& aMessage);
|
|
mozilla::ipc::IPCResult RecvRootFrameMetrics(const ScreenPoint& aScrollOffset,
|
|
const CSSToScreenScale& aZoom);
|
|
mozilla::ipc::IPCResult RecvScreenPixels(Shmem&& aMem,
|
|
const ScreenIntSize& aSize);
|
|
|
|
private:
|
|
explicit UiCompositorControllerChild(const uint64_t& aProcessToken);
|
|
virtual ~UiCompositorControllerChild();
|
|
void OpenForSameProcess();
|
|
void OpenForGPUProcess(Endpoint<PUiCompositorControllerChild>&& aEndpoint);
|
|
void SendCachedValues();
|
|
|
|
bool mIsOpen;
|
|
uint64_t mProcessToken;
|
|
Maybe<gfx::IntRect> mResize;
|
|
Maybe<int32_t> mMaxToolbarHeight;
|
|
Maybe<uint32_t> mDefaultClearColor;
|
|
Maybe<bool> mLayerUpdateEnabled;
|
|
RefPtr<nsBaseWidget> mWidget;
|
|
// Should only be set when compositor is in process.
|
|
RefPtr<UiCompositorControllerParent> mParent;
|
|
};
|
|
|
|
} // namespace layers
|
|
} // namespace mozilla
|
|
|
|
#endif // include_gfx_ipc_UiCompositorControllerChild_h
|