[gnumeric] Sameer Morar: Add key combinations to move sheets. [#634139]
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Sameer Morar: Add key combinations to move sheets. [#634139]
- Date: Sat, 6 Nov 2010 02:50:44 +0000 (UTC)
commit 37aa581c39f0bf26c0bd83de9649140059ab2043
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date: Fri Nov 5 20:53:02 2010 -0600
Sameer Morar: Add key combinations to move sheets. [#634139]
2010-11-05 Andreas J. Guelzow <aguelzow pyrshep ca>
for Sameer Morar <smorar gmail com>
* src/gnm-pane.c (gnm_pane_key_mode_sheet): Enable the key combinations
<control><shift>Page_Up and <control><shift>Page_Down to move the
currently selected sheet left or right respectively. [#634139]
ChangeLog | 7 +++++++
NEWS | 3 +++
src/gnm-pane.c | 36 ++++++++++++++++++++++++++++++------
3 files changed, 40 insertions(+), 6 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 4401d5b..9470d5f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-11-05 Andreas J. Guelzow <aguelzow pyrshep ca>
+ for Sameer Morar <smorar gmail com>
+
+ * src/gnm-pane.c (gnm_pane_key_mode_sheet): Enable the key combinations
+ <control><shift>Page_Up and <control><shift>Page_Down to move the
+ currently selected sheet left or right respectively. [#634139]
+
2010-11-04 Morten Welinder <terra gnome org>
* src/item-cursor.c (cb_autofill_scroll): Limit size of tooltip to
diff --git a/NEWS b/NEWS
index 60958c4..868bfe3 100644
--- a/NEWS
+++ b/NEWS
@@ -28,6 +28,9 @@ Morten:
* Fix analysis tools problems when "as values" is chosen.
* Fix gtk+/X crash with large tooltips.
+Sameer Morar:
+ * Add key combinations to move sheets. [#634139]
+
--------------------------------------------------------------------------
Gnumeric 1.10.11
diff --git a/src/gnm-pane.c b/src/gnm-pane.c
index ce14952..a0aca68 100644
--- a/src/gnm-pane.c
+++ b/src/gnm-pane.c
@@ -153,6 +153,8 @@ gnm_pane_key_mode_sheet (GnmPane *pane, GdkEventKey *event,
SheetView *sv = sc->view;
Sheet *sheet = sv->sheet;
WBCGtk *wbcg = scg->wbcg;
+ WorkbookControl * wbc = scg_wbc(scg);
+ Workbook * wb = wb_control_get_workbook(wbc);
gboolean delayed_movement = FALSE;
gboolean jump_to_bounds = event->state & GDK_CONTROL_MASK;
gboolean is_enter = FALSE;
@@ -261,9 +263,19 @@ gnm_pane_key_mode_sheet (GnmPane *pane, GdkEventKey *event,
case GDK_KP_Page_Up:
case GDK_Page_Up:
- if ((event->state & GDK_CONTROL_MASK) != 0)
- gnm_notebook_prev_page (wbcg->bnotebook);
- else if ((event->state & GDK_MOD1_MASK) == 0) {
+ if ((event->state & GDK_CONTROL_MASK) != 0){
+ if ((event->state & GDK_SHIFT_MASK) != 0){
+ WorkbookSheetState * old_state = workbook_sheet_state_new(wb);
+ int old_pos = sheet->index_in_wb;
+
+ if (old_pos > 0){
+ workbook_sheet_move(sheet, -1);
+ cmd_reorganize_sheets (wbc, old_state, sheet);
+ }
+ } else {
+ gnm_notebook_prev_page (wbcg->bnotebook);
+ }
+ } else if ((event->state & GDK_MOD1_MASK) == 0) {
delayed_movement = TRUE;
scg_queue_movement (scg, movefn,
-(pane->last_visible.row - pane->first.row),
@@ -278,9 +290,21 @@ gnm_pane_key_mode_sheet (GnmPane *pane, GdkEventKey *event,
case GDK_KP_Page_Down:
case GDK_Page_Down:
- if ((event->state & GDK_CONTROL_MASK) != 0)
- gnm_notebook_next_page (wbcg->bnotebook);
- else if ((event->state & GDK_MOD1_MASK) == 0) {
+
+ if ((event->state & GDK_CONTROL_MASK) != 0){
+ if ((event->state & GDK_SHIFT_MASK) != 0){
+ WorkbookSheetState * old_state = workbook_sheet_state_new(wb);
+ int num_sheets = workbook_sheet_count(wb);
+ gint old_pos = sheet->index_in_wb;
+
+ if (old_pos < num_sheets - 1){
+ workbook_sheet_move(sheet, 1);
+ cmd_reorganize_sheets (wbc, old_state, sheet);
+ }
+ } else {
+ gnm_notebook_next_page (wbcg->bnotebook);
+ }
+ } else if ((event->state & GDK_MOD1_MASK) == 0) {
delayed_movement = TRUE;
scg_queue_movement (scg, movefn,
pane->last_visible.row - pane->first.row,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]