@@ -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