Skip to content

Commit f43c97b

Browse files
committed
add keyboard shortcuts for zooming
save zoom setting and restore on startup fixes issues #15 and #17
1 parent 561314d commit f43c97b

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

devdocs_desktop.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def __init__(self):
3737
self.open_link = False
3838
self.filter = ''
3939
self.options = self.read_settings_json('cookies')
40+
self.prefs = self.read_settings_json('prefs')
4041
self.globals = Gtk.Settings.get_default()
4142

4243
self.main = Gtk.Builder()
@@ -97,6 +98,7 @@ def __init__(self):
9798
self.enable_persistent_cookies()
9899
self.set_window_accel_groups()
99100
self.toggle_theme_variation()
101+
self.set_zoom_level()
100102

101103
def run(self):
102104
Gtk.main()
@@ -132,6 +134,9 @@ def toggle_save_button(self, visible):
132134
self.header_save.set_visible(visible)
133135
self.header_search.set_visible(not visible)
134136

137+
def set_zoom_level(self):
138+
self.webview.set_zoom_level(self.prefs.get('zoom', 1.0))
139+
135140
def search_webview(self):
136141
text = self.finder_search.get_text()
137142
opts = WebKit2.FindOptions.WRAP_AROUND | WebKit2.FindOptions.CASE_INSENSITIVE
@@ -204,6 +209,16 @@ def set_window_accel_groups(self):
204209
ctrl = Gdk.ModifierType.CONTROL_MASK
205210

206211
group.connect(Gdk.keyval_from_name('f'), ctrl, 0, self.on_revealer_accel_pressed)
212+
213+
group.connect(Gdk.keyval_from_name('KP_Subtract'), ctrl, 0, self.on_zoom_decrease_accel_pressed)
214+
group.connect(Gdk.keyval_from_name('minus'), ctrl, 0, self.on_zoom_decrease_accel_pressed)
215+
216+
group.connect(Gdk.keyval_from_name('KP_Add'), ctrl, 0, self.on_zoom_increase_accel_pressed)
217+
group.connect(Gdk.keyval_from_name('plus'), ctrl, 0, self.on_zoom_increase_accel_pressed)
218+
219+
group.connect(Gdk.keyval_from_name('KP_0'), ctrl, 0, self.on_zoom_reset_accel_pressed)
220+
group.connect(Gdk.keyval_from_name('0'), ctrl, 0, self.on_zoom_reset_accel_pressed)
221+
207222
self.window.add_accel_group(group)
208223

209224
def update_header_filter(self, text, async_js=False):
@@ -230,6 +245,24 @@ def on_cookies_changed(self, _manager):
230245
def on_revealer_accel_pressed(self, _group, _widget, _code, _modifier):
231246
self.revealer.set_reveal_child(True)
232247

248+
def on_zoom_decrease_accel_pressed(self, _group, _widget, _code, _modifier):
249+
self.prefs['zoom'] = round(self.webview.get_zoom_level() - 0.1, 1)
250+
251+
self.set_zoom_level()
252+
self.write_settings_json('prefs', self.prefs)
253+
254+
def on_zoom_increase_accel_pressed(self, _group, _widget, _code, _modifier):
255+
self.prefs['zoom'] = round(self.webview.get_zoom_level() + 0.1, 1)
256+
257+
self.set_zoom_level()
258+
self.write_settings_json('prefs', self.prefs)
259+
260+
def on_zoom_reset_accel_pressed(self, _group, _widget, _code, _modifier):
261+
self.prefs['zoom'] = 1.0
262+
263+
self.set_zoom_level()
264+
self.write_settings_json('prefs', self.prefs)
265+
233266
def on_window_main_destroy(self, _event):
234267
self.quit()
235268

0 commit comments

Comments
 (0)