ibusCandidatePopup: Prevent it from covering screenshot UI

If we only raise screenshot UI to top, ibusCandidatePopup can still
cover screenshot UI because each time ibusCandidatePopup updates it's
visibility it will raise it to top and this also happens if we open
screenshot UI via keybinding. This commit fixes it by only raising it
above keyboardBox, because keyboardBox is above all entries in modal
dialogs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2331>
This commit is contained in:
Alynx Zhou 2022-07-04 11:59:43 +08:00 committed by Marge Bot
parent 07d9408420
commit 67a1d3b262

View File

@ -322,7 +322,12 @@ class IbusCandidatePopup extends BoxPointer.BoxPointer {
if (isVisible) {
this.setPosition(this._dummyCursor, 0);
this.open(BoxPointer.PopupAnimation.NONE);
this.get_parent().set_child_above_sibling(this, null);
// We shouldn't be above some components like the screenshot UI,
// so don't raise to the top.
// The on-screen keyboard is expected to be above any entries,
// so just above the keyboard gets us to the right layer.
const { keyboardBox } = Main.layoutManager;
this.get_parent().set_child_above_sibling(this, keyboardBox);
} else {
this.close(BoxPointer.PopupAnimation.NONE);
}