Removed the info about the second issue to focus the SRU on the crash.

** Description changed:

-    In PikoPixel 1.0 BETA9b (current Bionic version), resizing an image
+ In PikoPixel 1.0 BETA9b (current Bionic version), resizing an image
  window to within a few pixels of the canvas size can cause the app to
  freeze, eventually crashing due to a stack overflow.
  
-    A bugfix update, 1.0 BETA9c, fixes the issue, and is now in the
+    A bugfix update, 1.0 BETA9c, fixes the issue, and is now in the
  Cosmic repo. Updating Bionic to Cosmic's version would prevent users
  from losing unsaved image data due to this issue.
  
-    The crash is the result of a bug in PikoPixel's scrollview-layout
+    The crash is the result of a bug in PikoPixel's scrollview-layout
  code that causes an infinite-recursion loop of hiding & showing the
  scrollers: Window is resized -> Scrollview layout is updated -> New
  layout causes scrollers to become visible -> Scroller-visibility change
  causes re-layout of scrollview -> New layout causes scrollers to hide ->
  Scroller-visibility change causes re-layout of scrollview -> New layout
  causes scrollers to show -> etc.
  
  [Test Case]
  1) Start the PikoPixel app.
  2) On the "New Image" panel, click the "OK" button to create a new image 
(64x64 default size).
  3) The new window will display the image canvas (alternating white/grey 
diagonal lines with a grid-dot overlay) in the center, with a grey margin 
surrounding the canvas.
  4) If the bottom-right corner of the image window is covered by the "Tool 
Modifier Tips" panel, either click the panel's close button to hide it, or move 
it so the corner is visible.
  5) Move the mouse over the image window's bottom-right corner, and the mouse 
cursor should become a "horizontal/vertical resize" cursor (an arrow pointing 
towards the lower right).
  6) While the resize cursor is visible, click the corner of the window & 
slowly drag it towards the upper-left to make the window smaller. The canvas 
should stay the same size, and the grey margins should shrink (keeping the 
canvas centered in the window).
  7) The app-freeze happens at about the point in the resize-drag when there's 
no more than a pixel or two of grey margin (or no margin at all). It may take a 
few tries to get it to freeze, but once the margins are small, slowly moving 
the mouse in a circular motion should eventually trigger it. The point of 
moving in a circle is to cause the scrollers to alternate between becoming 
visible (when the window becomes smaller than the canvas), and then hiding 
again (when the window is larger than the canvas).
  8) When the app becomes frozen, the window itself will continue to resize in 
response to mouse-dragging, however the window content will stop updating, and 
the grey margins will no longer grow & shrink. At this point, the menus & 
canvas tools will no longer respond, and a system dialog may eventually appear, 
notifying that the window is unresponsive. (Force-quitting the app is 
recommended, otherwise it will eventually overflow the stack).
  
- [Regression Potential] 
-    The 1.0 BETA9c fix prevents the crash by updating the custom-layout 
functionality to prevent a recursive loop of showing/hiding the scrollers. It 
has been tested & verified that the crash no longer appears, and although no 
issue has been found, the most likely regression from preventing the 
recursive-layout loop would be that the scrollview layout would become 
out-of-sync with the window size. Although this is rather unlikely (layout 
should happen at least once nonrecursively), the unsynced-layout would just be 
a cosmetic issue - no stack overflow, so the app would continue to run & 
interact.
- 
- [Other Info]
-    The 1.0 BETA9c update also contains a fix for a different issue: PikoPixel 
had a cosmetic issue on the KDE-Plasma, MATE, & Xfce desktop environments (the 
issue's with the environments' window managers rather than the desktops 
themselves) where maximizing an image window would leave transparent gaps at 
the edges of the window, due to a framework issue that can incorrectly 
calculate windows' X11 decoration sizes.
-    The same issue appears when PikoPixel runs on LXDE & Window Maker 
desktops, and PP already had a workaround in place for those environments.
-    The BETA9c update enables the existing LXDE/WM workaround when PikoPixel 
runs on KDE/MATE/Xfce. The workaround has been tested & verified (in addition 
to testing on previous releases in the workaround's original target 
environments).
+ [Regression Potential]
+    The 1.0 BETA9c fix prevents the crash by updating the custom-layout 
functionality to prevent a recursive loop of showing/hiding the scrollers. It 
has been tested & verified that the crash no longer appears, and although no 
issue has been found, the most likely regression from preventing the 
recursive-layout loop would be that the scrollview layout would become 
out-of-sync with the window size. Although this is rather unlikely (layout 
should happen at least once nonrecursively), the unsynced-layout would just be 
a cosmetic issue - no stack overflow, so the app would continue to run & 
interact.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1770777

Title:
  [SRU] Bionic: PikoPixel 1.0 BETA9b can crash when resizing a document
  window

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pikopixel.app/+bug/1770777/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to