We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 2663

Summary: Ibus IME candidate list appears beneath FULLSCREEN_DESKTOP windows with GNOME Shell
Product: SDL Reporter: Alex Baines <alex>
Component: *don't know*Assignee: Ryan C. Gordon <icculus>
Status: RESOLVED INVALID QA Contact: Sam Lantinga <slouken>
Severity: normal    
Priority: P2    
Version: HG 2.1   
Hardware: x86_64   
OS: Linux   

Description Alex Baines 2014-07-28 19:19:11 UTC
For some reason the candidate list for ibus doesn't show above FULLSCREEN_DESKTOP windows when using GNOME Shell.

It works correctly with Unity, GNOME Flashback + Compiz, GNOME Flashback + Metacity, MATE + compiz, MATE + marco though.

Interestingly, the ibus candidate list *does* appear on top of some other fullscreen applications like Firefox in fullscreen mode.

I'm looking into why it's not working but haven't found anything yet.
Comment 1 Alex Baines 2014-07-28 21:07:47 UTC
Apparently it works correctly with GNOME Shell if the window is first created as a window (i.e. without the SDL_FULLSCREEN_DESKTOP flag in SDL_CreateWindow), and then made fullscreen using SDL_SetWindowFullscreen afterwards.
Comment 2 Alex Baines 2014-08-01 16:35:24 UTC
After some more testing it seems this is not a problem with SDL. I made simple program using just Xlib and hacked the SDL IBus code into it, and it exhibits the same problem.

From what I can tell, GNOME Shell classifies the window as a game shortly after the window opens, due to the fact it refreshes its window very often.

Because of this, it un-redirects the window so it isn't composited to improve performance - however this also breaks the IBus candidate list which needs to be composited on top of the fullscreen game window.

With GNOME Shell, the IBus candidate list window is not rectangular so I'm guessing it is using RGBA visuals with transparency - maybe this has something to do with why compositing is required for it to show above the SDL window.

I tried messing with the _NET_WM_BYPASS_COMPOSITOR hint - SDL sets this to ON by default, but removing the hint or setting it to OFF didn't seem to make a difference.

For some reason the candidate list seems to work fine with Mutter, which is based on the same windowing library (Clutter) as GNOME Shell as far as I know, so I'm not sure what it is GNOME Shell is doing wrong.
Comment 3 Ryan C. Gordon 2015-02-19 02:49:09 UTC
Closing this bug, as it appears to be a Gnome bug and not something in SDL.

(Please reopen if you decide this is incorrect, or perhaps Gnome has some sort of workaround that needs cooperation from SDL to implement.)

--ryan.