commit
ea4df9ebc1
@ -438,7 +438,6 @@ class _DesktopHomePageState extends State<DesktopHomePage>
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
bind.mainStartGrabKeyboard();
|
|
||||||
_updateTimer = periodic_immediate(const Duration(seconds: 1), () async {
|
_updateTimer = periodic_immediate(const Duration(seconds: 1), () async {
|
||||||
await gFFI.serverModel.fetchID();
|
await gFFI.serverModel.fetchID();
|
||||||
final url = await bind.mainGetSoftwareUpdateUrl();
|
final url = await bind.mainGetSoftwareUpdateUrl();
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hbb/common.dart';
|
import 'package:flutter_hbb/common.dart';
|
||||||
import 'package:flutter_hbb/desktop/pages/remote_tab_page.dart';
|
import 'package:flutter_hbb/desktop/pages/remote_tab_page.dart';
|
||||||
|
import 'package:flutter_hbb/models/platform_model.dart';
|
||||||
import 'package:flutter_hbb/desktop/widgets/refresh_wrapper.dart';
|
import 'package:flutter_hbb/desktop/widgets/refresh_wrapper.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
@ -8,7 +9,9 @@ import 'package:provider/provider.dart';
|
|||||||
class DesktopRemoteScreen extends StatelessWidget {
|
class DesktopRemoteScreen extends StatelessWidget {
|
||||||
final Map<String, dynamic> params;
|
final Map<String, dynamic> params;
|
||||||
|
|
||||||
const DesktopRemoteScreen({Key? key, required this.params}) : super(key: key);
|
DesktopRemoteScreen({Key? key, required this.params}) : super(key: key) {
|
||||||
|
bind.mainStartGrabKeyboard();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -7,7 +7,9 @@ use crate::flutter::FlutterHandler;
|
|||||||
use crate::ui::remote::SciterHandler;
|
use crate::ui::remote::SciterHandler;
|
||||||
use crate::ui_session_interface::Session;
|
use crate::ui_session_interface::Session;
|
||||||
use hbb_common::{log, message_proto::*};
|
use hbb_common::{log, message_proto::*};
|
||||||
use rdev::{Event, EventType, Key, GrabError};
|
#[cfg(target_os = "linux")]
|
||||||
|
use rdev::GrabError;
|
||||||
|
use rdev::{Event, EventType, Key};
|
||||||
use std::{
|
use std::{
|
||||||
collections::{HashMap, HashSet},
|
collections::{HashMap, HashSet},
|
||||||
sync::{
|
sync::{
|
||||||
@ -594,7 +596,8 @@ pub fn legacy_keyboard_mode(event: &Event, key_event: &mut KeyEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn map_keyboard_mode(event: &Event, key_event: &mut KeyEvent) {
|
pub fn map_keyboard_mode(event: &Event, key_event: &mut KeyEvent) {
|
||||||
let peer = get_peer_platform();
|
let mut peer = get_peer_platform().to_lowercase();
|
||||||
|
peer.retain(|c| !c.is_whitespace());
|
||||||
|
|
||||||
let key = match event.event_type {
|
let key = match event.event_type {
|
||||||
EventType::KeyPress(key) => {
|
EventType::KeyPress(key) => {
|
||||||
@ -608,8 +611,8 @@ pub fn map_keyboard_mode(event: &Event, key_event: &mut KeyEvent) {
|
|||||||
_ => return,
|
_ => return,
|
||||||
};
|
};
|
||||||
let keycode: u32 = match peer.as_str() {
|
let keycode: u32 = match peer.as_str() {
|
||||||
"Windows" => rdev::win_keycode_from_key(key).unwrap_or_default().into(),
|
"windows" => rdev::win_keycode_from_key(key).unwrap_or_default().into(),
|
||||||
"MacOS" => rdev::macos_keycode_from_key(key).unwrap_or_default().into(),
|
"macos" => rdev::macos_keycode_from_key(key).unwrap_or_default().into(),
|
||||||
_ => rdev::linux_keycode_from_key(key).unwrap_or_default().into(),
|
_ => rdev::linux_keycode_from_key(key).unwrap_or_default().into(),
|
||||||
};
|
};
|
||||||
key_event.set_chr(keycode);
|
key_event.set_chr(keycode);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user