[gnumeric] another fix to a difffernet aspect of #687188
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] another fix to a difffernet aspect of #687188
- Date: Mon, 5 Nov 2012 19:53:00 +0000 (UTC)
commit 3b42f51ab942fae50c77ee189935e9551efbe6df
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date: Mon Nov 5 12:52:25 2012 -0700
another fix to a difffernet aspect of #687188
2012-11-04 Andreas J. Guelzow <aguelzow pyrshep ca>
* dialog-sheet-resize.c (cb_ok_clicked): fix sheet focus after resizing.
[#687188]
src/dialogs/ChangeLog | 5 ++++
src/dialogs/dialog-sheet-resize.c | 48 ++++++++++++++++++++++--------------
2 files changed, 34 insertions(+), 19 deletions(-)
---
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index e4da920..8005e74 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-04 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * dialog-sheet-resize.c (cb_ok_clicked): fix sheet focus after resizing.
+ [#687188]
+
2012-11-04 Jean Brefort <jean brefort normalesup org>
* dialog-sheet-resize.c (cb_ok_clicked): fix sheet focus after resizing.
diff --git a/src/dialogs/dialog-sheet-resize.c b/src/dialogs/dialog-sheet-resize.c
index 461616c..ee14e40 100644
--- a/src/dialogs/dialog-sheet-resize.c
+++ b/src/dialogs/dialog-sheet-resize.c
@@ -1,3 +1,4 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* dialog-sheet-resize.c: Dialog to resize current or all sheets.
*
@@ -111,34 +112,43 @@ cb_ok_clicked (ResizeState *state)
Workbook *wb;
gboolean all_sheets;
int cols, rows;
- Sheet *cur_sheet;
get_sizes (state, &cols, &rows);
all_sheets = gtk_toggle_button_get_active
(GTK_TOGGLE_BUTTON (state->all_sheets_button));
wbc = WORKBOOK_CONTROL (state->wbcg);
- wb = wb_control_get_workbook (wbc);
- cur_sheet = wb_control_cur_sheet (wbc);
- sheets = workbook_sheets (wb);
- for (l = sheets; l; l = l->next) {
- Sheet *this_sheet = l->data;
-
- if (!all_sheets && this_sheet != state->sheet)
- continue;
-
- if (cols == gnm_sheet_get_max_cols (this_sheet) &&
- rows == gnm_sheet_get_max_rows (this_sheet))
- continue;
-
- changed_sheets = (this_sheet == cur_sheet)?
- g_slist_append (changed_sheets, this_sheet):
- g_slist_prepend (changed_sheets, this_sheet);
+
+ if (all_sheets) {
+ wb = wb_control_get_workbook (wbc);
+ sheets = workbook_sheets (wb);
+ for (l = sheets; l; l = l->next) {
+ Sheet *this_sheet = l->data;
+
+ if (this_sheet == state->sheet)
+ continue;
+
+ if (cols == gnm_sheet_get_max_cols (this_sheet) &&
+ rows == gnm_sheet_get_max_rows (this_sheet))
+ continue;
+
+ changed_sheets = g_slist_prepend (changed_sheets, this_sheet);
+ }
+ g_slist_free (sheets);
+ }
+
+ if (changed_sheets ||
+ cols != gnm_sheet_get_max_cols (state->sheet) ||
+ rows != gnm_sheet_get_max_rows (state->sheet)) {
+ /* We also append the sheet if it isn't changed in size */
+ /* to ensure that the focus stays on the current sheet. */
+ changed_sheets = g_slist_prepend (changed_sheets, state->sheet);
}
- g_slist_free (sheets);
+
+
if (changed_sheets)
- cmd_resize_sheets (wbc, g_slist_reverse (changed_sheets),
+ cmd_resize_sheets (wbc, changed_sheets,
cols, rows);
gtk_widget_destroy (state->dialog);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]