From 1526cd176c6c119b7bb738f1779a86d1addd0f88 Mon Sep 17 00:00:00 2001 From: takase1121 <20792268+takase1121@users.noreply.github.com> Date: Sun, 19 Dec 2021 09:36:24 +0800 Subject: [PATCH] move selection logic to mouse click --- data/core/commands/log.lua | 12 ------------ data/core/keymap.lua | 3 +-- data/core/logview.lua | 28 +++++++++++++++++++++------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/data/core/commands/log.lua b/data/core/commands/log.lua index 940ffca4..c0111b57 100644 --- a/data/core/commands/log.lua +++ b/data/core/commands/log.lua @@ -1,18 +1,6 @@ local core = require "core" local command = require "core.command" -command.add("core.logview", { - ["log:expand-item"] = function() - if core.active_view.hovered_item then - core.active_view:expand_item(core.active_view.hovered_item) - end - end, - ["log:copy-entry"] = function() - if core.active_view.hovered_item then - system.set_clipboard(core.get_log(core.active_view.hovered_item)) - end - end -}) command.add(nil, { ["log:open-as-doc"] = function() diff --git a/data/core/keymap.lua b/data/core/keymap.lua index 440e518d..b076629b 100644 --- a/data/core/keymap.lua +++ b/data/core/keymap.lua @@ -235,8 +235,7 @@ keymap.add_direct { ["pagedown"] = "doc:move-to-next-page", ["shift+1lclick"] = "doc:select-to-cursor", - ["ctrl+1lclick"] = { "doc:split-cursor", "log:copy-entry" }, - ["lclick"] = "log:expand-item", + ["ctrl+1lclick"] = "doc:split-cursor", ["1lclick"] = "doc:set-cursor", ["2lclick"] = "doc:set-cursor-word", ["3lclick"] = "doc:set-cursor-line", diff --git a/data/core/logview.lua b/data/core/logview.lua index 6485c2f6..d7b07e33 100644 --- a/data/core/logview.lua +++ b/data/core/logview.lua @@ -1,5 +1,6 @@ local core = require "core" local common = require "core.common" +local keymap = require "core.keymap" local style = require "core.style" local View = require "core.view" @@ -78,17 +79,30 @@ function LogView:each_item() end -function LogView:on_mouse_moved(px, py, ...) - LogView.super.on_mouse_moved(self, px, py, ...) - local hovered = false - for _, item, x, y, w, h in self:each_item() do +function LogView:on_mouse_pressed(button, px, py, clicks) + if LogView.super.on_mouse_pressed(self, button, px, py, clicks) then + return true + end + + local index, selected + for i, item, x, y, w, h in self:each_item() do if px >= x and py >= y and px < x + w and py < y + h then - hovered = true - self.hovered_item = item + index = i + selected = item break end end - if not hovered then self.hovered_item = nil end + + if selected then + if keymap.modkeys["ctrl"] then + system.set_clipboard(core.get_log(selected)) + core.status_view:show_message("i", style.text, "copied entry #"..index.." to clipboard.") + else + self:expand_item(selected) + end + end + + return true end