Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package mypaint. MyPaint 1.2.0-4, currently in unstable for 17 days, contains a targetted fix for bug 848356. This bug has been assigned a severity of important becuase it largely makes MyPaint useless in fullscreen mode with the version of libgtk-3-0 which is due to be relesed with stretch. Fullscreen mode is a primary way of using this package, and fullscreen state is remembered across restarts of the app. Debian bug being targetted: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848356 This patch originates from upstream: https://github.com/mypaint/mypaint/commit/c225d1132a7da956a35a32534e91a42d22cdb8e1 This bug is fixed in the latest upstream release (1.2.1),i which will not be part of stretch, but I've backported and tested this fix for Stretch's 1.2.0. Upstream bug reference: https://github.com/mypaint/mypaint/issues/735 There are no unrelated changes in unstable, or included in this unblock. Please cross-check it with the upstream patch to verify that it is the same code. This is my first unblock request, so I hope I've mentioned the right version in the subject and below. Debdiff follows, as requested. ----------------------------------8<------------------------------------ diff -Nru mypaint-1.2.0/debian/changelog mypaint-1.2.0/debian/changelog --- mypaint-1.2.0/debian/changelog 2016-11-22 08:02:02.000000000 +0000 +++ mypaint-1.2.0/debian/changelog 2017-02-02 14:39:42.000000000 +0000 @@ -1,3 +1,10 @@ +mypaint (1.2.0-4) unstable; urgency=medium + + * Add debian/patches/fix-gtk-3.22.4-canvas-disappearance.patch to fix + fullscreen mode. (Closes: #848356) + + -- Andrew Chadwick <a.t.chadw...@gmail.com> Thu, 02 Feb 2017 14:39:42 +0000 + mypaint (1.2.0-3) unstable; urgency=medium * Update d/rules to use dh sequencer. Fixes arch-indep FTBFS. diff -Nru mypaint-1.2.0/debian/patches/fix-gtk-3.22.4-canvas-disappearance.patch mypaint-1.2.0/debian/patches/fix-gtk-3.22.4-canvas-disappearance.patch --- mypaint-1.2.0/debian/patches/fix-gtk-3.22.4-canvas-disappearance.patch 1970-01-01 01:00:00.000000000 +0100 +++ mypaint-1.2.0/debian/patches/fix-gtk-3.22.4-canvas-disappearance.patch 2017-02-02 13:06:12.000000000 +0000 @@ -0,0 +1,63 @@ +diff --git a/gui/workspace.py b/gui/workspace.py +index 7f4f4abe..2af856a5 100644 +--- a/gui/workspace.py ++++ b/gui/workspace.py +@@ -223,6 +223,7 @@ class Workspace (Gtk.VBox, Gtk.Buildable): + lpaned.pack1(lscrolls, resize=False, shrink=False) + lpaned.pack2(rpaned, resize=True, shrink=False) + rpaned.pack2(rscrolls, resize=False, shrink=False) ++ rpaned.pack1(cscrolls, resize=True, shrink=False) + self.pack_start(lpaned, True, True, 0) + # Autohide + self._autohide_enabled = True +@@ -397,43 +398,21 @@ class Workspace (Gtk.VBox, Gtk.Buildable): + def set_canvas(self, widget): + """Canvas widget (setter)""" + assert self.get_canvas() is None +- self._rpaned.pack1(widget, resize=True, shrink=False) +- self._update_canvas_scrolledwindow() ++ widget = self._canvas_scrolls.add(widget) + + def get_canvas(self): + """Canvas widget (getter)""" +- widget = self._rpaned.get_child1() +- if widget is self._canvas_scrolls: +- widget = widget.get_child() ++ widget = self._canvas_scrolls.get_child() + return widget + + def _update_canvas_scrolledwindow(self): +- """Update whether the canvas has a surrounding ScrolledWindow +- +- In fullscreen mode, the ScrolledWindow is removed from the widget +- hierarchy so that the canvas widget can occupy the full size of the +- screen. In nonfullscreen mode, the scrollers provide a pretty frame. +- """ +- canvas = self.get_canvas() +- parent = canvas.get_parent() ++ """Update the canvas ScrolledWindow's border.""" ++ parent = self._canvas_scrolls + if not self._is_fullscreen: +- if parent is self._canvas_scrolls: +- return +- logger.debug("Adding GtkScrolledWindow around canvas") +- assert parent is self._rpaned +- self._rpaned.remove(canvas) +- self._rpaned.pack1(self._canvas_scrolls, resize=True, shrink=False) +- self._canvas_scrolls.add(canvas) +- self._canvas_scrolls.show_all() ++ parent.set_shadow_type(Gtk.ShadowType.NONE) + else: +- if parent is self._rpaned: +- return +- logger.debug("Removing GtkScrolledWindow around canvas") +- assert parent is self._canvas_scrolls +- self._canvas_scrolls.remove(canvas) +- self._rpaned.remove(self._canvas_scrolls) +- self._rpaned.pack1(canvas, resize=True, shrink=False) +- self._canvas_scrolls.hide() ++ parent.set_shadow_type(Gtk.ShadowType.IN) ++ # TODO: this should really be done with CSS now. + + ## Tool widgets + diff -Nru mypaint-1.2.0/debian/patches/series mypaint-1.2.0/debian/patches/series --- mypaint-1.2.0/debian/patches/series 2016-11-22 08:02:02.000000000 +0000 +++ mypaint-1.2.0/debian/patches/series 2017-02-02 13:06:23.000000000 +0000 @@ -1 +1,2 @@ fix-glib-2.48-startup-crash.patch +fix-gtk-3.22.4-canvas-disappearance.patch ---------------------------------->8------------------------------------ unblock mypaint/1.2.0-4 -- System Information: Debian Release: 9.0 APT prefers testing APT policy: (900, 'testing'), (50, 'unstable'), (5, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)