mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-13 18:27:35 +00:00
7d218e435f
nsClipboard::HasDataMatchingFlavors() calls nsRetrievalContext::GetTargets() which obtains clipboard targets. We need to call Gtk code for that and spin evetn loop to get the targets. In this patch we store clipboard tragets internally to speed up nsClipboard::HasDataMatchingFlavors() calls. We also listen at owner-change signal to clear target cache when clipboard content changes. Differential Revision: https://phabricator.services.mozilla.com/D137899
33 lines
1.1 KiB
C++
33 lines
1.1 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:expandtab:shiftwidth=4:tabstop=4:
|
|
*/
|
|
/* 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 __nsClipboardX11_h_
|
|
#define __nsClipboardX11_h_
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
#include "mozilla/Maybe.h"
|
|
#include "nsClipboard.h"
|
|
|
|
class nsRetrievalContextX11 : public nsRetrievalContext {
|
|
public:
|
|
ClipboardData GetClipboardData(const char* aMimeType,
|
|
int32_t aWhichClipboard) override;
|
|
mozilla::GUniquePtr<char> GetClipboardText(int32_t aWhichClipboard) override;
|
|
ClipboardTargets GetTargetsImpl(int32_t aWhichClipboard) override;
|
|
|
|
nsRetrievalContextX11();
|
|
|
|
private:
|
|
// Spins X event loop until timing out or being completed.
|
|
ClipboardData WaitForClipboardData(ClipboardDataType aDataType,
|
|
int32_t aWhichClipboard,
|
|
const char* aMimeType = nullptr);
|
|
};
|
|
|
|
#endif /* __nsClipboardX11_h_ */
|