src/Builder4/MainWindow.bjs
authorAlan Knowles <alan@roojs.com>
Thu, 1 Feb 2024 11:44:25 +0000 (19:44 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 1 Feb 2024 11:44:25 +0000 (19:44 +0800)
src/Builder4/MainWindow.vala

src/Builder4/MainWindow.bjs
src/Builder4/MainWindow.vala

index 94d8a5c..539a0a9 100644 (file)
                "\t",
                "\t\t\"searcj key release %d, %d, %d  ?= %d\" , ",
                "\t\t\t(int) keyval, (int)  keycode, state,",
-               "\t\t\t(int)Gdk.Key.Pointer_Up",
+               "\t\t\t(int)Gdk.Key.Up",
                "\t\t);",
-               "",
+               "\tvar dir = 0;",
+               "\tif (keyval == Gdk.Key.Up) {",
+               "\t\tdir = -1;",
+               "\t}if (keyval == Gdk.Key.Down) {",
+               "\t\tdir = 1;",
+               "\t}",
+               "\tif (dir == 0) {",
+               "\t\treturn;",
+               "\t}",
+               "\tvar ns = _this.treeselmodel.el.selected + dir;",
+               "\tif (ns < 0) {",
+               "\t\tns = 0;",
+               "\t}",
+               "\tif (ns => this.treeselmodel.el.get_n_items()) {",
+               "\t\tns  = this.treeselmodel.el.get_n_items()-1;",
+               "\t}",
+               "\t_this.treeselmodel.el.selected = ns;",
                "}",
                ""
               ]
index 9c7076c..046e72a 100644 (file)
@@ -1457,9 +1457,25 @@ public class Xcls_MainWindow : Object
                                
                                        "searcj key release %d, %d, %d  ?= %d" , 
                                                (int) keyval, (int)  keycode, state,
-                                               (int)Gdk.Key.Pointer_Up
+                                               (int)Gdk.Key.Up
                                        );
-                       
+                               var dir = 0;
+                               if (keyval == Gdk.Key.Up) {
+                                       dir = -1;
+                               }if (keyval == Gdk.Key.Down) {
+                                       dir = 1;
+                               }
+                               if (dir == 0) {
+                                       return;
+                               }
+                               var ns = _this.treeselmodel.el.selected + dir;
+                               if (ns < 0) {
+                                       ns = 0;
+                               }
+                               if (ns => this.treeselmodel.el.get_n_items()) {
+                                       ns  = this.treeselmodel.el.get_n_items()-1;
+                               }
+                               _this.treeselmodel.el.selected = ns;
                        });
                }