mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
fix(clipboard): reduce memory pressure from activated entries
This commit is contained in:
@@ -834,12 +834,12 @@ void Application::initUi() {
|
||||
if (mode == ClipboardAutoPasteMode::Off) {
|
||||
return;
|
||||
}
|
||||
const ClipboardEntry selectedEntry = entry;
|
||||
const bool isImage = entry.isImage();
|
||||
m_clipboardAutoPasteTimer.stop();
|
||||
m_clipboardAutoPasteTimer.start(std::chrono::milliseconds(Style::animFast + 30), [this, selectedEntry]() {
|
||||
DeferredCall::callLater([this, selectedEntry]() {
|
||||
m_clipboardAutoPasteTimer.start(std::chrono::milliseconds(Style::animFast + 30), [this, isImage]() {
|
||||
DeferredCall::callLater([this, isImage]() {
|
||||
const ClipboardAutoPasteMode activeMode = m_configService.config().shell.clipboardAutoPaste;
|
||||
(void)clipboard_paste::pasteEntry(selectedEntry, activeMode, m_virtualKeyboardService);
|
||||
(void)clipboard_paste::pasteEntry(isImage, activeMode, m_virtualKeyboardService);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -48,12 +48,10 @@ namespace clipboard_paste {
|
||||
|
||||
} // namespace
|
||||
|
||||
bool pasteEntry(const ClipboardEntry& entry, ClipboardAutoPasteMode mode, VirtualKeyboardService& virtualKeyboard) {
|
||||
bool pasteEntry(bool isImage, ClipboardAutoPasteMode mode, VirtualKeyboardService& virtualKeyboard) {
|
||||
if (mode == ClipboardAutoPasteMode::Off) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const bool isImage = entry.isImage();
|
||||
const auto shortcut = virtualPasteShortcutFor(mode, isImage);
|
||||
if (shortcut.has_value() && virtualKeyboard.sendPasteShortcut(*shortcut)) {
|
||||
return true;
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include "config/config_service.h"
|
||||
#include "wayland/clipboard_service.h"
|
||||
#include "wayland/virtual_keyboard_service.h"
|
||||
|
||||
namespace clipboard_paste {
|
||||
|
||||
[[nodiscard]] bool pasteEntry(const ClipboardEntry& entry, ClipboardAutoPasteMode mode,
|
||||
VirtualKeyboardService& virtualKeyboard);
|
||||
[[nodiscard]] bool pasteEntry(bool isImage, ClipboardAutoPasteMode mode, VirtualKeyboardService& virtualKeyboard);
|
||||
|
||||
} // namespace clipboard_paste
|
||||
|
||||
Reference in New Issue
Block a user