Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock Dear Release Team, I would like to see gnome-tweak-tool 3.14.2-1 accepted into Jessie because it contains fixes for two bugs that I think are important: * It now uses the correct gsettings key for window buttons. With the new key it does not override user's XSettings, and also works with both client-side and server-side decorations. See https://bugzilla.gnome.org/show_bug.cgi?id=737533. * The window is now 20px wider that previously, avoiding the ugly scrollbar. See https://bugzilla.gnome.org/show_bug.cgi?id=736340. The source package is in SVN, ready for upload. The diff of source part (excluding translations and auto-generated parts) is attached. Thanks in advance, -- Dmitry Shachnev
--- a/gtweak/tweaks/tweak_group_startup.py +++ b/gtweak/tweaks/tweak_group_startup.py @@ -50,9 +50,9 @@ class _AppChooser(Gtk.Dialog): a, _("running") if running else "") if w: - lb.add(w) self._all[w] = a self._running[w] = running + lb.add(w) sw = Gtk.ScrolledWindow() sw.props.hscrollbar_policy = Gtk.PolicyType.NEVER @@ -69,9 +69,23 @@ class _AppChooser(Gtk.Dialog): self.listbox = lb def _sort_apps(self, a, b, user_data): - if self._running.get(a) and not self._running.get(b): + arun = self._running.get(a) + brun = self._running.get(b) + + if arun and not brun: return -1 - return 1 + elif not arun and brun: + return 1 + else: + aname = self._all.get(a).get_name() + bname = self._all.get(b).get_name() + + if aname < bname: + return -1 + elif aname > bname: + return 1 + else: + return 0 def _build_widget(self, a, extra): row = Gtk.ListBoxRow() @@ -135,8 +149,8 @@ class _StartupTweak(Gtk.ListBoxRow, Tweak): self.add(grid) - self.props.margin_left = 1 - self.props.margin_right = 1 + self.props.margin_start = 1 + self.props.margin_end = 1 self.get_style_context().add_class('tweak-startup') self.btn = btn @@ -148,12 +162,10 @@ class AddStartupTweak(Gtk.ListBoxRow, Tweak): _("Add a new application to be run at startup"), **options) - self.btn = Gtk.Button(label="") - self.btn.get_style_context().remove_class("button") img = Gtk.Image() img.set_from_icon_name("list-add-symbolic", Gtk.IconSize.BUTTON) - self.btn.set_image(img) - self.btn.props.always_show_image = True + self.btn = Gtk.Button(label="", image=img, always_show_image=True) + self.btn.get_style_context().remove_class("button") self.add(self.btn) self.get_style_context().add_class('tweak-startup') @@ -207,7 +219,7 @@ class AutostartListBoxTweakGroup(ListBoxTweakGroup): exes = [] cmd = subprocess.Popen([ 'ps','-e','-w','-w','-U', - os.getlogin(),'-o','cmd'], + str(os.getuid()),'-o','cmd'], stdout=subprocess.PIPE) out = cmd.communicate()[0] for l in out.split('\n'): --- a/gtweak/tweaks/tweak_group_windows.py +++ b/gtweak/tweaks/tweak_group_windows.py @@ -30,7 +30,6 @@ class ShowWindowButtons(GSettingsSwitchTweakValue): def __init__(self, name, value, **options): self.value = value - self._xsettings = XSettingsOverrides() GSettingsSwitchTweakValue.__init__(self, name, "org.gnome.desktop.wm.preferences", @@ -51,7 +50,6 @@ class ShowWindowButtons(GSettingsSwitchTweakValue): val = val.replace(self.value+",", "") self.settings.set_string(self.key_name, val) - self._xsettings.set_window_buttons(val.replace(":", "menu:")) class WindowScalingFactorTweak(Gtk.Box, Tweak): def __init__(self, **options): --- a/gtweak/tweakview.py +++ b/gtweak/tweakview.py @@ -32,7 +32,7 @@ class Window(Gtk.ApplicationWindow): application=app, show_menubar=False) - self.set_size_request(950, 680) + self.set_size_request(950, 700) self.set_position(Gtk.WindowPosition.CENTER) self.set_icon_name("gnome-tweak-tool") @@ -55,6 +55,9 @@ class Window(Gtk.ApplicationWindow): self._model.load_tweaks(self) self.load_model_data() + Gtk.Settings.get_default().connect("notify::gtk-decoration-layout", + self._update_decorations); + self.connect("key-press-event", self._on_key_press) self.add(main_box) @@ -67,16 +70,15 @@ class Window(Gtk.ApplicationWindow): right_header = Gtk.HeaderBar() right_header.props.show_close_button = True + self._left_header = left_header; + self._right_header = right_header; + left_header.get_style_context().add_class("titlebar") left_header.get_style_context().add_class("tweak-titlebar-left") right_header.get_style_context().add_class("titlebar") right_header.get_style_context().add_class("tweak-titlebar-right") - layout_desc = Gtk.Settings.get_default().props.gtk_decoration_layout; - tokens = layout_desc.split(":", 2) - if tokens != None: - right_header.props.decoration_layout = ":" + tokens[1] - left_header.props.decoration_layout = tokens[0] + self._update_decorations (Gtk.Settings.get_default(), None) self.title = Gtk.Label(label="") self.title.get_style_context().add_class("title") @@ -187,6 +189,13 @@ class Window(Gtk.ApplicationWindow): if before and not row.get_header(): row.set_header (Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)) + def _update_decorations(self, settings, pspec): + layout_desc = settings.props.gtk_decoration_layout; + tokens = layout_desc.split(":", 2) + if tokens != None: + self._right_header.props.decoration_layout = ":" + tokens[1] + self._left_header.props.decoration_layout = tokens[0] + def _on_key_press(self, widget, event): keyname = Gdk.keyval_name(event.keyval) if keyname == 'Escape': --- a/gtweak/utils.py +++ b/gtweak/utils.py @@ -235,7 +235,6 @@ class XSettingsOverrides: VARIANT_TYPES = { 'Gtk/ShellShowsAppMenu': GLib.Variant.new_int32, 'Gtk/EnablePrimaryPaste': GLib.Variant.new_int32, - 'Gtk/DecorationLayout': GLib.Variant.new_string, 'Gdk/WindowScalingFactor': GLib.Variant.new_int32, } @@ -281,8 +280,6 @@ class XSettingsOverrides: self._set_override('Gtk/EnablePrimaryPaste', int(v)) def get_enable_primary_paste(self): return self._get_override('Gtk/EnablePrimaryPaste', True) - def set_window_buttons(self, v): - self._set_override('Gtk/DecorationLayout', v) def set_window_scaling_factor(self, v): self._set_override('Gdk/WindowScalingFactor', int(v)) def get_window_scaling_factor(self):
Attachment:
signature.asc
Description: OpenPGP digital signature