[gnumeric] Fix in-cell-combos attached to merged cells. [#702146]



commit 58e7c5f28e661040b34e920b313061b1e939dc82
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date:   Thu Jun 13 00:28:06 2013 -0600

    Fix in-cell-combos attached to merged cells. [#702146]
    
    2013-06-13  Andreas J. Guelzow <aguelzow pyrshep ca>
    
        * gnm-cell-combo-view.c (gnm_cell_combo_view_popdown): pop up the
        menu below a merge.

 NEWS                              |    1 +
 src/widgets/ChangeLog             |    5 +++++
 src/widgets/gnm-cell-combo-view.c |   16 +++++++++++-----
 3 files changed, 17 insertions(+), 5 deletions(-)
---
diff --git a/NEWS b/NEWS
index 8266f73..f92da51 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,7 @@ Andreas:
        * Make reference display in paste/define names dialog consistent with
          sheet preferences. [Debian #699054]
        * Write/read pagesetup settings to/from xlsx. [#701834]
+       * Fix in-cell-combos attached to merged cells. [#702146]
 
 Darrell Tangman:
        * Update documentation for Edit and Insert menus. [#700596]
diff --git a/src/widgets/ChangeLog b/src/widgets/ChangeLog
index 473c251..c8f9a68 100644
--- a/src/widgets/ChangeLog
+++ b/src/widgets/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-13  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+       * gnm-cell-combo-view.c (gnm_cell_combo_view_popdown): pop up the
+       menu below a merge.
+
 2013-04-26  Morten Welinder <terra gnome org>
 
        * Release 1.12.2
diff --git a/src/widgets/gnm-cell-combo-view.c b/src/widgets/gnm-cell-combo-view.c
index 88a14ab..27cf44d 100644
--- a/src/widgets/gnm-cell-combo-view.c
+++ b/src/widgets/gnm-cell-combo-view.c
@@ -28,7 +28,9 @@
 #include "wbc-gtk.h"
 #include "sheet.h"
 #include "sheet-control-gui.h"
+#include "sheet-merge.h"
 #include "gnm-pane-impl.h"
+#include "ranges.h"
 
 #include <goffice/goffice.h>
 #include <gtk/gtk.h>
@@ -149,7 +151,7 @@ ccombo_popup_destroy (GtkWidget *list)
 }
 
 static gint
-cb_ccombo_key_press (GtkWidget *popup, GdkEventKey *event, GtkWidget *list)
+cb_ccombo_key_press (G_GNUC_UNUSED GtkWidget *popup, GdkEventKey *event, GtkWidget *list)
 {
        switch (event->keyval) {
        case GDK_KEY_Escape :
@@ -175,7 +177,7 @@ cb_ccombo_key_press (GtkWidget *popup, GdkEventKey *event, GtkWidget *list)
 }
 
 static gboolean
-cb_ccombo_popup_motion (GtkWidget *widget, GdkEventMotion *event,
+cb_ccombo_popup_motion (G_GNUC_UNUSED GtkWidget *widget, GdkEventMotion *event,
                        GtkTreeView *list)
 {
        int base, dir = 0;
@@ -282,6 +284,7 @@ gnm_cell_combo_view_popdown (SheetObjectView *sov, guint32 activate_time)
        GtkWindow *toplevel = wbcg_toplevel (scg_wbcg (scg));
        GdkWindow *popup_window;
        GdkDevice *device;
+       GnmRange const *merge;
 
        popup = gtk_window_new (GTK_WINDOW_POPUP);
 
@@ -360,10 +363,13 @@ gnm_cell_combo_view_popdown (SheetObjectView *sov, guint32 activate_time)
                root_x += scg_colrow_distance_get (scg, TRUE,
                        pane->first.col,
                        so->anchor.cell_bound.start.col);
+       merge = gnm_sheet_merge_is_corner (sheet, &(so->anchor.cell_bound.start));
        gtk_window_move (GTK_WINDOW (popup), root_x,
-               root_y + scg_colrow_distance_get (scg, FALSE,
-                       pane->first.row,
-                       so->anchor.cell_bound.start.row + 1));
+               root_y + scg_colrow_distance_get 
+                        (scg, FALSE,
+                         pane->first.row,
+                         so->anchor.cell_bound.start.row + 
+                         ((merge == NULL) ? 1 : range_height (merge))));
 
        gtk_container_add (GTK_CONTAINER (popup), frame);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]