Skip to content

Commit

Permalink
Merge pull request #14 from zhangbo8418/master
Browse files Browse the repository at this point in the history
Test
  • Loading branch information
zhangbo8418 authored Dec 6, 2024
2 parents 89c8e0a + 1998f79 commit b6534ce
Show file tree
Hide file tree
Showing 17 changed files with 22 additions and 153 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/playground.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
# vcpkg version: 2024.06.15
VCPKG_COMMIT_ID: "f7423ee180c4b7f40d43402c2feb3859161ef625"
VERSION: "1.3.4"
VERSION: "1.3.5"
NDK_VERSION: "r26d"
#signing keys env variable checks
ANDROID_SIGNING_KEY: "${{ secrets.ANDROID_SIGNING_KEY }}"
Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rustdesk"
version = "1.3.4"
version = "1.3.5"
authors = ["rustdesk <[email protected]>"]
edition = "2021"
build= "build.rs"
Expand Down
2 changes: 1 addition & 1 deletion appimage/AppImageBuilder-aarch64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ AppDir:
id: rustdesk
name: rustdesk
icon: rustdesk
version: 1.3.4
version: 1.3.5
exec: usr/lib/rustdesk/rustdesk
exec_args: $@
apt:
Expand Down
2 changes: 1 addition & 1 deletion appimage/AppImageBuilder-x86_64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ AppDir:
id: rustdesk
name: rustdesk
icon: rustdesk
version: 1.3.4
version: 1.3.5
exec: usr/lib/rustdesk/rustdesk
exec_args: $@
apt:
Expand Down
30 changes: 0 additions & 30 deletions flutter/lib/common.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'dart:async';
import 'dart:convert';
import 'dart:math';
import 'dart:io';

import 'package:back_button_interceptor/back_button_interceptor.dart';
import 'package:desktop_multi_window/desktop_multi_window.dart';
Expand Down Expand Up @@ -3460,35 +3459,6 @@ Widget buildPresetPasswordWarning() {
);
}

bool get isLinuxMateDesktop =>
isLinux &&
(Platform.environment['XDG_CURRENT_DESKTOP']?.toLowerCase() == 'mate' ||
Platform.environment['XDG_SESSION_DESKTOP']?.toLowerCase() == 'mate' ||
Platform.environment['DESKTOP_SESSION']?.toLowerCase() == 'mate');

Map<String, dynamic>? _linuxOsDistro;

String getLinuxOsDistroId() {
if (_linuxOsDistro == null) {
String osInfo = bind.getOsDistroInfo();
if (osInfo.isEmpty) {
_linuxOsDistro = {};
} else {
try {
_linuxOsDistro = jsonDecode(osInfo);
} catch (e) {
debugPrint('Failed to parse os info: $e');
// Don't call `bind.getOsDistroInfo()` again if failed to parse osInfo.
_linuxOsDistro = {};
}
}
}
return (_linuxOsDistro?['id'] ?? '') as String;
}

bool get isLinuxMint =>
getLinuxOsDistroId().toLowerCase().contains('linuxmint');

// https://github.com/leanflutter/window_manager/blob/87dd7a50b4cb47a375b9fc697f05e56eea0a2ab3/lib/src/widgets/virtual_window_frame.dart#L44
Widget buildVirtualWindowFrame(BuildContext context, Widget child) {
boxShadow() => isMainDesktopWindow
Expand Down
11 changes: 1 addition & 10 deletions flutter/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -485,16 +485,7 @@ class _AppState extends State<App> with WidgetsBindingObserver {
child = keyListenerBuilder(context, child);
}
if (isLinux) {
// `(!(isLinuxMateDesktop || isLinuxMint))` is not used here for clarity.
// `isLinuxMint` will call ffi function.
if (!isLinuxMateDesktop) {
if (!isLinuxMint) {
debugPrint(
'Linux distro is not linuxmint, and desktop is not mate, '
'so we build virtual window frame.');
child = buildVirtualWindowFrame(context, child);
}
}
child = buildVirtualWindowFrame(context, child);
}
return child;
},
Expand Down
4 changes: 0 additions & 4 deletions flutter/lib/web/bridge.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1848,9 +1848,5 @@ class RustdeskImpl {
throw UnimplementedError("sessionGetConnToken");
}

String getOsDistroInfo({dynamic hint}) {
return '';
}

void dispose() {}
}
69 changes: 7 additions & 62 deletions flutter/linux/my_application.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ struct _MyApplication {

G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)

GtkWidget *find_gl_area(GtkWidget *widget);
void try_set_transparent(GtkWindow* window, GdkScreen* screen, FlView* view);

extern bool gIsConnectionManager;

GtkWidget *find_gl_area(GtkWidget *widget);
void try_set_transparent(GtkWindow* window, GdkScreen* screen, FlView* view);

// Implements GApplication::activate.
static void my_application_activate(GApplication* application) {
Expand Down Expand Up @@ -70,17 +72,18 @@ static void my_application_activate(GApplication* application) {
height = 490;
}
gtk_window_set_default_size(window, width, height); // <-- comment this line
gtk_widget_show(GTK_WIDGET(window));
// gtk_widget_show(GTK_WIDGET(window));
gtk_widget_set_opacity(GTK_WIDGET(window), 0);

g_autoptr(FlDartProject) project = fl_dart_project_new();
fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);

FlView* view = fl_view_new(project);
gtk_widget_show(GTK_WIDGET(view));
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));

try_set_transparent(window, screen, view);
try_set_transparent(window, gtk_window_get_screen(window), view);
gtk_widget_show(GTK_WIDGET(window));
gtk_widget_show(GTK_WIDGET(view));

fl_register_plugins(FL_PLUGIN_REGISTRY(view));

Expand Down Expand Up @@ -150,70 +153,12 @@ GtkWidget *find_gl_area(GtkWidget *widget)
return NULL;
}

bool is_linux_mint()
{
bool is_mint = false;
char line[256];
FILE *fp = fopen("/etc/os-release", "r");
if (fp == NULL) {
return false;
}
while (fgets(line, sizeof(line), fp)) {
if (strstr(line, "ID=linuxmint") != NULL) {
is_mint = true;
break;
}
}
fclose(fp);

return is_mint;
}

bool is_desktop_mate()
{
const char* desktop = NULL;
desktop = getenv("XDG_CURRENT_DESKTOP");
printf("Linux desktop, XDG_CURRENT_DESKTOP: %s\n", desktop == NULL ? "" : desktop);
if (desktop == NULL) {
desktop = getenv("XDG_SESSION_DESKTOP");
printf("Linux desktop, XDG_SESSION_DESKTOP: %s\n", desktop == NULL ? "" : desktop);
}
if (desktop == NULL) {
desktop = getenv("DESKTOP_SESSION");
printf("Linux desktop, DESKTOP_SESSION: %s\n", desktop == NULL ? "" : desktop);
}
if (desktop != NULL && strcasecmp(desktop, "mate") == 0) {
return true;
}
return false;
}

bool skip_setting_transparent()
{
if (is_desktop_mate()) {
printf("Linux desktop, MATE\n");
return true;
}

if (is_linux_mint()) {
printf("Linux desktop, Linux Mint\n");
return true;
}

return false;
}

// https://github.com/flutter/flutter/issues/152154
// Remove this workaround when flutter version is updated.
void try_set_transparent(GtkWindow* window, GdkScreen* screen, FlView* view)
{
GtkWidget *gl_area = NULL;

if (skip_setting_transparent()) {
printf("Skip setting transparent\n");
return;
}

printf("Try setting transparent\n");

gl_area = find_gl_area(GTK_WIDGET(view));
Expand Down
15 changes: 1 addition & 14 deletions libs/hbb_common/src/platform/linux.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,35 +13,22 @@ pub const XDG_CURRENT_DESKTOP: &str = "XDG_CURRENT_DESKTOP";

pub struct Distro {
pub name: String,
pub id: String,
pub version_id: String,
}

impl Distro {
fn new() -> Self {
// to-do:
// 1. Remove `run_cmds`, read file once
// 2. Add more distro infos
let name = run_cmds("awk -F'=' '/^NAME=/ {print $2}' /etc/os-release")
.unwrap_or_default()
.trim()
.trim_matches('"')
.to_string();
let id = run_cmds("awk -F'=' '/^ID=/ {print $2}' /etc/os-release")
.unwrap_or_default()
.trim()
.trim_matches('"')
.to_string();
let version_id = run_cmds("awk -F'=' '/^VERSION_ID=/ {print $2}' /etc/os-release")
.unwrap_or_default()
.trim()
.trim_matches('"')
.to_string();
Self {
name,
id,
version_id,
}
Self { name, version_id }
}
}

Expand Down
2 changes: 1 addition & 1 deletion libs/portable/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rustdesk-portable-packer"
version = "1.3.4"
version = "1.3.5"
edition = "2021"
description = "RustDesk Remote Desktop"

Expand Down
2 changes: 1 addition & 1 deletion res/PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
pkgname=rustdesk
pkgver=1.3.4
pkgver=1.3.5
pkgrel=0
epoch=
pkgdesc=""
Expand Down
2 changes: 1 addition & 1 deletion res/rpm-flutter-suse.spec
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: rustdesk
Version: 1.3.4
Version: 1.3.5
Release: 0
Summary: RPM package
License: GPL-3.0
Expand Down
2 changes: 1 addition & 1 deletion res/rpm-flutter.spec
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: rustdesk
Version: 1.3.4
Version: 1.3.5
Release: 0
Summary: RPM package
License: GPL-3.0
Expand Down
2 changes: 1 addition & 1 deletion res/rpm.spec
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: rustdesk
Version: 1.3.4
Version: 1.3.5
Release: 0
Summary: RPM package
License: GPL-3.0
Expand Down
20 changes: 0 additions & 20 deletions src/flutter_ffi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ use hbb_common::allow_err;
use hbb_common::{
config::{self, LocalConfig, PeerConfig, PeerInfoSerde},
fs, lazy_static, log,
message_proto::Hash,
rendezvous_proto::ConnType,
ResultType,
};
Expand Down Expand Up @@ -2343,25 +2342,6 @@ pub fn main_audio_support_loopback() -> SyncReturn<bool> {
SyncReturn(is_surpport)
}

pub fn get_os_distro_info() -> SyncReturn<String> {
#[cfg(target_os = "linux")]
{
let distro = &hbb_common::platform::linux::DISTRO;
SyncReturn(
serde_json::to_string(&HashMap::from([
("name", distro.name.clone()),
("id", distro.id.clone()),
("version_id", distro.version_id.clone()),
]))
.unwrap_or_default(),
)
}
#[cfg(not(target_os = "linux"))]
{
SyncReturn("".to_owned())
}
}

#[cfg(target_os = "android")]
pub mod server_side {
use hbb_common::{config, log};
Expand Down
2 changes: 1 addition & 1 deletion src/lang/uk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Paste", "Вставити"),
("Paste here?", "Вставити сюди?"),
("Are you sure to close the connection?", "Ви впевнені, що хочете завершити підключення?"),
("Download new version", "Отримайте нову версію"),
("Download new version", "Завантажити нову версію"),
("Touch mode", "Сенсорний режим"),
("Mouse mode", "Режим миші"),
("One-Finger Tap", "Дотик одним пальцем"),
Expand Down

0 comments on commit b6534ce

Please sign in to comment.