Browse Source

feat(mouse): 增加 ctrl+c 的处理,和 MSLP 支持,还有翻滚历史命令

dzp 3 years ago
parent
commit
96b2c9524d
2 changed files with 44 additions and 13 deletions
  1. 18 1
      plugins/lib/ui/keyboard.tin
  2. 26 12
      plugins/lib/ui/mouse.tin

+ 18 - 1
plugins/lib/ui/keyboard.tin

@@ -6,7 +6,19 @@
     {AUTHOR}    {担子炮}
 };
 
+#var keyboard-mode {normal};
+
+/*
+TODO: 缺搜索功能,缺 history 翻页功能,缺当前模式的显示
+*/
+
 #alias {keyboard.LessMode} {
+    #if { "$keyboard-mode" == "less" } {
+        #return;
+    };
+
+    #var keyboard-mode {less};
+
     keyboard.DisableAllKeys;
 
     #class mouse-less-mode open;
@@ -23,6 +35,12 @@
 };
 
 #alias {keyboard.NormalMode} {
+    #if { "$keyboard-mode" == "normal" } {
+        #return;
+    };
+
+    #var keyboard-mode {normal};
+
     #kill macro;
 
     #local count {&macro-backup[]};
@@ -74,7 +92,6 @@
         #macro {$ch} {#0}   {1.000};
     };
 
-    #macro {\e}   {#0}      {1.000};
     #macro {\x7B} {#0}      {1.000};
     #macro {\x7D} {#0}      {1.000};
 

+ 26 - 12
plugins/lib/ui/mouse.tin

@@ -8,38 +8,52 @@
 
 #config {mouse} on;
 
-#EVENT {SCROLLED CTRL MOUSE WHEEL DOWN} {
-    #if {%1 == 0 || %1 == 1} {
-        #cursor history next;
+load-lib ui/keyboard;
+
+#event {SCROLLED CTRL MOUSE WHEEL DOWN} {
+    #if {%2 * -1 <= $prompt-bot-max-line + 1 } {
+        #cursor {history next};
     };
     #else {
+        keyboard.LessMode;
         #buffer down 1;
     };
 };
 
-#EVENT {SCROLLED CTRL MOUSE WHEEL UP} {
-    #if {%1 == 0 || %1 == 1} {
-        #cursor history prev;
+#event {SCROLLED CTRL MOUSE WHEEL UP} {
+    #if {%2 * -1 <= $prompt-bot-max-line + 1 } {
+        #cursor {history prev};
     };
     #else {
+        keyboard.LessMode;
         #buffer up 1;
     };
 };
 
-#EVENT {SCROLLED MOUSE WHEEL DOWN} {
-    #if {%1 == 0 || %1 == 1} {
-        #cursor history next;
+#event {SCROLLED MOUSE WHEEL DOWN} {
+    #if {%2 * -1 <= $prompt-bot-max-line + 1 } {
+        #cursor {history next};
     };
     #else {
+        keyboard.LessMode;
         #buffer down 10;
     };
 };
 
-#EVENT {SCROLLED MOUSE WHEEL UP} {
-    #if {%1 == 0 || %1 == 1} {
-        #cursor history prev;
+#event {SCROLLED MOUSE WHEEL UP} {
+    #if {%2 * -1 <= $prompt-bot-max-line + 1 } {
+        #cursor {history prev};
     };
     #else {
+        keyboard.LessMode;
         #buffer up 10;
     };
 };
+
+#event {SHORT-CLICKED LINK SEND MOUSE BUTTON ONE} {
+    #send {%4};
+};
+
+#event {SHORT-CLICKED LINK EXEC MOUSE BUTTON ONE} {
+    %4;
+};