new function, override the event handler for focus_in_event, set the first

2003-06-25  Gilbert Fang <gilbert.fang@sun.com>

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_real_focus_in_event): new function,
	override the event handler for focus_in_event, set the first item
	be focused if no focused item at all.  Fixes bug 41826.

svn path=/trunk/; revision=21547
This commit is contained in:
Gilbert Fang
2003-06-25 17:11:47 +00:00
committed by Chris Toshok
parent b5c224b87d
commit b562aa8d23
2 changed files with 32 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2003-06-25 Gilbert Fang <gilbert.fang@sun.com>
* gui/widgets/e-minicard-view-widget.c
(e_minicard_view_widget_real_focus_in_event): new function,
override the event handler for focus_in_event, set the first item
be focused if no focused item at all. Fixes bug 41826.
2003-06-18 Chris Toshok <toshok@ximian.com>
* gui/contact-editor/e-contact-editor.c (fill_in_field): in the

View File

@ -38,6 +38,7 @@ static void e_minicard_view_widget_reflow (ECanvas *canvas);
static void e_minicard_view_widget_size_allocate (GtkWidget *widget, GtkAllocation *allocation);
static void e_minicard_view_widget_style_set (GtkWidget *widget, GtkStyle *previous_style);
static void e_minicard_view_widget_realize (GtkWidget *widget);
static gboolean e_minicard_view_widget_real_focus_in_event (GtkWidget *widget, GdkEventFocus *event);
static ECanvasClass *parent_class = NULL;
@ -158,12 +159,36 @@ e_minicard_view_widget_class_init (EMinicardViewWidgetClass *klass)
widget_class->style_set = e_minicard_view_widget_style_set;
widget_class->realize = e_minicard_view_widget_realize;
widget_class->size_allocate = e_minicard_view_widget_size_allocate;
widget_class->focus_in_event = e_minicard_view_widget_real_focus_in_event;
canvas_class->reflow = e_minicard_view_widget_reflow;
klass->selection_change = NULL;
klass->column_width_changed = NULL;
klass->right_click = NULL;
}
static gboolean
e_minicard_view_widget_real_focus_in_event(GtkWidget *widget, GdkEventFocus *event)
{
GnomeCanvas *canvas;
EMinicardViewWidget *view;
canvas = GNOME_CANVAS (widget);
view = E_MINICARD_VIEW_WIDGET(widget);
if (!canvas->focused_item) {
EReflow *reflow = E_REFLOW (view->emv);
if (reflow->count) {
int unsorted = e_sorter_sorted_to_model (E_SORTER (reflow->sorter), 0);
if (unsorted != -1)
canvas->focused_item = reflow->items [unsorted];
}
}
return GTK_WIDGET_CLASS(parent_class)->focus_in_event (widget, event);
}
static void