Explorar el Código

app: temp workaround for key repeat issue due to miniquad API issue: https://github.com/not-fl3/miniquad/issues/517

darkfi hace 1 año
padre
commit
eeef6731e3
Se han modificado 3 ficheros con 23 adiciones y 20 borrados
  1. 8 8
      bin/app/Cargo.lock
  2. 5 5
      bin/app/Makefile
  3. 10 7
      bin/app/src/ui/editbox/repeat.rs

+ 8 - 8
bin/app/Cargo.lock

@@ -1144,9 +1144,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
 
 [[package]]
 name = "crunchy"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929"
 
 [[package]]
 name = "crypto-bigint"
@@ -3374,9 +3374,9 @@ dependencies = [
 
 [[package]]
 name = "objc2-encode"
-version = "4.0.3"
+version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8"
+checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
 
 [[package]]
 name = "objc2-foundation"
@@ -4250,9 +4250,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.43"
+version = "0.38.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6"
+checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
 dependencies = [
  "bitflags 2.8.0",
  "errno",
@@ -6239,9 +6239,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
+checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243"
 
 [[package]]
 name = "unicode-segmentation"

+ 5 - 5
bin/app/Makefile

@@ -14,9 +14,9 @@ SRC = \
 RELEASE_FEATURES = --features=enable-plugins
 DEBUG_FEATURES = --features=enable-filelog,enable-plugins
 
-#FEATURES = --features=enable-filelog,enable-netdebug,emulate-android
-#FEATURES = --features=enable-filelog,enable-netdebug,enable-plugins
-DEV_FEATURES = --features=enable-filelog,enable-netdebug
+#DEV_FEATURES = --features=enable-filelog,enable-netdebug,emulate-android
+DEV_FEATURES = --features=enable-filelog,enable-netdebug,enable-plugins
+#DEV_FEATURES = --features=enable-filelog,enable-netdebug
 
 default: build-release
 	./darkfi-app
@@ -41,10 +41,10 @@ win-debug: $(SRC) fonts
 	-mv target/debug/darkfi-app.exe .
 android-release: $(SRC) fonts
 	podman run -v $(shell pwd)/../../:/root/darkfi -w /root/darkfi/bin/app/ -t apk cargo quad-apk build --release $(RELEASE_FEATURES)
-	-mv $(RELEASE_APK) .
+	-mv $(RELEASE_APK) darkfi-app.apk
 android-debug: $(SRC) fonts
 	podman run -v $(shell pwd)/../../:/root/darkfi -w /root/darkfi/bin/app/ -t apk cargo quad-apk build $(DEBUG_FEATURES)
-	-mv $(DEBUG_APK) .
+	-mv $(DEBUG_APK) darkfi-app_debug.apk
 
 build-release: $(SRC) fonts
 	cargo build --release $(RELEASE_FEATURES)

+ 10 - 7
bin/app/src/ui/editbox/repeat.rs

@@ -45,28 +45,31 @@ impl PressedKeysSmoothRepeat {
     }
 
     pub fn key_down(&mut self, key: PressedKey, repeat: bool) -> u32 {
-        //debug!(target: "PressedKeysSmoothRepeat", "key_down({:?}, {})", key, repeat);
+        trace!(target: "PressedKeysSmoothRepeat", "key_down({:?}, {})", key, repeat);
 
         let is_initial_keypress = !repeat;
         if is_initial_keypress {
-            //debug!(target: "PressedKeysSmoothRepeat", "remove key {:?}", key);
+            trace!(target: "PressedKeysSmoothRepeat", "remove key {:?}", key);
             self.pressed_keys.remove(&key);
             return 1;
         }
 
         // Insert key if not exists
         if !self.pressed_keys.contains_key(&key) {
-            //debug!(target: "PressedKeysSmoothRepeat", "insert key {:?}", key);
+            trace!(target: "PressedKeysSmoothRepeat", "insert key {:?}", key);
             self.pressed_keys.insert(key.clone(), RepeatingKeyTimer::new());
         }
 
         let repeater = self.pressed_keys.get_mut(&key).expect("repeat map");
-        repeater.update(self.start_delay, self.step_time)
+        let actions = repeater.update(self.start_delay, self.step_time);
+        // This is a temporary workaround due to a miniquad issue.
+        // See https://github.com/not-fl3/miniquad/issues/517
+        std::cmp::min(1, actions)
     }
 
     /*
     fn key_up(&mut self, key: &PressedKey) {
-        //debug!(target: "PressedKeysSmoothRepeat", "key_up({:?})", key);
+        //trace!(target: "PressedKeysSmoothRepeat", "key_up({:?})", key);
         assert!(self.pressed_keys.contains_key(key));
         self.pressed_keys.remove(key).expect("key was pressed");
     }
@@ -85,8 +88,8 @@ impl RepeatingKeyTimer {
 
     fn update(&mut self, start_delay: u32, step_time: u32) -> u32 {
         let elapsed = self.start.elapsed().as_millis();
-        //debug!(target: "RepeatingKeyTimer", "update() elapsed={}, actions={}",
-        //       elapsed, self.actions);
+        trace!(target: "RepeatingKeyTimer", "update() elapsed={}, actions={}",
+               elapsed, self.actions);
         if elapsed < start_delay as u128 {
             return 0
         }