static void psppire_sheet_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
+static gboolean psppire_sheet_focus_in (GtkWidget *widget,
+ GdkEventFocus *event,
+ gpointer user_data);
+
+
/* Sheet queries */
static gboolean psppire_sheet_range_isvisible (const PsppireSheet *sheet,
widget_class->expose_event = psppire_sheet_expose;
widget_class->size_request = psppire_sheet_size_request;
widget_class->size_allocate = psppire_sheet_size_allocate;
- widget_class->focus_in_event = NULL;
+ widget_class->focus_in_event = psppire_sheet_focus_in;
widget_class->focus_out_event = NULL;
klass->set_scroll_adjustments = psppire_sheet_set_scroll_adjustments;
return TRUE;
}
+
+static gboolean
+psppire_sheet_focus_in (GtkWidget *w,
+ GdkEventFocus *event,
+ gpointer user_data)
+{
+ PsppireSheet *sheet = PSPPIRE_SHEET (w);
+
+ gtk_widget_grab_focus (sheet->entry_widget);
+
+ return TRUE;
+}
+
+
static void
psppire_sheet_extend_selection (PsppireSheet *sheet, gint row, gint column)
{
gtk_widget_modify_style (sheet->entry_widget, style);
}
-
-
static void
create_sheet_entry (PsppireSheet *sheet)
{