WINDOW_STATE_MAXIMIZED to saving the WINDOW_STATE_MAXIMIZED flag. This is achieved by adding the window_maximized option to the application settings, and the window-state-event signal handler. First, you need to describe the handler: in the meldapp.glade file (c: \ dev \ meld \ meld-1.3.1 \ glade2 \ meldapp.glade) in the <widget class="GtkWindow" id="meldapp"> add the line <signal name="window_state_event" handler="on_window_state_event"/> : --- c: \ dev \ meld-base \ meld-1.3.1 \ glade2 \ meldapp.glade
+++ c: \ dev \ meld \ meld-1.3.1 \ glade2 \ meldapp.glade
@@ -7.6 +7.7 @@
<property name = "title" translatable = "yes"> Meld </ property>
<property name = "icon"> pixmaps / icon.png </ property>
<signal name = "size_allocate" handler = "on_size_allocate" />
+ <signal name = "window_state_event" handler = "on_window_state_event" />
<signal name = "delete_event" handler = "on_delete_event" />
<child>
<widget class = "GtkVBox" id = "appvbox">
on_window_state_event method: --- c: \ dev \ meld-base \ meld-1.3.1 \ meldapp.py
+++ c: \ dev \ meld \ meld-1.3.1 \ meldapp.py
@@ -615.6 +615.9 @@
self.prefs.window_size_x = rect.width
self.prefs.window_size_y = rect.height
+ def on_window_state_event (self, window, state):
+ self.prefs.window_maximized = bool (state.new_window_state & gtk.gdk.WINDOW_STATE_MAXIMIZED)
+
#
# Toolbar and menu items (file)
#
--- c: \ dev \ meld-base \ meld-1.3.1 \ meldapp.py
+++ c: \ dev \ meld \ meld-1.3.1 \ meldapp.py
@@ -313.6 +313.7 @@
defaults = {
"window_size_x": prefs.Value (prefs.INT, 600),
"window_size_y": prefs.Value (prefs.INT, 600),
+ "window_maximized": prefs.Value (prefs.BOOL, 1),
"use_custom_font": prefs.Value (prefs.BOOL, 0),
"custom_font": prefs.Value (prefs.STRING, "monospace, 14"),
"tab_size": prefs.Value (prefs.INT, 4),
--- c: \ dev \ meld-base \ meld-1.3.1 \ meldapp.py
+++ c: \ dev \ meld \ meld-1.3.1 \ meldapp.py
@@ -499.6 +500.8 @@
self.scheduler.connect ("runnable", self.on_scheduler_runnable)
self.widget.set_default_size (self.prefs.window_size_x, self.prefs.window_size_y)
self.ui.ensure_update ()
+ if self.prefs.window_maximized:
+ self.widget.maximize ()
self.widget.show ()
self.widget.connect ('focus_in_event', self.on_focus_change)
self.widget.connect ('focus_out_event', self.on_focus_change)
TOOLBAR_BOTH , i.e. display of icons and signatures.TOOLBAR_ICONS : --- c: \ dev \ meld-base \ meld-1.3.1 \ meldapp.py
+++ c: \ dev \ meld \ meld-1.3.1 \ meldapp.py
@@ -375.7 +376.7 @@
def get_toolbar_style (self):
if not hasattr (self, "_gconf"):
- return gtk.TOOLBAR_BOTH
+ return gtk.TOOLBAR_ICONS
style = self._gconf.get_string ('/ desktop / gnome / interface / toolbar_style') or "both"
style = {"both": gtk.TOOLBAR_BOTH, "text": gtk.TOOLBAR_TEXT,
"icon": gtk.TOOLBAR_ICONS, "icons": gtk.TOOLBAR_ICONS,
--- c: \ dev \ meld-base \ meld-1.3.1 \ filediff.py
+++ c: \ dev \ meld \ meld-1.3.1 \ filediff.py
@@ -815.6 +815.7 @@
else:
return melddoc.RESULT_ERROR
text = buf.get_text (buf.get_start_iter (), buf.get_end_iter (), 0)
+ "" "
if bufdata.newlines:
if type (bufdata.newlines) == type (""):
if (bufdata.newlines)! = '\ n':
@@ -832.6 +833.7 @@
if k! = '\ n':
text = text.replace ('\ n', k)
break
+ "" "
if bufdata.encoding:
try:
text = text.encode (bufdata.encoding)
Source: https://habr.com/ru/post/87597/
All Articles