Summary: | Some pure qt apps have black corners around menus | ||
---|---|---|---|
Product: | [Plasma] Oxygen | Reporter: | Jesse Milette <linux.nerdy.kid> |
Component: | style | Assignee: | Hugo Pereira Da Costa <hugo.pereira.da.costa> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | hugo.pereira.da.costa |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | suggested patch |
Description
Jesse Milette
2010-05-16 00:39:06 UTC
confirmed. Been bugged by that for quite some time. Apparently checking on the WM compositing enable state to decide whether alpha channel or mask is to be used is not enough ... Oxygen must be missing smthing. Note: if you disable compositing in kwin, oxygen catches it, uses masks, and vlc looks fine again. Renamed cause as far as I know it is not true for all Qt Apps. (see, e.g. QtDesigner, QtConfig) So I digged into vlc code. It has: putenv( (char *)"XLIB_SKIP_ARGB_VISUALS=1" ); before initializing qApp. That's the guilty guy. I bet (though did not check) that virtualBox has the same. I guess I can check for env variables in oxygen style (will post a patch), but that tastes a bit too much of a hack to my taste. Does anyone have a better trick ? Created attachment 43621 [details]
suggested patch
check for XLIB_SKIP_ARGB_VISUALS when in ::polish( QApplication* )
to further check whether compositing is enabled or not.
SVN commit 1127429 by hpereiradacosta: Check QX11Info::depth() to decide whether alphachannel can be use to paint widgets like QMenu, ComboBox containers, detached toolbars and detached dockpanels. Removed custom setting of mask for combobox containers cause this is nicely handled by Qt. BUG: 237772 M +42 -39 oxygenstyle.cpp M +6 -1 oxygenstyle.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1127429 SVN commit 1127437 by hpereiradacosta: Backport r1127429 Check QX11Info::depth() to decide whether alphachannel can be use to paint widgets like QMenu, ComboBox containers, detached toolbars and detached dockpanels. CCBUG: 237772 M +37 -35 oxygen.cpp M +3 -0 oxygen.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1127437 |