|
Description
Pierre-Charles David
New Gerrit change created: https://git.eclipse.org/r/112655 New Gerrit change created: https://git.eclipse.org/r/114431 New Gerrit change created: https://git.eclipse.org/r/114474 See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=530506 which may require some adaptation on our side. Gerrit change https://git.eclipse.org/r/112655 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=63b690bfae765153ad3ce1543bcf794566de60b3 Gerrit change https://git.eclipse.org/r/114431 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=88150637ace43fa5e9584466acd2d993d230e919 We have a Photon-based Target Platform, with corresponding builds and test jobs. For now this has not revealed anything scary. Created attachment 273215 [details]
RefreshWithCustomizedStyleTests.testLabelSizeCustomization with Photon M5
Created attachment 273216 [details]
RefreshWithCustomizedStyleTests.testLabelSizeCustomization with Photon M6
We've noticed some very bad graphical regressions on Sirius diagrams when moving from Photon M5 to Photon M6. The attached screenshots are automated screenshots taken during our SWTbot-based tests in two successive runs. Both use a Photon-based target platform, and both were using the exact same Sirius source code (ba857a4821e33f1f559cb825cff7483d95ec133c; they are triggered every night). The first is from right before M6 was published, and used: org.eclipse.swt 3.107.0.v20180124-1904 (commitId=be67e7a453048309b3d338b0f6f24c60f69e6f1a) The second is right after M6 was published, and used org.eclipse.swt 3.107.0.v20180308-0607 (commitId=59c2b8fb0e89d261ae4e11c259b1902b74a058b1) Everything is identical between the two runs, except for the target platform, which resolved to M5 vs M6. The machine is a Linux and uses GTK3: org.eclipse.swt.internal.gtk.theme=Adwaita org.eclipse.swt.internal.gtk.version=3.14.5 As can be seen there are very bad graphical "glitches" with parts of the GEF canvas drawn outside of the editor. We tried to reproduce the problemn locally, and indeed something is very wrong. It's not yet completely clear what because we get different symptoms on different machines and with different settings (SWT_GTK3=0 or 1). - On my machine (up-to-date Debian 9) SWT_GTK3=1 uses Gtk 3.22.11, and I could not reproduce any issue manually. - On a very similar machine (up-to-date Debian 9, SWT_GTK3=1 and Gtk 3.22.11 also), Florian has several issues, which can can be summed up as "different parts of the graphical stack use different coordinate systems". For example to select an element on a diagram with the mouse, one has to click around (100,100) pixels below and to the right compared to position the element is drawn. Some element's shadows also seem shifted by a similar amount. Florian also can reproduce the same kind of glitches that are visible on the attached screenshots: after scrolling the diagram editor, sometimes parts of the diagram are drawn outside of the editor are on top of the main Eclipse UI, and then stay there forever. - On my machine, when forcing the use of Gtk 2 (2.24.31), I have a different kind of issue. I'll post a video, it's easier than trying to explain it with words. Note that we could reproduce similar issues with non-Sirius plain GMF examples (Logic Diagram), so it does not seem to be caused by Sirius and may affect other GMF-based projects, or even anything using GEF Legacy. Created attachment 273219 [details]
Graphical issues on Sirius diagrams with Photon M6 and Gtk2
Basically, when scrolling the diagram some parts are redrawn in a broken way and, in this case, the content of the palette (which is part of the editor but not of the main drawing area) are wrongly copied inside the diagram.
(In reply to Pierre-Charles David from comment #11) > Created attachment 273219 [details] > Graphical issues on Sirius diagrams with Photon M6 and Gtk2 > > Basically, when scrolling the diagram some parts are redrawn in a broken way > and, in this case, the content of the palette (which is part of the editor > but not of the main drawing area) are wrongly copied inside the diagram. It seems that this particular issue with Gtk2 was already present with Photon M5: the runtime where I reproduce it uses org.eclipse.swt (3.107.0.v20180124-1904), which matches the version from M5 where the other issues were not yet present. I guess this is "normal" as Gtk 2.24 is part of the older versions that SWT does not support anymore. It's a little strange that we did not see it before, but we usually use Neon or Oxygen as our default TP to make sure we don't break compat with them, so it's very possible that nobody noticed until now that we are specifically looking at this. (In reply to Pierre-Charles David from comment #10) > - On my machine (up-to-date Debian 9) SWT_GTK3=1 uses Gtk 3.22.11, and I > could not reproduce any issue manually. I can reproduce it now. On my first test I was using a diagram which has an explicit background color (see #525533), and for some reason the problem does not appear then. However when using an Ecore Tools diagram, with a plain white background (or more precisely, no background color / transparent figure), I can indeed reproduce. At least this eliminates the unexplained difference between my machine and Florian's, which both use the same versions of everything. Created attachment 273224 [details] Sample broken Sirius diagram drawing with Photon M6 / GTK3 The attached screenshot corresponds to the main issue, reproduced with Gtk3 and Photon M6. Things to note: - to select the "NewClass1" I had to click far below and to the right of the visible shape. - the "Sirius Debugging View" shows some interesting internal information on the currently select element. In this cas it shows the logical coordinates of the element as defined in the GMF Notation model used underneath and the Draw2D pĥysical coordinates (i.e. the IFigure.getBounds()). In this case the selected element is a top-level element, so they are the same: (657, 245). - I've made visible the diagram ruler (the unit is the pixel), which shows that the viewport is at the logical origin of the diagram (0,0). Zoom is at 100%. - Given the two points above, we would expect the "NewClass1" to be drawn at (657, 245), which is actually the place I had to click to select it. However, measuring on the image we are at something like (242, 90) from the origin of the canvas inside the editor. - A second measure from the origin *of the top-level shell* (i.e. top-left corner right above the "File" menu, not considering the window decoration) to the top-left corner of "NewClass1" give *exactly* (657, 245). My interpretation is that part of the graphical stack wrongly uses the origin of the top-level shell for its drawing operations instead of the origin of the canvas widget. This may be related to https://git.eclipse.org/r/c/118410/, which was merged between M5 and M6: the commit message mentions "The clipping region was not computed properly, due to transformations done with the device space transformation matrix provided by Cairo. From GTK 3.10 onward, this matrix contains absolute coordinates of the widget, with respect to the shell." I don't know if this commit in particular is the cause of what we see, but it is clearly about the same kind of issues. Created attachment 273227 [details] Fixed diagram after reverting https://git.eclipse.org/r/c/118410/ in SWT Reverting https://git.eclipse.org/r/c/118410/ (commit e78489ee67784eb3704ba210de1effcb777e0126) seems to fix this particular issue: see the result in the attached screenshot. I have no idea on the possible negative impacts of a complete revert, but this seems to confirm that particular change is the cause of the regression on our side. New Gerrit change created: https://git.eclipse.org/r/121120 Gerrit change https://git.eclipse.org/r/121120 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=1cd5fe7cc21325c38a16d3ddf91521afbf692e3b New Gerrit change created: https://git.eclipse.org/r/122552 Gerrit change https://git.eclipse.org/r/122552 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4d1d9a9dd1f6293925b67fdb54c85619cd30cc05 No open Photon-specific issues have been identified. Available in Sirius 6.0.0, see https://wiki.eclipse.org/Sirius/6.0.0 for details |