From 50218724a07791a233e24d3af99d28234d7a158b Mon Sep 17 00:00:00 2001 From: "dbaron%dbaron.org" Date: Wed, 27 Jun 2007 06:38:51 +0000 Subject: [PATCH] Bug 385686, No Focus indicator for radios/checkboxes/textboxes on Linux, Patch by Michael Ventnor, r+sr=roc git-svn-id: svn://10.0.0.236/trunk@228826 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/widget/src/gtk2/gtk2drawing.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mozilla/widget/src/gtk2/gtk2drawing.c b/mozilla/widget/src/gtk2/gtk2drawing.c index 2c634779c2b..e6a5b24b62a 100644 --- a/mozilla/widget/src/gtk2/gtk2drawing.c +++ b/mozilla/widget/src/gtk2/gtk2drawing.c @@ -599,9 +599,6 @@ moz_gtk_toggle_paint(GdkDrawable* drawable, GdkRectangle* rect, GtkWidget *w; GtkStyle *style; - if (state->focused && state_type == GTK_STATE_NORMAL) - state_type = GTK_STATE_PRELIGHT; - if (isradio) { moz_gtk_radio_get_metrics(&indicator_size, &indicator_spacing); w = gRadiobuttonWidget; @@ -636,10 +633,20 @@ moz_gtk_toggle_paint(GdkDrawable* drawable, GdkRectangle* rect, gtk_paint_option(style, drawable, state_type, shadow_type, cliprect, gRadiobuttonWidget, "radiobutton", x, y, width, height); + if (state->focused) { + gtk_paint_focus(style, drawable, GTK_STATE_ACTIVE, cliprect, + gRadiobuttonWidget, "radiobutton", rect->x, rect->y, + rect->width, rect->height); + } } else { gtk_paint_check(style, drawable, state_type, shadow_type, cliprect, gCheckboxWidget, "checkbutton", x, y, width, height); + if (state->focused) { + gtk_paint_focus(style, drawable, GTK_STATE_ACTIVE, cliprect, + gRadiobuttonWidget, "checkbutton", rect->x, rect->y, + rect->width, rect->height); + } } return MOZ_GTK_SUCCESS;