Closed Bug 423606 Opened 17 years ago Closed 17 years ago

Some GTK themes ignore our focus drawing methods

Categories

(Core :: Widget: Gtk, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.9beta5

People

(Reporter: ventnor.bugzilla, Assigned: ventnor.bugzilla)

Details

Attachments

(1 file, 1 obsolete file)

Attached patch Patch (obsolete) — Splinter Review
Some theme engines like Aurora completely ignore calls to gtk_paint_focus on some widgets. Instead, they listen for the GTK_HAS_FOCUS flag and draw the control in a completely different style. Plus, since the latest clearlooks draws a translucent fill for the focus effect now, we must draw it first as a background instead of drawing it on top of the actual control.
Attachment #310188 - Flags: superreview?(roc)
Attachment #310188 - Flags: review?(roc)
Comment on attachment 310188 [details] [diff] [review] Patch over to vlad since roc is gone
Attachment #310188 - Flags: superreview?(vladimir)
Attachment #310188 - Flags: superreview?(roc)
Attachment #310188 - Flags: review?(vladimir)
Attachment #310188 - Flags: review?(roc)
Comment on attachment 310188 [details] [diff] [review] Patch Looks fine.
Attachment #310188 - Flags: superreview?(vladimir)
Attachment #310188 - Flags: superreview+
Attachment #310188 - Flags: review?(vladimir)
Attachment #310188 - Flags: review+
Comment on attachment 310188 [details] [diff] [review] Patch Fixes some problems with themes not drawing focus properly.
Attachment #310188 - Flags: approval1.9b5?
Attachment #310188 - Flags: approval1.9?
To add to that, the latest version of Clearlooks that was just released is what exhibits the new translucent focus effect and bug. This is very likely to be widely in use for Beta 5 so to avoid a lot of bug reports we should consider this for B5.
Attachment #310188 - Flags: approval1.9b5?
Attachment #310188 - Flags: approval1.9b5+
Attachment #310188 - Flags: approval1.9?
Attachment #310188 - Flags: approval1.9+
Hrm. Why is the focus drawing moved to the front in the patch? GTK+ always draws the focus last. And clearlooks uses exactly this to draw transparently on top of everything. Also, are there any problems with the clearlooks focus handling? Clearlooks does not actually query the state of the button, but draws everything from gtk_paint_focus. One thing that may create problems though is if you do not have the GtkWidget::interior-focus style property implemented.
Ventron, can you address Benjamin's issue before I land this?
(In reply to comment #5) > Also, are there any problems with the clearlooks focus handling? Clearlooks > does not actually query the state of the button, but draws everything from > gtk_paint_focus. One thing that may create problems though is if you do not > have the GtkWidget::interior-focus style property implemented. Other theme engines like Aurora do the state querying. (In reply to comment #6) > Ventron, can you address Benjamin's issue before I land this? > All it takes is removing the changes to the gtk_paint_focus call, but I suppose I can attach a new patch. The problem is that this gtk_paint_focus is only called in HTML where only the actual widget has the focus painting and painting the translucent focus ring on top looks kind of wierd...
Attached patch For landingSplinter Review
Attachment #310188 - Attachment is obsolete: true
Keywords: checkin-needed
Checking in widget/src/gtk2/gtk2drawing.c; /cvsroot/mozilla/widget/src/gtk2/gtk2drawing.c,v <-- gtk2drawing.c new revision: 1.101; previous revision: 1.100 done
Status: NEW → RESOLVED
Closed: 17 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9beta5
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: