You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-20 14:45:44 +00:00
Fix Chinese characters were not displayed correctly in DBusMessage
On OS with Chinese locale, you might receive the following message
when running an editor using the `--verbose` option:
```
ERROR: Error on D-Bus communication: æªæ ¾å°è¯·æ±ç
设置
at: read_setting (platform/linuxbsd/freedesktop_portal_desktop.cpp:144)
```
This commit is contained in:
@@ -121,7 +121,7 @@ bool FreeDesktopPortalDesktop::read_setting(const char *p_namespace, const char
|
|||||||
DBusConnection *bus = dbus_bus_get(DBUS_BUS_SESSION, &error);
|
DBusConnection *bus = dbus_bus_get(DBUS_BUS_SESSION, &error);
|
||||||
if (dbus_error_is_set(&error)) {
|
if (dbus_error_is_set(&error)) {
|
||||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||||
ERR_PRINT(vformat("Error opening D-Bus connection: %s", error.message));
|
ERR_PRINT(vformat("Error opening D-Bus connection: %s", String::utf8(error.message)));
|
||||||
}
|
}
|
||||||
dbus_error_free(&error);
|
dbus_error_free(&error);
|
||||||
unsupported = true;
|
unsupported = true;
|
||||||
@@ -141,7 +141,7 @@ bool FreeDesktopPortalDesktop::read_setting(const char *p_namespace, const char
|
|||||||
dbus_message_unref(message);
|
dbus_message_unref(message);
|
||||||
if (dbus_error_is_set(&error)) {
|
if (dbus_error_is_set(&error)) {
|
||||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||||
ERR_PRINT(vformat("Error on D-Bus communication: %s", error.message));
|
ERR_PRINT(vformat("Failed to read %s in %s, due to error on D-Bus communication: %s", p_key, p_namespace, String::utf8(error.message)));
|
||||||
}
|
}
|
||||||
dbus_error_free(&error);
|
dbus_error_free(&error);
|
||||||
dbus_connection_unref(bus);
|
dbus_connection_unref(bus);
|
||||||
@@ -532,7 +532,7 @@ bool FreeDesktopPortalDesktop::color_picker(const String &p_xid, const Callable
|
|||||||
cd.filter = vformat("type='signal',sender='org.freedesktop.portal.Desktop',path='%s',interface='org.freedesktop.portal.Request',member='Response',destination='%s'", path, dbus_unique_name);
|
cd.filter = vformat("type='signal',sender='org.freedesktop.portal.Desktop',path='%s',interface='org.freedesktop.portal.Request',member='Response',destination='%s'", path, dbus_unique_name);
|
||||||
dbus_bus_add_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
dbus_bus_add_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
||||||
if (dbus_error_is_set(&err)) {
|
if (dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to add DBus match: %s", err.message));
|
ERR_PRINT(vformat("Failed to add DBus match: %s", String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -553,7 +553,7 @@ bool FreeDesktopPortalDesktop::color_picker(const String &p_xid, const Callable
|
|||||||
dbus_message_unref(message);
|
dbus_message_unref(message);
|
||||||
|
|
||||||
if (!reply || dbus_error_is_set(&err)) {
|
if (!reply || dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to send DBus message: %s", err.message));
|
ERR_PRINT(vformat("Failed to call remote method PickColor, due to DBus error: %s", String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
dbus_bus_remove_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
dbus_bus_remove_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
||||||
return false;
|
return false;
|
||||||
@@ -569,14 +569,14 @@ bool FreeDesktopPortalDesktop::color_picker(const String &p_xid, const Callable
|
|||||||
if (String::utf8(new_path) != path) {
|
if (String::utf8(new_path) != path) {
|
||||||
dbus_bus_remove_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
dbus_bus_remove_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
||||||
if (dbus_error_is_set(&err)) {
|
if (dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to remove DBus match: %s", err.message));
|
ERR_PRINT(vformat("Failed to remove DBus match: %s", String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
cd.filter = String::utf8(new_path);
|
cd.filter = String::utf8(new_path);
|
||||||
dbus_bus_add_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
dbus_bus_add_match(monitor_connection, cd.filter.utf8().get_data(), &err);
|
||||||
if (dbus_error_is_set(&err)) {
|
if (dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to add DBus match: %s", err.message));
|
ERR_PRINT(vformat("Failed to add DBus match: %s", String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -723,7 +723,7 @@ Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_windo
|
|||||||
fd.filter = vformat("type='signal',sender='org.freedesktop.portal.Desktop',path='%s',interface='org.freedesktop.portal.Request',member='Response',destination='%s'", path, dbus_unique_name);
|
fd.filter = vformat("type='signal',sender='org.freedesktop.portal.Desktop',path='%s',interface='org.freedesktop.portal.Request',member='Response',destination='%s'", path, dbus_unique_name);
|
||||||
dbus_bus_add_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
dbus_bus_add_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
||||||
if (dbus_error_is_set(&err)) {
|
if (dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to add DBus match: %s", err.message));
|
ERR_PRINT(vformat("Failed to add DBus match: %s", String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
@@ -765,7 +765,7 @@ Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_windo
|
|||||||
dbus_message_unref(message);
|
dbus_message_unref(message);
|
||||||
|
|
||||||
if (!reply || dbus_error_is_set(&err)) {
|
if (!reply || dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to send DBus message: %s", err.message));
|
ERR_PRINT(vformat("Failed to call remote method %s, due to DBus error: %s", method, String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
dbus_bus_remove_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
dbus_bus_remove_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
||||||
return FAILED;
|
return FAILED;
|
||||||
@@ -781,14 +781,14 @@ Error FreeDesktopPortalDesktop::file_dialog_show(DisplayServer::WindowID p_windo
|
|||||||
if (String::utf8(new_path) != path) {
|
if (String::utf8(new_path) != path) {
|
||||||
dbus_bus_remove_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
dbus_bus_remove_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
||||||
if (dbus_error_is_set(&err)) {
|
if (dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to remove DBus match: %s", err.message));
|
ERR_PRINT(vformat("Failed to remove DBus match: %s", String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
fd.filter = String::utf8(new_path);
|
fd.filter = String::utf8(new_path);
|
||||||
dbus_bus_add_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
dbus_bus_add_match(monitor_connection, fd.filter.utf8().get_data(), &err);
|
||||||
if (dbus_error_is_set(&err)) {
|
if (dbus_error_is_set(&err)) {
|
||||||
ERR_PRINT(vformat("Failed to add DBus match: %s", err.message));
|
ERR_PRINT(vformat("Failed to add DBus match: %s", String::utf8(err.message)));
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
return FAILED;
|
return FAILED;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user