Files
serge-sans-paille e68e3aea28 Bug 2065399 - Do not specify inequality operator when not needed r=ipc-reviewers,media-playback-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,gtk-reviewers,emilio,gstoll,nika,asuth,canova,padenot
The compiler automatically generates a call to !(a==b) when (a!=b) is
met and operator!= is not defined, so let's remove useless code.

Cases automatically detected by an extension to the linter from Bug 2064388, also included in that patch.

Differential Revision: https://phabricator.services.mozilla.com/D320346
2026-09-01 05:48:44 +00:00

72 lines
1.9 KiB
C++

/*
* 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 _mozilla_WindowHook_h_
#define _mozilla_WindowHook_h_
#include <nsClassHashtable.h>
#include <nsHashKeys.h>
#include <nsTArray.h>
#include <windows.h>
#include "nsAppShell.h"
class nsWindow;
namespace mozilla {
namespace widget {
struct MSGResult;
class WindowHook {
public:
// It is expected that most callbacks will return false
typedef bool (*Callback)(void* aContext, HWND hWnd, UINT nMsg, WPARAM wParam,
LPARAM lParam, LRESULT* aResult);
nsresult AddHook(UINT nMsg, Callback callback, void* context);
nsresult RemoveHook(UINT nMsg, Callback callback, void* context);
nsresult AddMonitor(UINT nMsg, Callback callback, void* context);
nsresult RemoveMonitor(UINT nMsg, Callback callback, void* context);
private:
struct CallbackData {
Callback cb;
void* context;
CallbackData() : cb(nullptr), context(nullptr) {}
CallbackData(Callback cb, void* ctx) : cb(cb), context(ctx) {}
bool Invoke(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam,
LRESULT* aResult);
bool operator==(const CallbackData& rhs) const = default;
explicit operator bool() const { return !!cb; }
};
typedef nsTArray<CallbackData> CallbackDataArray;
struct MessageData {
UINT nMsg;
CallbackData hook;
CallbackDataArray monitors;
};
bool Notify(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam,
MSGResult& aResult);
MessageData* Lookup(UINT nMsg);
MessageData* LookupOrCreate(UINT nMsg);
void DeleteIfEmpty(MessageData* data);
typedef nsTArray<MessageData> MessageDataArray;
MessageDataArray mMessageData;
// For Notify
friend class ::nsWindow;
};
} // namespace widget
} // namespace mozilla
#endif // _mozilla_WindowHook_h_