| Summary: | [GTK3] Real fix for bug 446075 / broken GC#setClipping(Rectangle) | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Markus Keller <markus.kell.r> |
| Component: | SWT | Assignee: | Platform-SWT-Inbox <platform-swt-inbox> |
| Status: | CLOSED WORKSFORME | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | akurtakov, ericwill, snjezana.peco, udo.walker |
| Version: | 4.6 | Keywords: | triaged |
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| See Also: | https://git.eclipse.org/r/68275 | ||
| Whiteboard: | |||
| Bug Depends on: | 446075 | ||
| Bug Blocks: | |||
|
Description
Markus Keller
New Gerrit change created: https://git.eclipse.org/r/68275 I have reviewed the patch (https://git.eclipse.org/r/44286) with GTK 3.10, GTK 3.14, GTK 3.16 and GTK 3.18. We can remove the part of the patch related to GC. Clipping seems to be fixed in some commit in the meanwhile. However, if we remove the remaining parts of the patch, we will get a lot of empty views (Package Explorer, Open Type, EGit History ...) The patch is based on the following blog: https://blogs.gnome.org/alexl/2013/11/04/the-modern-gtk-drawing-model/. The most important sentence for this patch is: "Normally there is only a single cairo context which is used in the entire repaint, rather than one per GdkWindow. This means you have to respect (and not reset) existing clip and transformations set on it." The patch uses the existing cairo object instead of creating a new one. (In reply to Eclipse Genie from comment #1) > New Gerrit change created: https://git.eclipse.org/r/68275 Snjezana, is this correct patch for this issue then? If I understand correctly, this issue has been fixed with the commit for the DPI work? http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=4ff972b78809d2996835d862e322900e0334ebc9 (In reply to Eric Williams from comment #3) > > New Gerrit change created: https://git.eclipse.org/r/68275 This causes clipping errors in owner-draw Trees again, at least on Ubuntu 14.04 / GTK 3.10.8. E.g. long labels in the Package Explorer like those inside the JRE System Library again start bleeding into adjacent controls. My commit restricted the problem in setClipping(..) to Table/Tree widgets. I'm not aware of practical problems with the current solution, although you can probably construct a problem if a PaintItem listener wants to set a custom clipping region. The remaining issue is cosmetic and doesn't need to be addressed for 4.7. (In reply to Markus Keller from comment #4) > This causes clipping errors in owner-draw Trees again, at least on Ubuntu > 14.04 / GTK 3.10.8. E.g. long labels in the Package Explorer like those > inside the JRE System Library again start bleeding into adjacent controls. > > My commit restricted the problem in setClipping(..) to Table/Tree widgets. > I'm not aware of practical problems with the current solution, although you > can probably construct a problem if a PaintItem listener wants to set a > custom clipping region. > > The remaining issue is cosmetic and doesn't need to be addressed for 4.7. Alright, makes sense. Thanks for the clarification. (In reply to Markus Keller from comment #4) > The remaining issue is cosmetic and doesn't need to be addressed for 4.7. Not for 4.6, I meant. Snjezana, if https://git.eclipse.org/r/68275 was just incomplete and you have a better solution, you would be most welcome to update the Gerrit, so that we can consider it for 4.7. (In reply to Markus Keller from comment #6) > (In reply to Markus Keller from comment #4) > > The remaining issue is cosmetic and doesn't need to be addressed for 4.7. > > Not for 4.6, I meant. Snjezana, if https://git.eclipse.org/r/68275 was just > incomplete and you have a better solution, you would be most welcome to > update the Gerrit, so that we can consider it for 4.7. Your solution seems to be ok. Eric, is there anything pending here? (In reply to Alexander Kurtakov from comment #8) > Eric, is there anything pending here? I don't think so, closing it now. |