[gnumeric] GUI: Fix menu sensitivity problem.
- From: Morten Welinder <mortenw src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnumeric] GUI: Fix menu sensitivity problem.
- Date: Mon, 31 Aug 2009 15:34:46 +0000 (UTC)
commit d18eb2bd91ba432c6d5c3488573301c907e33dc0
Author: Morten Welinder <terra gnome org>
Date: Mon Aug 31 11:34:28 2009 -0400
GUI: Fix menu sensitivity problem.
ChangeLog | 5 +++
NEWS | 3 ++
src/gnm-pane.c | 70 +++++++++++++++++++++++-----------------------
src/sheet-control-gui.c | 16 +++++++---
src/wbc-gtk-edit.c | 4 +-
5 files changed, 56 insertions(+), 42 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 35aefe8..9b5875b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-31 Morten Welinder <terra gnome org>
+
+ * src/sheet-control-gui.c (scg_mode_edit): update menu sensitivity
+ here. Fixes #593624.
+
2009-08-30 Morten Welinder <terra gnome org>
* configure.in: Post-release bump.
diff --git a/NEWS b/NEWS
index d346ff1..d63ef1e 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,9 @@ Gnumeric 1.9.12
Andreas:
* Add CHOLESKY.
+Morten:
+ * Fix menu sensitivity problem. [#593624]
+
--------------------------------------------------------------------------
Gnumeric 1.9.11
diff --git a/src/gnm-pane.c b/src/gnm-pane.c
index b9fa9c5..dfc3425 100644
--- a/src/gnm-pane.c
+++ b/src/gnm-pane.c
@@ -95,50 +95,50 @@ gnm_pane_object_key_press (GnmPane *pane, GdkEventKey *ev)
switch (ev->keyval) {
case GDK_Escape:
- scg_mode_edit (scg);
- gnm_app_clipboard_unant ();
- return TRUE;
+ scg_mode_edit (scg);
+ gnm_app_clipboard_unant ();
+ return TRUE;
case GDK_BackSpace: /* Ick! */
case GDK_KP_Delete:
case GDK_Delete:
- if (scg->selected_objects != NULL) {
- cmd_objects_delete (sc->wbc,
- go_hash_keys (scg->selected_objects), NULL);
- return TRUE;
- }
- sc_mode_edit (sc);
- break;
+ if (scg->selected_objects != NULL) {
+ cmd_objects_delete (sc->wbc,
+ go_hash_keys (scg->selected_objects), NULL);
+ return TRUE;
+ }
+ sc_mode_edit (sc);
+ break;
case GDK_Tab:
case GDK_ISO_Left_Tab:
case GDK_KP_Tab:
- if (scg->selected_objects != NULL) {
- Sheet *sheet = sc_sheet (sc);
- GSList *prev = NULL, *ptr = sheet->sheet_objects;
- for (; ptr != NULL ; prev = ptr, ptr = ptr->next)
- if (NULL != g_hash_table_lookup (scg->selected_objects, ptr->data)) {
- SheetObject *target;
- if ((ev->state & GDK_SHIFT_MASK)) {
- if (ptr->next == NULL)
- target = sheet->sheet_objects->data;
- else
- target = ptr->next->data;
- } else {
- if (NULL == prev) {
- GSList *last = g_slist_last (ptr);
- target = last->data;
- } else
- target = prev->data;
- }
- if (ptr->data != target) {
- scg_object_unselect (scg, NULL);
- scg_object_select (scg, target);
- return TRUE;
+ if (scg->selected_objects != NULL) {
+ Sheet *sheet = sc_sheet (sc);
+ GSList *prev = NULL, *ptr = sheet->sheet_objects;
+ for (; ptr != NULL ; prev = ptr, ptr = ptr->next)
+ if (NULL != g_hash_table_lookup (scg->selected_objects, ptr->data)) {
+ SheetObject *target;
+ if ((ev->state & GDK_SHIFT_MASK)) {
+ if (ptr->next == NULL)
+ target = sheet->sheet_objects->data;
+ else
+ target = ptr->next->data;
+ } else {
+ if (NULL == prev) {
+ GSList *last = g_slist_last (ptr);
+ target = last->data;
+ } else
+ target = prev->data;
+ }
+ if (ptr->data != target) {
+ scg_object_unselect (scg, NULL);
+ scg_object_select (scg, target);
+ return TRUE;
+ }
}
- }
- }
- break;
+ }
+ break;
case GDK_KP_Left: case GDK_Left:
scg_objects_nudge (scg, pane, (alt ? 4 : (control ? 3 : 8)), -delta , 0, symmetric, shift);
diff --git a/src/sheet-control-gui.c b/src/sheet-control-gui.c
index a14f437..16f3a45 100644
--- a/src/sheet-control-gui.c
+++ b/src/sheet-control-gui.c
@@ -1996,10 +1996,13 @@ scg_cursor_visible (SheetControlGUI *scg, gboolean is_visible)
void
scg_mode_edit (SheetControlGUI *scg)
{
+ WBCGtk *wbcg;
g_return_if_fail (IS_SHEET_CONTROL_GUI (scg));
- if (scg->wbcg != NULL) /* Can be NULL during destruction */
- wbcg_insert_object_clear (scg->wbcg);
+ wbcg = scg->wbcg;
+
+ if (wbcg != NULL) /* Can be NULL during destruction */
+ wbcg_insert_object_clear (wbcg);
scg_object_unselect (scg, NULL);
@@ -2012,9 +2015,12 @@ scg_mode_edit (SheetControlGUI *scg)
scg_cursor_visible (scg, TRUE);
}
- if (scg->wbcg != NULL && wbc_gtk_get_guru (scg->wbcg) != NULL &&
- scg == wbcg_cur_scg (scg->wbcg))
- wbcg_edit_finish (scg->wbcg, WBC_EDIT_REJECT, NULL);
+ if (wbcg != NULL && wbc_gtk_get_guru (wbcg) != NULL &&
+ scg == wbcg_cur_scg (wbcg))
+ wbcg_edit_finish (wbcg, WBC_EDIT_REJECT, NULL);
+
+ if (wbcg)
+ wb_control_update_action_sensitivity (WORKBOOK_CONTROL (wbcg));
}
static void
diff --git a/src/wbc-gtk-edit.c b/src/wbc-gtk-edit.c
index c6c2eef..0ce6111 100644
--- a/src/wbc-gtk-edit.c
+++ b/src/wbc-gtk-edit.c
@@ -988,14 +988,14 @@ wbcg_insert_object (WBCGtk *wbcg, SheetObject *so)
wbcg->new_object = so;
npages = wbcg_get_n_scg (wbcg);
- for (i = 0; i < npages; i++)
+ for (i = 0; i < npages; i++) {
if (NULL != (scg = wbcg_get_nth_scg (wbcg, i))) {
scg_object_unselect (scg, NULL);
scg_cursor_visible (scg, FALSE);
scg_set_display_cursor (scg);
sc_unant (SHEET_CONTROL (scg));
}
-
+ }
wb_control_update_action_sensitivity (WORKBOOK_CONTROL (wbcg));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]