You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
9.8 KiB
193 lines
9.8 KiB
6 years ago
|
From 463c27c39549a3fbcc6a59e56822e47d0a4303e0 Mon Sep 17 00:00:00 2001
|
||
|
From: Debarshi Ray <debarshir@gnome.org>
|
||
|
Date: Fri, 13 May 2016 19:43:29 +0200
|
||
|
Subject: [PATCH 1/2] schemas: screen: Add a setting to configure the scroll
|
||
|
speed
|
||
|
|
||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1103380
|
||
|
---
|
||
|
src/org.gnome.Terminal.gschema.xml | 11 +++++++++++
|
||
|
src/terminal-schemas.h | 2 ++
|
||
|
src/terminal-screen.c | 9 +++++++++
|
||
|
3 files changed, 22 insertions(+)
|
||
|
|
||
|
diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
|
||
|
index 04be15324d3d..c5ae00a82064 100644
|
||
|
--- a/src/org.gnome.Terminal.gschema.xml
|
||
|
+++ b/src/org.gnome.Terminal.gschema.xml
|
||
|
@@ -427,6 +427,17 @@
|
||
|
<summary>Adjust the amount of transparency</summary>
|
||
|
<description>A value between 0 and 100, where 0 is opaque and 100 is fully transparent.</description>
|
||
|
</key>
|
||
|
+ <key name="scroll-speed-auto" type="b">
|
||
|
+ <default>true</default>
|
||
|
+ <summary>Whether to use a dynamic scrolling speed</summary>
|
||
|
+ <description>If true, the speed will be a function of the number of visible rows. Otherwise, the buffer will scroll by a fixed number of lines regardless of the number of visible rows.</description>
|
||
|
+ </key>
|
||
|
+ <key name="scroll-speed" type="u">
|
||
|
+ <default>1</default>
|
||
|
+ <range min="1" max="10"/>
|
||
|
+ <summary>Adjust the scrolling speed</summary>
|
||
|
+ <description>The number of lines by which the buffer is moved when scrolling with a mouse wheel on top of the terminal.</description>
|
||
|
+ </key>
|
||
|
</schema>
|
||
|
|
||
|
<!-- Keybinding settings -->
|
||
|
diff --git a/src/terminal-schemas.h b/src/terminal-schemas.h
|
||
|
index 240213fead43..7e9fc96cad9f 100644
|
||
|
--- a/src/terminal-schemas.h
|
||
|
+++ b/src/terminal-schemas.h
|
||
|
@@ -77,6 +77,8 @@ G_BEGIN_DECLS
|
||
|
|
||
|
#define TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND "use-transparent-background"
|
||
|
#define TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT "background-transparency-percent"
|
||
|
+#define TERMINAL_PROFILE_SCROLL_SPEED_KEY "scroll-speed"
|
||
|
+#define TERMINAL_PROFILE_SCROLL_SPEED_AUTO_KEY "scroll-speed-auto"
|
||
|
|
||
|
#define TERMINAL_SETTING_CONFIRM_CLOSE_KEY "confirm-close"
|
||
|
#define TERMINAL_SETTING_DEFAULT_SHOW_MENUBAR_KEY "default-show-menubar"
|
||
|
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
|
||
|
index faf906c763e7..18cb3318308d 100644
|
||
|
--- a/src/terminal-screen.c
|
||
|
+++ b/src/terminal-screen.c
|
||
|
@@ -1016,6 +1016,15 @@ terminal_screen_profile_changed_cb (GSettings *profile,
|
||
|
if (!prop_name || prop_name == I_(TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY))
|
||
|
vte_terminal_set_scroll_on_output (vte_terminal,
|
||
|
g_settings_get_boolean (profile, TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY));
|
||
|
+ if (!prop_name ||
|
||
|
+ prop_name == I_(TERMINAL_PROFILE_SCROLL_SPEED_KEY) ||
|
||
|
+ prop_name == I_(TERMINAL_PROFILE_SCROLL_SPEED_AUTO_KEY))
|
||
|
+ {
|
||
|
+ guint scroll_speed = g_settings_get_boolean (profile, TERMINAL_PROFILE_SCROLL_SPEED_AUTO_KEY) ?
|
||
|
+ 0 : g_settings_get_uint (profile, TERMINAL_PROFILE_SCROLL_SPEED_KEY);
|
||
|
+ vte_terminal_set_scroll_speed (vte_terminal, scroll_speed);
|
||
|
+ }
|
||
|
+
|
||
|
if (!prop_name ||
|
||
|
prop_name == I_(TERMINAL_PROFILE_SCROLLBACK_LINES_KEY) ||
|
||
|
prop_name == I_(TERMINAL_PROFILE_SCROLLBACK_UNLIMITED_KEY))
|
||
|
--
|
||
|
2.14.4
|
||
|
|
||
|
|
||
|
From bc6e7ef2477ace9e81e48c001bd3e65bec618282 Mon Sep 17 00:00:00 2001
|
||
|
From: Debarshi Ray <debarshir@gnome.org>
|
||
|
Date: Fri, 8 Jun 2018 17:08:01 +0200
|
||
|
Subject: [PATCH 2/2] profile: Expose the scroll speed setting in the UI
|
||
|
|
||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1103380
|
||
|
---
|
||
|
src/preferences.ui | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||
|
src/profile-editor.c | 17 +++++++++++++++
|
||
|
2 files changed, 77 insertions(+)
|
||
|
|
||
|
diff --git a/src/preferences.ui b/src/preferences.ui
|
||
|
index 0dddd9bf32ba..6932f845e33a 100644
|
||
|
--- a/src/preferences.ui
|
||
|
+++ b/src/preferences.ui
|
||
|
@@ -82,6 +82,12 @@
|
||
|
<property name="step_increment">1</property>
|
||
|
<property name="page_increment">10</property>
|
||
|
</object>
|
||
|
+ <object class="GtkAdjustment" id="scroll-speed-adjustment">
|
||
|
+ <property name="lower">1</property>
|
||
|
+ <property name="upper">10</property>
|
||
|
+ <property name="step_increment">1</property>
|
||
|
+ <property name="page_increment">5</property>
|
||
|
+ </object>
|
||
|
<object class="GtkListStore" id="cjk-ambiguous-width-model">
|
||
|
<columns>
|
||
|
<!-- column-name gchararray -->
|
||
|
@@ -1841,6 +1847,60 @@
|
||
|
<property name="left_attach">1</property>
|
||
|
</packing>
|
||
|
</child>
|
||
|
+ <child>
|
||
|
+ <object class="GtkCheckButton" id="scrollspeed-static-checkbutton">
|
||
|
+ <property name="label" translatable="yes">_Fix scroll speed to:</property>
|
||
|
+ <property name="visible">True</property>
|
||
|
+ <property name="can_focus">True</property>
|
||
|
+ <property name="receives_default">False</property>
|
||
|
+ <property name="use_underline">True</property>
|
||
|
+ </object>
|
||
|
+ <packing>
|
||
|
+ <property name="top_attach">4</property>
|
||
|
+ <property name="left_attach">0</property>
|
||
|
+ </packing>
|
||
|
+ </child>
|
||
|
+ <child>
|
||
|
+ <object class="GtkHBox" id="scrollspeed-box">
|
||
|
+ <property name="visible">True</property>
|
||
|
+ <property name="can_focus">False</property>
|
||
|
+ <property name="spacing">6</property>
|
||
|
+ <property name="hexpand">True</property>
|
||
|
+ <child>
|
||
|
+ <object class="GtkSpinButton" id="scroll-speed-spinbutton">
|
||
|
+ <property name="visible">True</property>
|
||
|
+ <property name="can_focus">True</property>
|
||
|
+ <property name="adjustment">scroll-speed-adjustment</property>
|
||
|
+ <property name="climb_rate">1</property>
|
||
|
+ <property name="numeric">True</property>
|
||
|
+ </object>
|
||
|
+ <packing>
|
||
|
+ <property name="expand">False</property>
|
||
|
+ <property name="fill">True</property>
|
||
|
+ <property name="position">0</property>
|
||
|
+ </packing>
|
||
|
+ </child>
|
||
|
+ <child>
|
||
|
+ <object class="GtkLabel" id="scroll-speed-spinbutton-label">
|
||
|
+ <property name="visible">True</property>
|
||
|
+ <property name="can_focus">False</property>
|
||
|
+ <property name="xalign">0</property>
|
||
|
+ <property name="label" translatable="yes">lines</property>
|
||
|
+ <property name="justify">center</property>
|
||
|
+ <property name="mnemonic_widget">scroll-speed-spinbutton</property>
|
||
|
+ </object>
|
||
|
+ <packing>
|
||
|
+ <property name="expand">False</property>
|
||
|
+ <property name="fill">False</property>
|
||
|
+ <property name="position">1</property>
|
||
|
+ </packing>
|
||
|
+ </child>
|
||
|
+ </object>
|
||
|
+ <packing>
|
||
|
+ <property name="top_attach">4</property>
|
||
|
+ <property name="left_attach">1</property>
|
||
|
+ </packing>
|
||
|
+ </child>
|
||
|
</object>
|
||
|
<packing>
|
||
|
<property name="position">2</property>
|
||
|
diff --git a/src/profile-editor.c b/src/profile-editor.c
|
||
|
index 0b8f2b6951a7..889372adb35b 100644
|
||
|
--- a/src/profile-editor.c
|
||
|
+++ b/src/profile-editor.c
|
||
|
@@ -1355,6 +1355,23 @@ profile_prefs_load (const char *uuid, GSettings *profile)
|
||
|
gtk_builder_get_object (builder, "background-transparent-adjustment"),
|
||
|
"value",
|
||
|
G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
|
||
|
+
|
||
|
+ profile_prefs_settings_bind (profile, TERMINAL_PROFILE_SCROLL_SPEED_AUTO_KEY,
|
||
|
+ gtk_builder_get_object (builder,
|
||
|
+ "scrollspeed-static-checkbutton"),
|
||
|
+ "active",
|
||
|
+ G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET |
|
||
|
+ G_SETTINGS_BIND_INVERT_BOOLEAN);
|
||
|
+ profile_prefs_settings_bind (profile, TERMINAL_PROFILE_SCROLL_SPEED_AUTO_KEY,
|
||
|
+ gtk_builder_get_object (builder,
|
||
|
+ "scrollspeed-box"),
|
||
|
+ "sensitive",
|
||
|
+ G_SETTINGS_BIND_GET |
|
||
|
+ G_SETTINGS_BIND_INVERT_BOOLEAN |
|
||
|
+ G_SETTINGS_BIND_NO_SENSITIVITY);
|
||
|
+ profile_prefs_settings_bind (profile, TERMINAL_PROFILE_SCROLL_SPEED_KEY,
|
||
|
+ gtk_builder_get_object (builder, "scroll-speed-adjustment"),
|
||
|
+ "value", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
|
||
|
}
|
||
|
|
||
|
/* Called once per Preferences window, to destroy stuff that doesn't depend on the profile being edited */
|
||
|
--
|
||
|
2.14.4
|
||
|
|