Skip to content

Commit 8d6e402

Browse files
committed
clipboard: Clang-tidy clean up and limit wayland clipboard size to 4000 bytes.
1 parent add4c95 commit 8d6e402

File tree

7 files changed

+80
-16
lines changed

7 files changed

+80
-16
lines changed

src/modules/clipboard/clipboard.cpp

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,49 @@
55
*
66
*/
77
#include "clipboard.h"
8+
#include <algorithm>
9+
#include <cstddef>
810
#include <cstdint>
11+
#include <iterator>
912
#include <limits>
13+
#include <memory>
14+
#include <string>
1015
#include <unordered_set>
16+
#include <utility>
17+
#include "fcitx-config/iniparser.h"
1118
#include "fcitx-utils/event.h"
19+
#include "fcitx-utils/eventloopinterface.h"
1220
#include "fcitx-utils/i18n.h"
21+
#include "fcitx-utils/key.h"
22+
#include "fcitx-utils/keysym.h"
1323
#include "fcitx-utils/log.h"
24+
#include "fcitx-utils/macros.h"
1425
#include "fcitx-utils/misc_p.h"
1526
#include "fcitx-utils/utf8.h"
1627
#include "fcitx/addonfactory.h"
28+
#include "fcitx/addoninstance.h"
1729
#include "fcitx/addonmanager.h"
30+
#include "fcitx/candidatelist.h"
31+
#include "fcitx/event.h"
1832
#include "fcitx/inputcontext.h"
1933
#include "fcitx/inputcontextmanager.h"
2034
#include "fcitx/inputpanel.h"
35+
#include "fcitx/instance.h"
36+
#include "fcitx/text.h"
37+
#include "fcitx/userinterface.h"
2138
#include "clipboardentry.h"
2239

40+
#ifdef ENABLE_X11
41+
#include <xcb/xcb.h>
42+
#include "xcb_public.h"
43+
#include "xcbclipboard.h"
44+
#endif
45+
#ifdef WAYLAND_FOUND
46+
#include <wayland-client-core.h>
47+
#include "wayland_public.h"
48+
#include "waylandclipboard.h"
49+
#endif
50+
2351
namespace fcitx {
2452

2553
namespace {
@@ -155,8 +183,8 @@ Clipboard::Clipboard(Instance *instance)
155183
wayland->call<IWaylandModule::addConnectionCreatedCallback>(
156184
[this](const std::string &name, wl_display *display,
157185
FocusGroup *) {
158-
waylandClipboards_[name].reset(
159-
new WaylandClipboard(this, name, display));
186+
waylandClipboards_[name] =
187+
std::make_unique<WaylandClipboard>(this, name, display);
160188
});
161189
waylandClosedCallback_ =
162190
wayland->call<IWaylandModule::addConnectionClosedCallback>(
@@ -482,8 +510,8 @@ void Clipboard::refreshPasswordTimer() {
482510
}
483511

484512
if (minTimestamp != std::numeric_limits<uint64_t>::max()) {
485-
clearPasswordTimer_->setTime(minTimestamp +
486-
oneSecond * (*config_.clearPasswordAfter));
513+
clearPasswordTimer_->setTime(
514+
minTimestamp + (oneSecond * (*config_.clearPasswordAfter)));
487515
FCITX_CLIPBOARD_DEBUG()
488516
<< "Password Clearing Timer will be triggered after: "
489517
<< clearPasswordTimer_->time() - now(CLOCK_MONOTONIC);

src/modules/clipboard/clipboard.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
#include <cstddef>
1111
#include <memory>
1212
#include <string>
13+
#include <unordered_map>
1314
#include <vector>
1415
#include "fcitx-config/configuration.h"
1516
#include "fcitx-config/iniparser.h"
1617
#include "fcitx-config/option.h"
17-
#include "fcitx-utils/event.h"
18+
#include "fcitx-config/rawconfig.h"
19+
#include "fcitx-utils/eventloopinterface.h"
1820
#include "fcitx-utils/handlertable.h"
1921
#include "fcitx-utils/i18n.h"
2022
#include "fcitx-utils/key.h"
@@ -39,7 +41,7 @@
3941

4042
namespace fcitx {
4143

42-
constexpr size_t MAX_CLIPBOARD_SIZE = 4096;
44+
constexpr size_t MAX_CLIPBOARD_SIZE = 4000;
4345
constexpr char PASSWORD_MIME_TYPE[] = "x-kde-passwordManagerHint";
4446

4547
FCITX_CONFIGURATION(

src/modules/clipboard/clipboardentry.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
#ifndef _FCITX5_MODULES_CLIPBOARD_CLIPBOARDENTRY_H_
88
#define _FCITX5_MODULES_CLIPBOARD_CLIPBOARDENTRY_H_
99

10+
#include <cstddef>
1011
#include <cstdint>
12+
#include <functional>
1113
#include <string>
1214
#include "fcitx-utils/log.h"
1315

@@ -49,4 +51,4 @@ struct std::hash<fcitx::ClipboardEntry> {
4951
}
5052
};
5153

52-
#endif // _FCITX5_MODULES_CLIPBOARD_CLIPBOARDENTRY_H_
54+
#endif // _FCITX5_MODULES_CLIPBOARD_CLIPBOARDENTRY_H_

src/modules/clipboard/waylandclipboard.cpp

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,25 @@
55
*
66
*/
77
#include "waylandclipboard.h"
8+
#include <unistd.h>
9+
#include <cstdint>
10+
#include <memory>
11+
#include <string>
12+
#include <string_view>
813
#include <unordered_set>
14+
#include <utility>
15+
#include <vector>
16+
#include <wayland-client-core.h>
17+
#include <wayland-client-protocol.h>
918
#include "fcitx-utils/event.h"
19+
#include "fcitx-utils/eventloopinterface.h"
20+
#include "fcitx-utils/fs.h"
21+
#include "fcitx-utils/log.h"
22+
#include "fcitx-utils/misc_p.h"
1023
#include "fcitx-utils/trackableobject.h"
24+
#include "fcitx-utils/unixfd.h"
1125
#include "clipboard.h"
26+
#include "display.h"
1227
#include "wl_seat.h"
1328
#include "zwlr_data_control_manager_v1.h"
1429
#include "zwlr_data_control_offer_v1.h"
@@ -127,12 +142,13 @@ void DataOffer::receiveData(DataReaderThread &thread,
127142

128143
auto callbackWrapper =
129144
[this, callback = std::move(callback)](const std::vector<char> &data) {
130-
return callback(data, isPassword_);
145+
callback(data, isPassword_);
146+
return;
131147
};
132148

133149
thread_ = &thread;
134150
static const std::string passwordHint = PASSWORD_MIME_TYPE;
135-
if (mimeTypes_.count(passwordHint)) {
151+
if (mimeTypes_.contains(passwordHint)) {
136152
receiveDataForMime(passwordHint, [this, callbackWrapper](
137153
const std::vector<char> &data) {
138154
if (std::string_view(data.data(), data.size()) == "secret" &&
@@ -157,9 +173,9 @@ void DataOffer::receiveRealData(DataOfferDataCallback callback) {
157173
static const std::string utf8Mime = "text/plain;charset=utf-8";
158174
static const std::string textMime = "text/plain";
159175

160-
if (mimeTypes_.count(utf8Mime)) {
176+
if (mimeTypes_.contains(utf8Mime)) {
161177
mime = utf8Mime;
162-
} else if (mimeTypes_.count(textMime)) {
178+
} else if (mimeTypes_.contains(textMime)) {
163179
mime = textMime;
164180
} else {
165181
return;
@@ -242,7 +258,7 @@ WaylandClipboard::WaylandClipboard(Clipboard *clipboard, std::string name,
242258
static_cast<wayland::Display *>(wl_display_get_user_data(display))) {
243259
display_->requestGlobals<wayland::ZwlrDataControlManagerV1>();
244260
globalConn_ = display_->globalCreated().connect(
245-
[this](const std::string &interface, std::shared_ptr<void> ptr) {
261+
[this](const std::string &interface, const std::shared_ptr<void> &ptr) {
246262
if (interface == wayland::ZwlrDataControlManagerV1::interface) {
247263
if (ptr != manager_) {
248264
deviceMap_.clear();
@@ -256,7 +272,7 @@ WaylandClipboard::WaylandClipboard(Clipboard *clipboard, std::string name,
256272
}
257273
});
258274
globalRemoveConn_ = display_->globalRemoved().connect(
259-
[this](const std::string &interface, std::shared_ptr<void> ptr) {
275+
[this](const std::string &interface, const std::shared_ptr<void> &ptr) {
260276
if (interface == wayland::ZwlrDataControlManagerV1::interface) {
261277
deviceMap_.clear();
262278
if (manager_ == ptr) {
@@ -281,7 +297,7 @@ void WaylandClipboard::refreshSeat() {
281297

282298
auto seats = display_->getGlobals<wayland::WlSeat>();
283299
for (const auto &seat : seats) {
284-
if (deviceMap_.count(seat.get())) {
300+
if (deviceMap_.contains(seat.get())) {
285301
continue;
286302
}
287303

src/modules/clipboard/waylandclipboard.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,19 @@
77
#ifndef _FCITX5_MODULES_CLIPBOARD_WAYLANDCLIPBOARD_H_
88
#define _FCITX5_MODULES_CLIPBOARD_WAYLANDCLIPBOARD_H_
99

10+
#include <cstdint>
1011
#include <functional>
12+
#include <list>
13+
#include <memory>
14+
#include <string>
1115
#include <thread>
16+
#include <unordered_map>
17+
#include <unordered_set>
18+
#include <vector>
19+
#include <wayland-client-core.h>
1220
#include "fcitx-utils/event.h"
1321
#include "fcitx-utils/eventdispatcher.h"
14-
#include "fcitx-utils/macros.h"
22+
#include "fcitx-utils/eventloopinterface.h"
1523
#include "fcitx-utils/signals.h"
1624
#include "fcitx-utils/trackableobject.h"
1725
#include "fcitx-utils/unixfd.h"

src/modules/clipboard/xcbclipboard.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
*/
77
#include "xcbclipboard.h"
88
#include <ctime>
9+
#include <memory>
10+
#include <string>
911
#include <string_view>
12+
#include <utility>
1013
#include <xcb/xproto.h>
14+
#include "fcitx-utils/handlertable.h"
1115
#include "clipboard.h"
16+
#include "xcb_public.h"
1217

1318
namespace fcitx {
1419

src/modules/clipboard/xcbclipboard.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
#ifndef _FCITX5_MODULES_CLIPBOARD_XCBCLIPBOARD_H_
88
#define _FCITX5_MODULES_CLIPBOARD_XCBCLIPBOARD_H_
99

10+
#include <cstddef>
11+
#include <memory>
1012
#include <string>
13+
#include <vector>
1114
#include <xcb/xproto.h>
1215
#include "fcitx-utils/handlertable.h"
1316
#include "fcitx/addoninstance.h"
@@ -80,4 +83,4 @@ class XcbClipboard {
8083

8184
} // namespace fcitx
8285

83-
#endif // _FCITX5_MODULES_CLIPBOARD_XCBCLIPBOARD_H_
86+
#endif // _FCITX5_MODULES_CLIPBOARD_XCBCLIPBOARD_H_

0 commit comments

Comments
 (0)