Open Bug 314224 Opened 14 years ago Updated 4 months ago

GTK+ embed cursor always overrides global X11 cursor

Categories

(Core :: Widget: Gtk, defect, P5)

Other
All
defect

Tracking

()

UNCONFIRMED

People

(Reporter: chris, Unassigned)

Details

Attachments

(1 file, 2 obsolete files)

User-Agent:       Mozilla/5.0 (X11; U; Linux ppc; de-DE; rv:1.7.12) Gecko/20051010 Epiphany/1.8.2 (Ubuntu) (Ubuntu package 1.0.7)
Build Identifier: Mozilla/5.0 (X11; U; Linux ppc; de-DE; rv:1.7.12) Gecko/20051010 Epiphany/1.8.2 (Ubuntu) (Ubuntu package 1.0.7)

I was unable to find this particular issue in the 200 cursor-related bugs, but it might already be reported.

When using X11/GNOME/Epiphany, and launching an application, the global X11 cursor changes to a busy cursor. However, for the embedded widget, this cursor is overridden, since gdk_window_set_cursor is called with GDK_LEFT_PTR. Applications are meant to call gdk_window_set_cursor (window, NULL); whenever they don't provide any particular cursor.

The relevant code is in widget/src/gtk2/nsWindow.cpp, nsWindow::SetCursor and get_gtk_cursor. eCursor_standard should be traversed into a NULL GdkCursor, and not into GDK_LEFT_PTR.

Reproducible: Always

Steps to Reproduce:
Summary: GTK+ layer cursor always overrides global X11 cursor → GTK+ embed cursor always overrides global X11 cursor
Component: OS Integration → Widget: Gtk
Product: Firefox → Core
Version: unspecified → Trunk
Attached patch Proposed patch #2 (obsolete) — Splinter Review
Christian Persch felt good enough to test my first patch. This one should work :).
I've just noted that attachment 201168 [details] [diff] [review] swaps the assignment of mCursor and the mContainer check. I have no clue whether this has any visible effects.
From IRC:
21:06:54 <chpe> Manny: I think the ordering is important, so that (when) mContainer is created, it can set the right cursor
21:07:32 <Manny> chpe, (when) it is created, why should it be NULL?
21:09:15 <chpe> it's NULL, but later (...) the container is created, and when that's done, it should have the right cursor
21:11:42 <Manny> I'm not sure whether I can support this, since the cursor won't be actually set in either case, and a later aCursor != mCursor check might fail although nothing was actually done. However, I don't want to break the old semantics, and will adapt it.
Attachment #201161 - Attachment is obsolete: true
Attachment #201168 - Attachment is obsolete: true
QA Contact: os.integration → gtk
You need to log in before you can comment on or make changes to this bug.