screenshot: Get cursor texture from window

When a window is in the background and should not have the cursor on top
of it, its _cursor will be null. By getting the texture through it, we
add this extra check, which was missing before, leading to a cursor
drawn at 0, 0 on windows where it should not have been drawn.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2702>
This commit is contained in:
Ivan Molodetskikh 2023-03-18 21:45:41 -07:00
parent 69e7b8e79a
commit 237c3e958d

View File

@ -917,6 +917,10 @@ class UIWindowSelectorWindow extends St.Button {
this.insert_child_below(this._cursor, this._border); this.insert_child_below(this._cursor, this._border);
} }
getCursorTexture() {
return this._cursor?.content;
}
setCursorVisible(visible) { setCursorVisible(visible) {
if (!this._cursor) if (!this._cursor)
return; return;
@ -1812,7 +1816,7 @@ var ScreenshotUI = GObject.registerClass({
const texture = content.get_texture(); const texture = content.get_texture();
let cursorTexture = this._cursor.content?.get_texture(); let cursorTexture = window.getCursorTexture()?.get_texture();
if (!this._cursor.visible) if (!this._cursor.visible)
cursorTexture = null; cursorTexture = null;