kiran-cc-daemon/0001-feature-display-The-scaling-rate-can-only-take-effec.patch
tangjie02 6eb612a5fd The scaling rate can only take effect after logging out and logging in again.
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
2022-08-16 20:02:00 +08:00

796 lines
34 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 1137721a530370a171ea437dafa369384d414348 Mon Sep 17 00:00:00 2001
From: tangjie02 <tangjie02@kylinsec.com.cn>
Date: Tue, 16 Aug 2022 17:54:17 +0800
Subject: [PATCH] feature(display): The scaling rate can only take effect after
logging out and logging in again.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 缩放率改为默认注销后重新登录才能生效
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
---
.../com.kylinsec.kiran.display.gschema.xml.in | 4 +
include/display_i.h | 2 +
plugins/display/display-manager.cpp | 80 ++++++-----
plugins/display/display-manager.h | 3 +-
...kylinsec.Kiran.SessionDaemon.XSettings.xml | 7 +
plugins/xsettings/xsettings-manager.cpp | 11 +-
plugins/xsettings/xsettings-manager.h | 1 +
plugins/xsettings/xsettings-registry.cpp | 18 ++-
plugins/xsettings/xsettings-registry.h | 9 +-
po/POTFILES.in | 12 +-
po/zh_CN.po | 132 ++++++++++--------
11 files changed, 168 insertions(+), 111 deletions(-)
diff --git a/data/schemas/com.kylinsec.kiran.display.gschema.xml.in b/data/schemas/com.kylinsec.kiran.display.gschema.xml.in
index 536f3c4..ea752a8 100644
--- a/data/schemas/com.kylinsec.kiran.display.gschema.xml.in
+++ b/data/schemas/com.kylinsec.kiran.display.gschema.xml.in
@@ -14,5 +14,9 @@
<description>Layout of connected monitors in the screen.</description>
</key>
+ <key name="dynamic-scaling-window" type="b">
+ <default>false</default>
+ <description>It takes effect immediately when the scaling factor of window is changed.</description>
+ </key>
</schema>
</schemalist>
diff --git a/include/display_i.h b/include/display_i.h
index 56ef7b1..0b6bc17 100644
--- a/include/display_i.h
+++ b/include/display_i.h
@@ -39,6 +39,8 @@ extern "C"
#define DISPLAY_OBJECT_PATH "/com/kylinsec/Kiran/SessionDaemon/Display"
#define DISPLAY_DBUS_INTERFACE_NAME "com.kylinsec.Kiran.SessionDaemon.Display"
+#define DISPLAY_SCHEMA_DYNAMIC_SCALING_WINDOW "dynamic-scaling-window"
+
// 显示模式,只有在下列情况会使用显示模式进行设置:
// 1. 程序第一次启动
// 2. 有连接设备删除和添加时
diff --git a/plugins/display/display-manager.cpp b/plugins/display/display-manager.cpp
index ff9151f..5c7c5b3 100644
--- a/plugins/display/display-manager.cpp
+++ b/plugins/display/display-manager.cpp
@@ -16,6 +16,7 @@
#include <fstream>
+#include <glib/gi18n.h>
#include "config.h"
#include "lib/base/base.h"
#include "plugins/display/display-util.h"
@@ -34,6 +35,8 @@ namespace Kiran
DisplayManager::DisplayManager(XrandrManager *xrandr_manager) : xrandr_manager_(xrandr_manager),
default_style_(DisplayStyle::DISPLAY_STYLE_EXTEND),
+ window_scaling_factor_(0),
+ dynamic_scaling_window_(false),
dbus_connect_id_(0),
object_register_id_(0)
{
@@ -180,10 +183,28 @@ void DisplayManager::SetWindowScalingFactor(gint32 window_scaling_factor, Method
{
KLOG_PROFILE("");
+ if (this->window_scaling_factor_get() == window_scaling_factor)
+ {
+ invocation.ret();
+ return;
+ }
+
+ if (!this->dynamic_scaling_window_)
+ {
+ std::string standard_error;
+ auto command_line = fmt::format("/usr/bin/notify-send \"{0}\"", _("The scaling rate can only take effect after logging out and logging in again"));
+ Glib::spawn_command_line_sync(command_line, nullptr, &standard_error);
+ if (!standard_error.empty())
+ {
+ KLOG_WARNING("Failed to run notify-send: %s", standard_error.c_str());
+ }
+ }
+
if (!this->window_scaling_factor_set(window_scaling_factor))
{
DBUS_ERROR_REPLY_AND_RET(CCErrorCode::ERROR_DISPLAY_SET_WINDOW_SCALING_FACTOR_2);
}
+
invocation.ret();
}
@@ -222,7 +243,6 @@ void DisplayManager::init()
this->load_config();
this->display_settings_->signal_changed().connect(sigc::mem_fun(this, &DisplayManager::display_settings_changed));
- this->xsettings_settings_->signal_changed().connect(sigc::mem_fun(this, &DisplayManager::xsettings_settings_changed));
this->xrandr_manager_->signal_resources_changed().connect(sigc::mem_fun(this, &DisplayManager::resources_changed));
this->dbus_connect_id_ = Gio::DBus::own_name(Gio::DBus::BUS_TYPE_SESSION,
@@ -236,21 +256,25 @@ void DisplayManager::init()
{
KLOG_WARNING("%s.", CC_ERROR2STR(error_code).c_str());
}
+
+ /* window_scaling_factor的初始化顺序
+ 1. 先读取xsettings中的window-scaling-factor属性; (load_settings)
+ 2. 读取monitor.xml中维护的window-scaling-factor值 switch_style_and_save
+ 3. 如果第2步和第1步的值不相同则说明在上一次进入会话时用户修改了缩放率需要在这一次进入会话时生效
+ 因此需要将monitor.xml中的缩放率更新到xsettings中的window-scaling-factor属性中*/
+ if (this->window_scaling_factor_ != this->xsettings_settings_->get_int(XSETTINGS_SCHEMA_WINDOW_SCALING_FACTOR))
+ {
+ this->xsettings_settings_->set_int(XSETTINGS_SCHEMA_WINDOW_SCALING_FACTOR, this->window_scaling_factor_);
+ }
}
void DisplayManager::load_settings()
{
KLOG_PROFILE("settings: %p.", this->display_settings_.get());
- if (this->display_settings_)
- {
- this->default_style_ = DisplayStyle(this->display_settings_->get_enum(DISPLAY_SCHEMA_STYLE));
- }
-
- if (this->xsettings_settings_)
- {
- this->window_scaling_factor_ = this->xsettings_settings_->get_int(XSETTINGS_SCHEMA_WINDOW_SCALING_FACTOR);
- }
+ this->default_style_ = DisplayStyle(this->display_settings_->get_enum(DISPLAY_SCHEMA_STYLE));
+ this->dynamic_scaling_window_ = this->display_settings_->get_boolean(DISPLAY_SCHEMA_DYNAMIC_SCALING_WINDOW);
+ this->window_scaling_factor_ = this->xsettings_settings_->get_int(XSETTINGS_SCHEMA_WINDOW_SCALING_FACTOR);
}
void DisplayManager::load_monitors()
@@ -505,12 +529,15 @@ bool DisplayManager::save_config(CCErrorCode &error_code)
bool DisplayManager::apply(CCErrorCode &error_code)
{
- // 应用缩放因子
- auto variant_value = Glib::Variant<gint32>::create(this->window_scaling_factor_);
- if (!this->xsettings_settings_->set_value(XSETTINGS_SCHEMA_WINDOW_SCALING_FACTOR, variant_value))
+ if (this->dynamic_scaling_window_)
{
- error_code = CCErrorCode::ERROR_DISPLAY_SET_WINDOW_SCALING_FACTOR_1;
- return false;
+ // 应用缩放因子
+ auto variant_value = Glib::Variant<gint32>::create(this->window_scaling_factor_);
+ if (!this->xsettings_settings_->set_value(XSETTINGS_SCHEMA_WINDOW_SCALING_FACTOR, variant_value))
+ {
+ error_code = CCErrorCode::ERROR_DISPLAY_SET_WINDOW_SCALING_FACTOR_1;
+ return false;
+ }
}
// 应用xrandr
@@ -652,10 +679,11 @@ ModeInfoVec DisplayManager::monitors_common_modes(const DisplayMonitorVec &monit
for (uint32_t i = 1; i < monitors.size(); ++i)
{
auto monitor = monitors[i];
- auto iter = std::remove_if(result.begin(), result.end(), [monitor](std::shared_ptr<ModeInfo> mode) -> bool {
- auto modes = monitor->get_modes_by_size(mode->width, mode->height);
- return (modes.size() == 0);
- });
+ auto iter = std::remove_if(result.begin(), result.end(), [monitor](std::shared_ptr<ModeInfo> mode) -> bool
+ {
+ auto modes = monitor->get_modes_by_size(mode->width, mode->height);
+ return (modes.size() == 0);
+ });
result.erase(iter, result.end());
}
@@ -829,20 +857,6 @@ void DisplayManager::display_settings_changed(const Glib::ustring &key)
}
}
-void DisplayManager::xsettings_settings_changed(const Glib::ustring &key)
-{
- KLOG_PROFILE("key: %s.", key.c_str());
-
- switch (shash(key.c_str()))
- {
- case CONNECT(XSETTINGS_SCHEMA_WINDOW_SCALING_FACTOR, _hash):
- {
- this->window_scaling_factor_ = this->xsettings_settings_->get_int(key);
- }
- break;
- }
-}
-
void DisplayManager::on_bus_acquired(const Glib::RefPtr<Gio::DBus::Connection> &connect, Glib::ustring name)
{
KLOG_PROFILE("name: %s", name.c_str());
diff --git a/plugins/display/display-manager.h b/plugins/display/display-manager.h
index 1dbb50d..773fe90 100644
--- a/plugins/display/display-manager.h
+++ b/plugins/display/display-manager.h
@@ -120,7 +120,6 @@ private:
void resources_changed();
void display_settings_changed(const Glib::ustring& key);
- void xsettings_settings_changed(const Glib::ustring& key);
void on_bus_acquired(const Glib::RefPtr<Gio::DBus::Connection>& connect, Glib::ustring name);
void on_name_acquired(const Glib::RefPtr<Gio::DBus::Connection>& connect, Glib::ustring name);
@@ -142,6 +141,8 @@ private:
std::string primary_;
// 窗口缩放率
int32_t window_scaling_factor_;
+ // 开启动态缩放窗口
+ bool dynamic_scaling_window_;
std::map<uint32_t, std::shared_ptr<DisplayMonitor>> monitors_;
diff --git a/plugins/xsettings/com.kylinsec.Kiran.SessionDaemon.XSettings.xml b/plugins/xsettings/com.kylinsec.Kiran.SessionDaemon.XSettings.xml
index d9a23da..cbe1b43 100644
--- a/plugins/xsettings/com.kylinsec.Kiran.SessionDaemon.XSettings.xml
+++ b/plugins/xsettings/com.kylinsec.Kiran.SessionDaemon.XSettings.xml
@@ -70,5 +70,12 @@
<description>Set the XSettings Registry value whose type is color.</description>
</method>
+ <signal name="PropertiesChanged">
+ <arg type="as" name="names">
+ <summary>The XSettings Registry property name list.</summary>
+ </arg>
+ <description>Emit this signal when XSettings Registry property is changed.</description>
+ </signal>
+
</interface>
</node>
diff --git a/plugins/xsettings/xsettings-manager.cpp b/plugins/xsettings/xsettings-manager.cpp
index 9612a85..61c914b 100644
--- a/plugins/xsettings/xsettings-manager.cpp
+++ b/plugins/xsettings/xsettings-manager.cpp
@@ -190,6 +190,7 @@ void XSettingsManager::init()
screen->signal_size_changed().connect(sigc::mem_fun(this, &XSettingsManager::on_screen_changed));
screen->signal_monitors_changed().connect(sigc::mem_fun(this, &XSettingsManager::on_screen_changed));
this->fontconfig_monitor_.signal_timestamp_changed().connect(sigc::mem_fun(this, &XSettingsManager::on_fontconfig_timestamp_changed));
+ this->registry_.signal_properties_changed().connect(sigc::mem_fun(this, &XSettingsManager::on_properties_changed));
this->dbus_connect_id_ = Gio::DBus::own_name(Gio::DBus::BUS_TYPE_SESSION,
XSETTINGS_DBUS_NAME,
@@ -207,8 +208,6 @@ void XSettingsManager::load_from_settings()
// 这里不做通知,等初始化完后统一通知
this->settings_changed(key, false);
}
- // 这里统一通知
- this->registry_.notify();
}
void XSettingsManager::settings_changed(const Glib::ustring &key, bool is_notify)
@@ -300,7 +299,6 @@ void XSettingsManager::settings_changed(const Glib::ustring &key, bool is_notify
if (is_notify)
{
this->xsettings_changed_.emit(key.raw());
- this->registry_.notify();
}
}
@@ -406,7 +404,6 @@ void XSettingsManager::on_screen_changed()
{
this->scale_settings();
}
- this->registry_.notify();
}
bool XSettingsManager::delayed_toggle_bg_draw(bool value)
@@ -423,7 +420,11 @@ void XSettingsManager::on_fontconfig_timestamp_changed()
{
int32_t timestamp = time(NULL);
this->registry_.update(XSETTINGS_REGISTRY_PROP_FONTCONFIG_TIMESTAMP, timestamp);
- this->registry_.notify();
+}
+
+void XSettingsManager::on_properties_changed(const std::vector<Glib::ustring> &properties)
+{
+ this->PropertiesChanged_signal.emit(properties);
}
void XSettingsManager::set_registry_var(std::shared_ptr<XSettingsPropertyBase> var, MethodInvocation &invocation)
diff --git a/plugins/xsettings/xsettings-manager.h b/plugins/xsettings/xsettings-manager.h
index 84e5c55..ce69ef9 100644
--- a/plugins/xsettings/xsettings-manager.h
+++ b/plugins/xsettings/xsettings-manager.h
@@ -68,6 +68,7 @@ private:
void on_screen_changed();
bool delayed_toggle_bg_draw(bool value);
void on_fontconfig_timestamp_changed();
+ void on_properties_changed(const std::vector<Glib::ustring> &properties);
void set_registry_var(std::shared_ptr<XSettingsPropertyBase> var, MethodInvocation &invocation);
diff --git a/plugins/xsettings/xsettings-registry.cpp b/plugins/xsettings/xsettings-registry.cpp
index bd95671..13472de 100644
--- a/plugins/xsettings/xsettings-registry.cpp
+++ b/plugins/xsettings/xsettings-registry.cpp
@@ -236,8 +236,15 @@ bool XSettingsRegistry::update(std::shared_ptr<XSettingsPropertyBase> var)
return true;
}
+ this->changed_properties_.push_back(var->get_name());
this->properties_.erase(var->get_name());
auto iter = this->properties_.emplace(var->get_name(), var);
+
+ // 空闲时修改因为update可能会被连续调用多次。
+ if (!this->notify_handler_)
+ {
+ this->notify_handler_ = Glib::signal_idle().connect(sigc::mem_fun(this, &XSettingsRegistry::notify));
+ }
return iter.second;
}
@@ -261,9 +268,10 @@ XSettingsPropertyBaseVec XSettingsRegistry::get_properties()
return retval;
}
-void XSettingsRegistry::notify()
+bool XSettingsRegistry::notify()
{
- KLOG_PROFILE("");
+ KLOG_DEBUG("Notify properties changed to other client.");
+
std::string data;
// 注意:填充的相关变量类型不能随意修改
@@ -276,7 +284,6 @@ void XSettingsRegistry::notify()
data.append(std::string((char *)&nsettings, 4));
// 填充body
-
for (const auto &iter : this->properties_)
{
data.append(iter.second->serialize());
@@ -290,6 +297,11 @@ void XSettingsRegistry::notify()
PropModeReplace,
(unsigned char *)data.c_str(),
data.length());
+
+ auto changed_properties = std::move(this->changed_properties_);
+ this->properties_changed_.emit(changed_properties);
+
+ return false;
}
char XSettingsRegistry::byte_order()
diff --git a/plugins/xsettings/xsettings-registry.h b/plugins/xsettings/xsettings-registry.h
index 8a39051..d8aa238 100644
--- a/plugins/xsettings/xsettings-registry.h
+++ b/plugins/xsettings/xsettings-registry.h
@@ -126,12 +126,13 @@ public:
bool update(const std::string &name, const XSettingsColor &value);
bool update(std::shared_ptr<XSettingsPropertyBase> var);
- void notify();
-
std::shared_ptr<XSettingsPropertyBase> get_property(const std::string &name);
XSettingsPropertyBaseVec get_properties();
+ sigc::signal<void, std::vector<Glib::ustring>> signal_properties_changed() { return this->properties_changed_; };
+
private:
+ bool notify();
char byte_order();
private:
@@ -146,5 +147,9 @@ private:
Window xsettings_window_;
std::map<std::string, std::shared_ptr<XSettingsPropertyBase>> properties_;
+ // 记录发生变化的属性,在改变后发送信号
+ std::vector<Glib::ustring> changed_properties_;
+ sigc::connection notify_handler_;
+ sigc::signal<void, std::vector<Glib::ustring>> properties_changed_;
};
} // namespace Kiran
\ No newline at end of file
diff --git a/po/POTFILES.in b/po/POTFILES.in
index a12d2d9..5defca8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,11 +1,11 @@
# List of source files which contain translatable strings.
[encoding: UTF-8]
-[type: gettext/gsettings]data/com.kylinsec.kiran.appearance.gschema.xml.in
-[type: gettext/gsettings]data/com.kylinsec.kiran.display.gschema.xml.in
-[type: gettext/gsettings]data/com.kylinsec.kiran.keyboard.gschema.xml.in
-[type: gettext/gsettings]data/com.kylinsec.kiran.mouse.gschema.xml.in
-[type: gettext/gsettings]data/com.kylinsec.kiran.touchpad.gschema.xml.in
-[type: gettext/gsettings]data/com.kylinsec.kiran.xsettings.gschema.xml.in
+[type: gettext/gsettings]data/schemas/com.kylinsec.kiran.appearance.gschema.xml.in
+[type: gettext/gsettings]data/schemas/com.kylinsec.kiran.display.gschema.xml.in
+[type: gettext/gsettings]data/schemas/com.kylinsec.kiran.keyboard.gschema.xml.in
+[type: gettext/gsettings]data/schemas/com.kylinsec.kiran.mouse.gschema.xml.in
+[type: gettext/gsettings]data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in
+[type: gettext/gsettings]data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in
data/com.kylinsec.Kiran.SystemDaemon.Accounts.policy.in
data/com.kylinsec.Kiran.SystemDaemon.TimeDate.policy.in
data/com.kylinsec.Kiran.SystemDaemon.Greeter.policy.in
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c9f2652..0f3f202 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kiran-cc-daemon 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-08 11:05+0800\n"
+"POT-Creation-Date: 2022-08-16 17:47+0800\n"
"PO-Revision-Date: 2020-07-01 17:54+0800\n"
"Last-Translator: tangjie02 <tangjie02@kylinos.com.cn>\n"
"Language-Team: Chinese (simplified)\n"
@@ -17,58 +17,63 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../data/com.kylinsec.kiran.appearance.gschema.xml.in.h:1
+#: ../data/schemas/com.kylinsec.kiran.appearance.gschema.xml.in.h:1
msgid "File to use for the desktop background image."
msgstr "桌面背景图片的文件路径。"
-#: ../data/com.kylinsec.kiran.appearance.gschema.xml.in.h:2
+#: ../data/schemas/com.kylinsec.kiran.appearance.gschema.xml.in.h:2
msgid "File to use for the lock screen background image."
msgstr "锁屏背景图片的文件路径。"
-#: ../data/com.kylinsec.kiran.display.gschema.xml.in.h:1
+#: ../data/schemas/com.kylinsec.kiran.display.gschema.xml.in.h:1
msgid "Layout of connected monitors in the screen."
msgstr "已连接的显示器在屏幕中的位置布局。"
-#: ../data/com.kylinsec.kiran.keyboard.gschema.xml.in.h:1
+#: ../data/schemas/com.kylinsec.kiran.display.gschema.xml.in.h:2
+msgid ""
+"It takes effect immediately when the scaling factor of window is changed."
+msgstr "当窗口缩放率发生变化时立即生效。"
+
+#: ../data/schemas/com.kylinsec.kiran.keyboard.gschema.xml.in.h:1
msgid ""
"Whether repeat to trigger KeyPress and KeyRelease event when key is pressed."
msgstr "当键被长按后是否重复触发按下和弹起事件。"
-#: ../data/com.kylinsec.kiran.keyboard.gschema.xml.in.h:2
+#: ../data/schemas/com.kylinsec.kiran.keyboard.gschema.xml.in.h:2
msgid ""
"The delay time in ms after the initial press of an auto-repeating key and "
"the first generated repeat event."
msgstr "当键被按下时第一次触发按下事件的延时(毫秒)。"
-#: ../data/com.kylinsec.kiran.keyboard.gschema.xml.in.h:3
+#: ../data/schemas/com.kylinsec.kiran.keyboard.gschema.xml.in.h:3
msgid "The delay time in ms between all subsequent generated repeat events."
msgstr "当键被按下后每个按键(按下或者弹起)事件之间的间隔时间。"
-#: ../data/com.kylinsec.kiran.keyboard.gschema.xml.in.h:4
+#: ../data/schemas/com.kylinsec.kiran.keyboard.gschema.xml.in.h:4
msgid "Keyboard layouts."
msgstr "键盘布局。"
-#: ../data/com.kylinsec.kiran.keyboard.gschema.xml.in.h:5
+#: ../data/schemas/com.kylinsec.kiran.keyboard.gschema.xml.in.h:5
msgid "Keyboard options."
msgstr "键盘选项。"
-#: ../data/com.kylinsec.kiran.mouse.gschema.xml.in.h:1
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:1
+#: ../data/schemas/com.kylinsec.kiran.mouse.gschema.xml.in.h:1
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:1
msgid "Swap left and right buttons for left-handed."
msgstr "启动左手模式后,左右键功能进行切换。"
-#: ../data/com.kylinsec.kiran.mouse.gschema.xml.in.h:2
+#: ../data/schemas/com.kylinsec.kiran.mouse.gschema.xml.in.h:2
msgid "Acceleration multiplier for mouse motion."
msgstr "鼠标移动加速。"
-#: ../data/com.kylinsec.kiran.mouse.gschema.xml.in.h:3
+#: ../data/schemas/com.kylinsec.kiran.mouse.gschema.xml.in.h:3
msgid ""
"Enables middle mouse button emulation through simultaneous left and right "
"button click."
msgstr "通过同时左键和右键启用鼠标中键模拟按钮点击。"
-#: ../data/com.kylinsec.kiran.mouse.gschema.xml.in.h:4
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:6
+#: ../data/schemas/com.kylinsec.kiran.mouse.gschema.xml.in.h:4
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:6
msgid ""
"Enables or disables natural scroll. Natural scrolling is the terminology for "
"moving the content in the direction of scrolling, i.e. moving the wheel or "
@@ -77,22 +82,22 @@ msgstr ""
"启用或禁用自然滚动。自然滚动是沿滚动方向移动内容,即移动滚轮或手指向下时页面"
"向下移动。"
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:2
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:2
msgid "Indicates if diable while typing is enabled or disabled."
msgstr "打字时禁用触摸板功能。"
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:3
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:3
msgid ""
"Set this to TRUE to be able to send mouse clicks by tapping on the touchpad."
msgstr "设置为真则表示轻击触摸板触发对应的鼠标事件,例如双击等同于鼠标右键。"
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:4
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:4
msgid ""
"Enables a click method. Permitted methods are buttonareas and clickfinger, "
"respectively conreesponding to 0 and 1."
msgstr "设置单击方法。可通过按下和轻触的方式触发点击事件。"
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:5
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:5
msgid ""
"Enables a scroll method. Permitted methods are twofinger, edge and button, "
"respectively conrresponding to 0, 1 and 2."
@@ -100,146 +105,146 @@ msgstr ""
"设置滚动方法。可通过双指滑动、边缘滑动和按键(键盘中间的红色按钮)的方式触发滚"
"动操作。"
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:7
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:7
msgid "Set this to TRUE to enable all touchpads."
msgstr "开启或关闭触摸板。"
-#: ../data/com.kylinsec.kiran.touchpad.gschema.xml.in.h:8
+#: ../data/schemas/com.kylinsec.kiran.touchpad.gschema.xml.in.h:8
msgid "Acceleration multiplier for touchpad motion."
msgstr "触摸板移动加速。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:1
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:1
msgid ""
"Maximum time allowed between two clicks for them to be considered a double "
"click (in milliseconds)."
msgstr "触发双击事件时两次单击之间允许的最大时间 (毫秒)。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:2
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:2
msgid ""
"Maximum distance allowed between two clicks for them to be considered a "
"double click (in pixels)."
msgstr "触发双击事件时两次单击之间允许的最大距离 (像素)。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:3
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:3
msgid "Number of pixels the cursor can move before dragging."
msgstr "拖动前光标可以移动的像素数。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:4
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:4
msgid "Whether the cursor should blink."
msgstr "光标是否应该闪烁。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:5
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:5
msgid "Length of the cursor blink cycle, in milleseconds."
msgstr "光标闪烁周期的长度 (毫秒)。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:6
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:6
msgid "Name of gtk theme to use."
msgstr "系统使用的主题。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:7
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:7
msgid "Name of icon theme to use for icons."
msgstr "系统使用的图标主题。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:8
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:8
msgid "Whether to play sounds on user events."
msgstr "是否在用户事件中播放声音。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:9
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:9
msgid "The XDG sound theme to use for event sounds."
msgstr "用于事件声音的XDG声音主题。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:10
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:10
msgid "Whether to play sounds on input events."
msgstr "是否在输入事件上播放声音。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:11
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:11
msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default."
msgstr "是否开启Xft字体抗锯齿-1表示默认值。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:12
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:12
msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default."
msgstr "是否开启Xft字体微调-1表示默认值。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:13
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:13
msgid ""
"What degree of hinting to use; \"hintnone\", \"hintslight\", \"hintmedium\", "
"or \"hintfull\"."
msgstr "使用什么程度的微调。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:14
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:14
msgid ""
"Type of subpixel antialiasing; \"none\", \"rgb\", \"bgr\", \"vrgb\", \"vbgr"
"\"."
msgstr "抗锯齿次像素顺序。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:15
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:15
msgid ""
"Resolution for Xft, in 1024 * dots/inch. -1 to use default value. Do not "
"modify it manually."
msgstr "字体分辨率,请不要手动修改。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:16
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:16
msgid "Name of the cursor theme."
msgstr "光标主题。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:17
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:17
msgid "Size of the cursor referenced by cursor_theme."
msgstr "光标大小。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:18
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:18
msgid "Name of default font to use."
msgstr "GTK默认字体。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:19
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:19
msgid "Name of key theme RC file to load."
msgstr "GTK要加载的关键主题的名称。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:20
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:20
msgid ""
"Whether default toolbars have text only, text and icons, icons only, etc."
msgstr "默认工具栏是否只有文本、文本和图标、图标。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:21
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:21
msgid "Size of icons in default toolbars."
msgstr "默认工具栏中图标的大小。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:22
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:22
msgid "How to draw the input method preedit string."
msgstr "如何绘制输入法预编辑字符串。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:23
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:23
msgid "How to draw the input method statusbar."
msgstr "如何绘制输入法状态栏。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:24
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:24
msgid "Name of the input method module used by GTK+."
msgstr "GTK使用的输入法模块的名称。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:25
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:25
msgid "Whether images should be shown in menus."
msgstr "是否应在菜单中显示图像。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:26
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:26
msgid "Whether stock icons should be shown in buttons."
msgstr "图像是否显示在按钮中。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:27
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:27
msgid "The accelerator for moving the focus to the menubar."
msgstr "将焦点移动到菜单栏的加速器"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:28
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:28
msgid ""
"A '\\n' separated list of \"name:color\" as defined by the 'gtk-color-"
"scheme' setting"
msgstr "颜色主题"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:29
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:29
msgid ""
"Module to use as the filesystem model for the GtkFileChooser widget. "
"Possible values are \"gio\" and \"gtk+\"."
msgstr "用作GtkFileChooser小部件的文件系统模型的模块"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:30
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:30
msgid ""
"This setting determines which buttons should be put in the titlebar of "
"client-side decorated windows, and whether they should be placed at the left "
@@ -247,48 +252,48 @@ msgid ""
msgstr ""
"此设置确定哪些按钮应放在客户端装饰窗口的标题栏中,以及是否应放在右侧的左侧。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:31
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:31
msgid ""
"This setting determines where application menu will be displayed - in a "
"window or on a panel with MenuModel protocol."
msgstr ""
"此设置确定应用程序菜单的显示位置在窗口中或使用MenuModel协议的面板上。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:32
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:32
msgid ""
"This setting determines where window menubars will be displayed - in a "
"window or on a panel with MenuModel protocol."
msgstr "此设置确定窗口菜单栏的显示位置在窗口中或使用MenuModel协议的面板上"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:33
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:33
msgid ""
"Whether the context menus of entries and text views should offer to change "
"the input method."
msgstr "条目和文本视图的上下文菜单是否应提供更改输入法的功能。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:34
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:34
msgid ""
"Whether the context menus of entries and text views should offer to insert "
"control characters."
msgstr "条目和文本视图的上下文菜单是否应提供更改输入法的功能。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:35
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:35
msgid ""
"Whether mnemonics should be automatically shown and hidden when the user "
"presses the Alt key."
msgstr "当用户按Alt键时助记符是否应自动显示和隐藏。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:36
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:36
msgid ""
"If true, gtk+ uses the primary paste selection, usually triggered by a "
"middle mouse button click."
msgstr "如果为truegtk+将使用主粘贴选择,通常由鼠标中键单击触发。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:37
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:37
msgid "Whether to enable toolkit-wide animations."
msgstr "是否启用工具箱范围的动画。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:38
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:38
msgid ""
"Whether builtin GTK+ dialogs such as the file chooser, the color chooser or "
"the font chooser will use a header bar at the top to show action widgets, or "
@@ -297,13 +302,13 @@ msgstr ""
"无论是内置的GTK+对话框、文件选择器、颜色选择器或字体选择器,都将使用顶部的标"
"题栏或者底部的操作区域来显示操作小部件。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:39
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:39
msgid ""
"This controls the GTK scale factor that maps from window coordinates to the "
"actual device pixels."
msgstr "控制从窗口坐标映射到实际设备像素的GTK比例因子。"
-#: ../data/com.kylinsec.kiran.xsettings.gschema.xml.in.h:40
+#: ../data/schemas/com.kylinsec.kiran.xsettings.gschema.xml.in.h:40
msgid ""
"This setting determines whether MATE controls the scale factor for QT "
"applications."
@@ -836,6 +841,11 @@ msgstr "({0}错误码0x{1:x})"
msgid "%b %d %Y"
msgstr "%Y年%m月%d日"
+#: ../plugins/display/display-manager.cpp:195
+msgid ""
+"The scaling rate can only take effect after logging out and logging in again"
+msgstr "缩放率需要注销后重新登录才能生效"
+
#: ../plugins/keybinding/custom-shortcut.h:25
msgid "Custom"
msgstr "自定义"
--
2.33.0