After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 723740 - Right-click menus have no border (or anything else to stop them blending into a white app)
Right-click menus have no border (or anything else to stop them blending into...
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: X11
unspecified
Other Linux
: Normal minor
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2014-02-06 07:40 UTC by Adam Williamson
Modified: 2014-02-11 03:31 UTC
See Also:
GNOME target: 3.12
GNOME version: ---



Description Adam Williamson 2014-02-06 07:40:28 UTC
With GTK+ 3.11.5 on Fedora Rawhide, when I right-click in a GTK+3 app, the menu has no border or anything. If the area of the app behind it is white, the menu blends entirely into the app. It's a bit distracting.

I see https://git.gnome.org/browse/gtk+/commit/?id=f13b3e3aeb5dae2da0a2c62599d8d5f24bfd4e46 , but I got the impression popovers were something different from right-click menus, so I don't think this is the same bug as that.

Will attach screenshot.
Comment 1 Adam Williamson 2014-02-06 07:42:01 UTC
Huh, the right-click menu doesn't appear in the screenshot. So, no screenshot. :)
Comment 2 Baptiste Mille-Mathias 2014-02-06 07:45:43 UTC
Confirmed.
Comment 3 Matthias Clasen 2014-02-10 03:55:27 UTC
Looks like a theme issue to me
Comment 4 Cosimo Cecchi 2014-02-10 09:31:19 UTC
I don't think so - tried to reproduce it here and running the application with GDK_RGBA=0 shows the menu border correctly.
Comment 5 Matthias Clasen 2014-02-10 13:25:19 UTC
Then it must be mutter. It does:

static gboolean
meta_window_actor_has_shadow (MetaWindowActor *self)
{

...

  /*
   * Do not add shadows to non-opaque windows; eventually we should generate
   * a shadow from the input shape for such windows.
   */
  if (is_non_opaque (self))
    return FALSE;

  /*
   * Add shadows to override redirect windows (e.g., Gtk menus).
   */
  if (priv->window->override_redirect)
    return TRUE;

}

I guess that needs to be ordered the other way around, or maybe is_non_opaque needs to be changed
Comment 6 Jasper St. Pierre (not reading bugmail) 2014-02-10 16:15:25 UTC
No, unless we're guaranteed that the ARGB32 surface is an opaque square. We should probably revert the change to use ARGB32 surfaces by default.

I *completely* forgot that we don't put shadows on ARGB32 windows. This will also break shadows for any non-CSD GTK+ app as well.
Comment 7 Matthias Clasen 2014-02-10 19:08:58 UTC
> I *completely* forgot that we don't put shadows on ARGB32 windows. This will
> also break shadows for any non-CSD GTK+ app as well.

It doesn't - you put shadows on every window with a frame, regardless of visual. Menus are the only thing thats broken.


But I agree that we should probably just revert this, since we don't actually need it for our theme, and it causes problems.