static void destroy_hover_window (PsppireSheetHoverTitle *);
static PsppireSheetHoverTitle *create_hover_window (void);
-static GtkStateType psppire_sheet_cell_get_state (PsppireSheet *sheet, gint row, gint col);
-
-
static inline void
dispose_string (const PsppireSheet *sheet, gchar *text)
{
psppire_sheet_cell_draw (sheet, i, j);
}
- if (sheet->select_status == GTK_STATE_NORMAL &&
+ if (sheet->select_status == PSPPIRE_SHEET_NORMAL &&
sheet->active_cell.row >= drawing_range.row0 &&
sheet->active_cell.row <= drawing_range.rowi &&
sheet->active_cell.col >= drawing_range.col0 &&
}
-static GtkStateType
-psppire_sheet_cell_get_state (PsppireSheet *sheet, gint row, gint col)
-{
- PsppireSheetRange *range;
-
- g_return_val_if_fail (sheet != NULL, 0);
- g_return_val_if_fail (PSPPIRE_IS_SHEET (sheet), 0);
- if (col >= psppire_axis_unit_count (sheet->haxis) || row >= psppire_axis_unit_count (sheet->vaxis)) return 0;
- if (col < 0 || row < 0) return 0;
-
- range = &sheet->range;
-
- switch (sheet->select_status)
- {
- case PSPPIRE_SHEET_NORMAL:
- return GTK_STATE_NORMAL;
- break;
- case PSPPIRE_SHEET_ROW_SELECTED:
- if (row >= range->row0 && row <= range->rowi)
- return GTK_STATE_SELECTED;
- break;
- case PSPPIRE_SHEET_COLUMN_SELECTED:
- if (col >= range->col0 && col <= range->coli)
- return GTK_STATE_SELECTED;
- break;
- case PSPPIRE_SHEET_RANGE_SELECTED:
- if (row >= range->row0 && row <= range->rowi && \
- col >= range->col0 && col <= range->coli)
- return GTK_STATE_SELECTED;
- break;
- }
- return GTK_STATE_NORMAL;
-}
-
/* Convert X, Y (in pixels) to *ROW, *COLUMN
If the function returns FALSE, then the results will be unreliable.
*/
PsppireSheetCellAttr attributes;
if (!GTK_WIDGET_VISIBLE (sheet->entry_widget)) return;
- if (sheet->select_status != GTK_STATE_NORMAL) return;
+ if (sheet->select_status != PSPPIRE_SHEET_NORMAL) return;
row = sheet->active_cell.row;
col = sheet->active_cell.col;
return;
psppire_sheet_real_unselect_range (sheet, NULL);
- sheet->select_status = GTK_STATE_NORMAL;
+ sheet->select_status = PSPPIRE_SHEET_NORMAL;
}
}
else
{
+ GdkRectangle area;
sheet->select_status = PSPPIRE_SHEET_NORMAL;
+
+ rectangle_from_range (sheet, &sheet->range, &area);
+ area.x++;
+ area.y++;
+ gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE);
}
}
}
if (forbid_move)
{
- if (sheet->select_status == GTK_STATE_NORMAL)
+ if (sheet->select_status == PSPPIRE_SHEET_NORMAL)
return FALSE;
row = sheet->active_cell.row;
sheet->range = sheet->drag_range;
sheet->drag_range = old_range;
- if (sheet->select_status == GTK_STATE_NORMAL)
+ if (sheet->select_status == PSPPIRE_SHEET_NORMAL)
sheet->select_status = PSPPIRE_SHEET_RANGE_SELECTED;
g_signal_emit (sheet, sheet_signals[RESIZE_RANGE], 0,
if (PSPPIRE_SHEET_IN_SELECTION (sheet) )
{
GdkRectangle area;
+
+ /* Redraw the old range */
+ rectangle_from_range (sheet, &sheet->range, &area);
+ area.x++;
+ area.y++;
+ gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE);
+
sheet->range.rowi = row;
sheet->range.coli = column;
sheet->select_status = PSPPIRE_SHEET_RANGE_SELECTED;
+ /* Redraw the new range */
rectangle_from_range (sheet, &sheet->range, &area);
+ area.x++;
+ area.y++;
gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE);
}
else