[arch-commits] Commit in gnumeric/trunk (4 files)

Eric Bélanger eric at archlinux.org
Fri May 8 22:34:23 EDT 2009


    Date: Friday, May 8, 2009 @ 22:34:23
  Author: eric
Revision: 38553

upgpkg: gnumeric 1.8.4-3
    Added patches to fix gtk 2.16 ABI break (close FS#14063)

Added:
  gnumeric/trunk/gtk2.16.diff
  gnumeric/trunk/set-flag.diff
Modified:
  gnumeric/trunk/ChangeLog
  gnumeric/trunk/PKGBUILD

---------------+
 ChangeLog     |    5 
 PKGBUILD      |   14 +-
 gtk2.16.diff  |  288 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 set-flag.diff |  264 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 567 insertions(+), 4 deletions(-)

Modified: ChangeLog
===================================================================
--- ChangeLog	2009-05-08 22:28:54 UTC (rev 38552)
+++ ChangeLog	2009-05-09 02:34:23 UTC (rev 38553)
@@ -1,3 +1,8 @@
+2009-05-08  Eric Belanger  <eric at archlinux.org>
+
+	* gnumeric 1.8.4-3
+	* Added patches to fix gtk 2.16 ABI break (close FS#14063)
+
 2009-02-07  Eric Belanger  <eric at archlinux.org>
 
 	* gnumeric 1.8.4-2

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-05-08 22:28:54 UTC (rev 38552)
+++ PKGBUILD	2009-05-09 02:34:23 UTC (rev 38553)
@@ -4,7 +4,7 @@
 
 pkgname=gnumeric
 pkgver=1.8.4
-pkgrel=2
+pkgrel=3
 pkgdesc="A GNOME Spreadsheet Program"
 arch=('i686' 'x86_64')
 url="http://www.gnome.org/projects/gnumeric/"
@@ -14,12 +14,18 @@
 optdepends=('python: for python plugin support' 'psiconv: for Psion 5 file support' 'yelp: for viewing the help manual')
 install=gnumeric.install
 options=('libtool')
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 translations.diff)
-md5sums=('338f0084f04a16f78797ad01f85d3251' '6f4e8cff91aca37104099111a2024c97')
-sha1sums=('2d765b0d06509e0695c4d3ec96b94f8acba88735' 'c4a7c05cadaf57edec4c32a569d95c2a4f97f67b')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 translations.diff gtk2.16.diff set-flag.diff)
+md5sums=('338f0084f04a16f78797ad01f85d3251' '6f4e8cff91aca37104099111a2024c97'\
+         '046ca67a7b84674c2cd525e6f633fe7b' 'cec60fa6a1238bca40045ec5b3738652')
+sha1sums=('2d765b0d06509e0695c4d3ec96b94f8acba88735'
+          'c4a7c05cadaf57edec4c32a569d95c2a4f97f67b'
+          'e4139f2e36517171f633a7da0ad1ec9b85ce83b7'
+          'cc25f1f56ac11d43dde09589d0b655e97627ca13')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
+  patch -p1 < ../gtk2.16.diff || return 1
+  patch -p1 < ../set-flag.diff || return 1
   patch -p1 < ../translations.diff || return 1
   ./configure --prefix=/usr --sysconfdir=/etc \
               --localstatedir=/var --disable-static \

Added: gtk2.16.diff
===================================================================
--- gtk2.16.diff	                        (rev 0)
+++ gtk2.16.diff	2009-05-09 02:34:23 UTC (rev 38553)
@@ -0,0 +1,288 @@
+From 75fe906cb0afce76a47338415773a6d4c5f07c5c Mon Sep 17 00:00:00 2001
+From: Morten Welinder <terra at gnome.org>
+Date: Thu, 30 Apr 2009 23:04:49 +0000
+Subject: Work around gtk+ 2.16 ABI break re spinbuttons.
+
+---
+diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
+index 5f63b08..8fcc3f4 100644
+--- a/src/dialogs/ChangeLog
++++ b/src/dialogs/ChangeLog
+@@ -1,3 +1,7 @@
++2009-04-40  Morten Welinder <terra at gnome.org>
++
++	* *.glade: Work around ABI break for spinbuttons.  #580930.
++
+ 2009-01-18  Jody Goldberg <jody at gnome.org>
+ 
+ 	* Release 1.8.4
+diff --git a/src/dialogs/anova-one.glade b/src/dialogs/anova-one.glade
+index cf95a5b..a822db5 100644
+--- a/src/dialogs/anova-one.glade
++++ b/src/dialogs/anova-one.glade
+@@ -318,8 +318,7 @@
+ 		      <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+ 		      <property name="snap_to_ticks">False</property>
+ 		      <property name="wrap">False</property>
+-		      <property name="adjustment">0.05 0 1 0.01 10 10</property>
+-		    </widget>
++		      <property name="adjustment">0.05 0 1 0.01 10 0</property>		    </widget>
+ 		    <packing>
+ 		      <property name="left_attach">1</property>
+ 		      <property name="right_attach">2</property>
+diff --git a/src/dialogs/anova-two.glade b/src/dialogs/anova-two.glade
+index 3b101fb..c25e425 100644
+--- a/src/dialogs/anova-two.glade
++++ b/src/dialogs/anova-two.glade
+@@ -263,8 +263,7 @@
+ 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		      <property name="snap_to_ticks">False</property>
+ 		      <property name="wrap">False</property>
+-		      <property name="adjustment">0.05 0 1 0.01 0.05 0.05</property>
+-		    </widget>
++		      <property name="adjustment">0.05 0 1 0.01 0.05 0</property>		    </widget>
+ 		    <packing>
+ 		      <property name="left_attach">1</property>
+ 		      <property name="right_attach">2</property>
+diff --git a/src/dialogs/cell-format.glade b/src/dialogs/cell-format.glade
+index be30f4f..968754d 100644
+--- a/src/dialogs/cell-format.glade
++++ b/src/dialogs/cell-format.glade
+@@ -356,8 +356,7 @@
+ 				  <property name="update_policy">GTK_UPDATE_IF_VALID</property>
+ 				  <property name="snap_to_ticks">False</property>
+ 				  <property name="wrap">False</property>
+-				  <property name="adjustment">0 0 20 1 10 10</property>
+-				</widget>
++				  <property name="adjustment">0 0 20 1 10 0</property>				</widget>
+ 				<packing>
+ 				  <property name="left_attach">1</property>
+ 				  <property name="right_attach">2</property>
+diff --git a/src/dialogs/col-width.glade b/src/dialogs/col-width.glade
+index 907a629..f87b21a 100644
+--- a/src/dialogs/col-width.glade
++++ b/src/dialogs/col-width.glade
+@@ -148,8 +148,7 @@
+ 	      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 	      <property name="snap_to_ticks">False</property>
+ 	      <property name="wrap">False</property>
+-	      <property name="adjustment">5 5 1000 1 5 5</property>
+-	    </widget>
++	      <property name="adjustment">5 5 1000 1 5 0</property>	    </widget>
+ 	    <packing>
+ 	      <property name="left_attach">1</property>
+ 	      <property name="right_attach">2</property>
+diff --git a/src/dialogs/descriptive-stats.glade b/src/dialogs/descriptive-stats.glade
+index 9653553..35bde2c 100644
+--- a/src/dialogs/descriptive-stats.glade
++++ b/src/dialogs/descriptive-stats.glade
+@@ -474,8 +474,7 @@
+ 		  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		  <property name="snap_to_ticks">False</property>
+ 		  <property name="wrap">False</property>
+-		  <property name="adjustment">0.05 0 1 0.01 10 10</property>
+-		</widget>
++		  <property name="adjustment">0.05 0 1 0.01 10 0</property>		</widget>
+ 		<packing>
+ 		  <property name="left_attach">2</property>
+ 		  <property name="right_attach">3</property>
+diff --git a/src/dialogs/dialog-stf.glade b/src/dialogs/dialog-stf.glade
+index 0673cdd..77c7acd 100644
+--- a/src/dialogs/dialog-stf.glade
++++ b/src/dialogs/dialog-stf.glade
+@@ -515,8 +515,7 @@
+ 			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 			  <property name="snap_to_ticks">False</property>
+ 			  <property name="wrap">False</property>
+-			  <property name="adjustment">1 1 100 1 10 10</property>
+-			</widget>
++			  <property name="adjustment">1 1 100 1 10 0</property>			</widget>
+ 			<packing>
+ 			  <property name="padding">0</property>
+ 			  <property name="expand">False</property>
+@@ -557,8 +556,7 @@
+ 			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 			  <property name="snap_to_ticks">False</property>
+ 			  <property name="wrap">False</property>
+-			  <property name="adjustment">1 1 100 1 10 10</property>
+-			</widget>
++			  <property name="adjustment">1 1 100 1 10 0</property>			</widget>
+ 			<packing>
+ 			  <property name="padding">0</property>
+ 			  <property name="expand">False</property>
+diff --git a/src/dialogs/dialog-zoom.glade b/src/dialogs/dialog-zoom.glade
+index 30e65cc..3cd716a 100644
+--- a/src/dialogs/dialog-zoom.glade
++++ b/src/dialogs/dialog-zoom.glade
+@@ -254,8 +254,7 @@
+ 			      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 			      <property name="snap_to_ticks">False</property>
+ 			      <property name="wrap">False</property>
+-			      <property name="adjustment">100 10 500 5 25 25</property>
+-			    </widget>
++			      <property name="adjustment">100 10 500 5 25 0</property>			    </widget>
+ 			    <packing>
+ 			      <property name="padding">0</property>
+ 			      <property name="expand">False</property>
+diff --git a/src/dialogs/print.glade b/src/dialogs/print.glade
+index 196ffd0..f2a1662 100644
+--- a/src/dialogs/print.glade
++++ b/src/dialogs/print.glade
+@@ -698,8 +698,7 @@
+                                       <widget class="GtkSpinButton" id="scale-h-spin">
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+-                                        <property name="adjustment">1 1 100 1 10 10</property>
+-                                        <property name="climb_rate">1</property>
++                                        <property name="adjustment">1 1 100 1 10 0</property>                                        <property name="climb_rate">1</property>
+                                       </widget>
+                                       <packing>
+                                         <property name="left_attach">2</property>
+@@ -747,8 +746,7 @@
+                                       <widget class="GtkSpinButton" id="scale-v-spin">
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+-                                        <property name="adjustment">1 1 100 1 10 10</property>
+-                                        <property name="climb_rate">1</property>
++                                        <property name="adjustment">1 1 100 1 10 0</property>                                        <property name="climb_rate">1</property>
+                                       </widget>
+                                       <packing>
+                                         <property name="left_attach">2</property>
+@@ -792,8 +790,7 @@
+                                       <widget class="GtkSpinButton" id="scale-percent-spin">
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+-                                        <property name="adjustment">10 10 1000 1 10 10</property>
+-                                        <property name="climb_rate">1</property>
++                                        <property name="adjustment">10 10 1000 1 10 0</property>                                        <property name="climb_rate">1</property>
+                                         <property name="digits">1</property>
+                                         <property name="numeric">True</property>
+                                       </widget>
+diff --git a/src/dialogs/row-height.glade b/src/dialogs/row-height.glade
+index 71e62b0..3004d87 100644
+--- a/src/dialogs/row-height.glade
++++ b/src/dialogs/row-height.glade
+@@ -149,8 +149,7 @@
+ 	      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 	      <property name="snap_to_ticks">False</property>
+ 	      <property name="wrap">False</property>
+-	      <property name="adjustment">5 5 1000 1 5 5</property>
+-	    </widget>
++	      <property name="adjustment">5 5 1000 1 5 0</property>	    </widget>
+ 	    <packing>
+ 	      <property name="left_attach">1</property>
+ 	      <property name="right_attach">2</property>
+diff --git a/src/dialogs/simulation.glade b/src/dialogs/simulation.glade
+index d084dfc..356c90b 100644
+--- a/src/dialogs/simulation.glade
++++ b/src/dialogs/simulation.glade
+@@ -345,8 +345,7 @@
+ 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		      <property name="snap_to_ticks">False</property>
+ 		      <property name="wrap">False</property>
+-		      <property name="adjustment">10 1 36000 10 10 10</property>
+-		    </widget>
++		      <property name="adjustment">10 1 36000 10 10 0</property>		    </widget>
+ 		    <packing>
+ 		      <property name="left_attach">2</property>
+ 		      <property name="right_attach">3</property>
+@@ -366,8 +365,7 @@
+ 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		      <property name="snap_to_ticks">False</property>
+ 		      <property name="wrap">False</property>
+-		      <property name="adjustment">1000 1 1e+10 1000 10 10</property>
+-		    </widget>
++		      <property name="adjustment">1000 1 1e+10 1000 10 0</property>		    </widget>
+ 		    <packing>
+ 		      <property name="left_attach">2</property>
+ 		      <property name="right_attach">3</property>
+@@ -387,8 +385,7 @@
+ 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		      <property name="snap_to_ticks">False</property>
+ 		      <property name="wrap">False</property>
+-		      <property name="adjustment">1 1 1e+08 1 10 10</property>
+-		    </widget>
++		      <property name="adjustment">1 1 1e+08 1 10 0</property>		    </widget>
+ 		    <packing>
+ 		      <property name="left_attach">2</property>
+ 		      <property name="right_attach">3</property>
+@@ -408,8 +405,7 @@
+ 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		      <property name="snap_to_ticks">False</property>
+ 		      <property name="wrap">False</property>
+-		      <property name="adjustment">1 1 1e+08 1 10 10</property>
+-		    </widget>
++		      <property name="adjustment">1 1 1e+08 1 10 0</property>		    </widget>
+ 		    <packing>
+ 		      <property name="left_attach">2</property>
+ 		      <property name="right_attach">3</property>
+diff --git a/src/dialogs/so-scrollbar.glade b/src/dialogs/so-scrollbar.glade
+index f4d7de2..8890bbb 100644
+--- a/src/dialogs/so-scrollbar.glade
++++ b/src/dialogs/so-scrollbar.glade
+@@ -194,8 +194,7 @@
+ 	      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 	      <property name="snap_to_ticks">False</property>
+ 	      <property name="wrap">False</property>
+-	      <property name="adjustment">0 0 3001 1 10 1</property>
+-	      <accessibility>
++	      <property name="adjustment">0 0 3001 1 10 0</property>	      <accessibility>
+ 		<atkrelation target="label_min" type="labelled-by"/>
+ 	      </accessibility>
+ 	    </widget>
+@@ -218,8 +217,7 @@
+ 	      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 	      <property name="snap_to_ticks">False</property>
+ 	      <property name="wrap">False</property>
+-	      <property name="adjustment">0 0 3001 1 10 1</property>
+-	      <accessibility>
++	      <property name="adjustment">0 0 3001 1 10 0</property>	      <accessibility>
+ 		<atkrelation target="label_max" type="labelled-by"/>
+ 	      </accessibility>
+ 	    </widget>
+@@ -242,8 +240,7 @@
+ 	      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 	      <property name="snap_to_ticks">False</property>
+ 	      <property name="wrap">False</property>
+-	      <property name="adjustment">0 0 3001 1 10 1</property>
+-	      <accessibility>
++	      <property name="adjustment">0 0 3001 1 10 0</property>	      <accessibility>
+ 		<atkrelation target="label_increment" type="labelled-by"/>
+ 	      </accessibility>
+ 	    </widget>
+@@ -266,8 +263,7 @@
+ 	      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 	      <property name="snap_to_ticks">False</property>
+ 	      <property name="wrap">False</property>
+-	      <property name="adjustment">0 0 3001 1 10 1</property>
+-	      <accessibility>
++	      <property name="adjustment">0 0 3001 1 10 0</property>	      <accessibility>
+ 		<atkrelation target="label_page" type="labelled-by"/>
+ 	      </accessibility>
+ 	    </widget>
+diff --git a/src/dialogs/solver.glade b/src/dialogs/solver.glade
+index 66eab7c..b58fdf3 100644
+--- a/src/dialogs/solver.glade
++++ b/src/dialogs/solver.glade
+@@ -668,8 +668,7 @@ Bool
+ 		  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		  <property name="snap_to_ticks">False</property>
+ 		  <property name="wrap">False</property>
+-		  <property name="adjustment">100 1 1e+10 10 10 10</property>
+-		</widget>
++		  <property name="adjustment">100 1 1e+10 10 10 0</property>		</widget>
+ 		<packing>
+ 		  <property name="left_attach">1</property>
+ 		  <property name="right_attach">2</property>
+@@ -689,8 +688,7 @@ Bool
+ 		  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ 		  <property name="snap_to_ticks">False</property>
+ 		  <property name="wrap">False</property>
+-		  <property name="adjustment">30 1 36000 10 10 10</property>
+-		</widget>
++		  <property name="adjustment">30 1 36000 10 10 0</property>		</widget>
+ 		<packing>
+ 		  <property name="left_attach">1</property>
+ 		  <property name="right_attach">2</property>
+--
+cgit v0.8.2

Added: set-flag.diff
===================================================================
--- set-flag.diff	                        (rev 0)
+++ set-flag.diff	2009-05-09 02:34:23 UTC (rev 38553)
@@ -0,0 +1,264 @@
+From 9932dc2cafe66b752e965175a3cbe9889819feb5 Mon Sep 17 00:00:00 2001
+From: Jody Goldberg <jody at gnome.org>
+Date: Sat, 14 Mar 2009 22:21:18 +0000
+Subject: clear the 'im_block_edit_start' flag. (gnm_pane_unrealize) : set the flag.
+
+2009-03-13  Jody Goldberg <jody at gnome.org>
+
+	* src/gnm-pane.c (gnm_pane_realize) : clear the 'im_block_edit_start' flag.
+	(gnm_pane_unrealize) : set the flag.
+
+	* src/application.c (gnm_app_add_extra_ui) : take a group name.
+	(gnm_app_remove_extra_ui) : patch minor leak.
+	* src/gnm-plugin.c (plugin_service_ui_activate) : use the supplied
+	  group name rather than a static name that is shared between all
+	  custom ui.
+
+
+
+svn path=/branches/gnumeric-1-8/; revision=17206
+---
+diff --git a/ChangeLog b/ChangeLog
+index 6ac6e49..17b282a 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,14 @@
++2009-03-13  Jody Goldberg <jody at gnome.org>
++
++	* src/gnm-pane.c (gnm_pane_realize) : clear the 'im_block_edit_start' flag.
++	(gnm_pane_unrealize) : set the flag.
++
++	* src/application.c (gnm_app_add_extra_ui) : take a group name.
++	(gnm_app_remove_extra_ui) : patch minor leak.
++	* src/gnm-plugin.c (plugin_service_ui_activate) : use the supplied
++	  group name rather than a static name that is shared between all
++	  custom ui.
++
+ 2009-01-18  Jody Goldberg <jody at gnome.org>
+ 
+ 	* configure.in : post release bump
+diff --git a/NEWS b/NEWS
+index 3603561..4391951 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,5 +1,8 @@
+ Gnumeric 1.8.5
+ 
++Jody:
++	* Work around semantic changes in gtk-2.16.
++
+ Jon Kåre:
+         * Work around vulnerability in Python. CVE-2009-0318 [#569648]
+ 
+diff --git a/src/application.c b/src/application.c
+index fccd626..04a47e7 100644
+--- a/src/application.c
++++ b/src/application.c
+@@ -815,12 +815,14 @@ gnm_action_free (GnmAction *action)
+ }
+ 
+ GnmAppExtraUI *
+-gnm_app_add_extra_ui (GSList *actions, char *layout,
++gnm_app_add_extra_ui (char const *group_name,
++		      GSList *actions, char *layout,
+ 		      char const *domain,
+ 		      gpointer user_data)
+ {
+ 	GnmAppExtraUI *extra_ui = g_new0 (GnmAppExtraUI, 1);
+ 	extra_uis = g_slist_prepend (extra_uis, extra_ui);
++	extra_ui->group_name = g_strdup (group_name);
+ 	extra_ui->actions = actions;
+ 	extra_ui->layout = layout;
+ 	extra_ui->user_data = user_data;
+@@ -832,6 +834,8 @@ void
+ gnm_app_remove_extra_ui (GnmAppExtraUI *extra_ui)
+ {
+ 	g_signal_emit (G_OBJECT (app), signals [CUSTOM_UI_REMOVED], 0, extra_ui);
++	g_free (extra_ui->group_name);
++	g_free (extra_ui);
+ }
+ 
+ void
+diff --git a/src/application.h b/src/application.h
+index 18d8837..ccf7c01 100644
+--- a/src/application.h
++++ b/src/application.h
+@@ -79,6 +79,7 @@ struct _GnmAction {
+ 	GnmActionHandler	handler;
+ };
+ typedef struct {
++	char const *group_name;
+ 	GSList	   *actions;
+ 	char	   *layout;
+ 	char const *domain;
+@@ -90,7 +91,8 @@ GnmAction *gnm_action_new  (char const *name, char const *label,
+ 			    GnmActionHandler handler);
+ void	   gnm_action_free (GnmAction *action);
+ 
+-GnmAppExtraUI *gnm_app_add_extra_ui (GSList *actions, char *layout,
++GnmAppExtraUI *gnm_app_add_extra_ui (char const *group_name,
++				     GSList *actions, char *layout,
+ 				     char const *domain,
+ 				     gpointer user_data);
+ void	   gnm_app_remove_extra_ui  (GnmAppExtraUI *extra_ui);
+diff --git a/src/gnm-pane-impl.h b/src/gnm-pane-impl.h
+index 90578b8..a38e2dc 100644
+--- a/src/gnm-pane-impl.h
++++ b/src/gnm-pane-impl.h
+@@ -30,14 +30,13 @@ struct _GnmPane {
+ 	gboolean   sliding_adjacent_h, sliding_adjacent_v;
+ 
+ 	/*  IM */
+-	guint      reseting_im :1;	/* quick hack to keep gtk_im_context_reset from starting an edit */
++	guint im_block_edit_start :1; /* see gnm_pane_key_press for details */
++	guint im_first_focus	  :1; /* see gnm_pane_init for details */
+ 	guint      preedit_length;
+ 	GtkIMContext  *im_context;
+ 	PangoAttrList *preedit_attrs;
+-	gboolean insert_decimal;
+-
+-
+ 
++	gboolean insert_decimal;
+ 
+ 	int		 index;
+ 	struct {
+diff --git a/src/gnm-pane.c b/src/gnm-pane.c
+index 68be0d4..58f1579 100644
+--- a/src/gnm-pane.c
++++ b/src/gnm-pane.c
+@@ -587,11 +587,15 @@ gnm_pane_key_press (GtkWidget *widget, GdkEventKey *event)
+ 		event->keyval == GDK_KP_Decimal ||
+ 		event->keyval == GDK_KP_Separator;
+ 
+-	if (gtk_im_context_filter_keypress (pane->im_context,event))
++	if (gtk_im_context_filter_keypress (pane->im_context, event))
+ 		return TRUE;
+-	pane->reseting_im = TRUE;
++
++	/* in gtk-2.8 something changed.  gtk_im_context_reset started
++	 * triggering a pre-edit-changed.  We'd end up start and finishing an
++	 * empty edit every time the cursor moved */
++	pane->im_block_edit_start = TRUE;
+ 	gtk_im_context_reset (pane->im_context);
+-	pane->reseting_im = FALSE;
++	pane->im_block_edit_start = FALSE;
+ 
+ 	if (gnm_pane_key_mode_sheet (pane, event, allow_rangesel))
+ 		return TRUE;
+@@ -628,7 +632,17 @@ static gint
+ gnm_pane_focus_in (GtkWidget *widget, GdkEventFocus *event)
+ {
+ #ifndef GNM_USE_HILDON
++	/* The first call to focus-in was sometimes the first thing to init the
++	 * imcontext.  In which case the im_context_focus_in would fire a
++	 * preedit-changed, and we would start editing. */
++	GnmPane *pane = GNM_PANE (widget);
++	if (pane->im_first_focus)
++		pane->im_block_edit_start = TRUE;
+ 	gtk_im_context_focus_in (GNM_PANE (widget)->im_context);
++	if (pane->im_first_focus) {
++		pane->im_first_focus = FALSE;
++		pane->im_block_edit_start = FALSE;
++	}
+ #endif
+ 	return (*GTK_WIDGET_CLASS (parent_klass)->focus_in_event) (widget, event);
+ }
+@@ -645,6 +659,8 @@ gnm_pane_realize (GtkWidget *w)
+ {
+ 	GtkStyle  *style;
+ 
++	GNM_PANE (w)->im_block_edit_start = FALSE;
++
+ 	if (GTK_WIDGET_CLASS (parent_klass)->realize)
+ 		(*GTK_WIDGET_CLASS (parent_klass)->realize) (w);
+ 
+@@ -667,8 +683,10 @@ gnm_pane_unrealize (GtkWidget *widget)
+ 	pane = GNM_PANE (widget);
+ 	g_return_if_fail (pane != NULL);
+ 
+-	if (pane->im_context)
++	if (pane->im_context) {
++		pane->im_block_edit_start = TRUE;
+ 		gtk_im_context_set_client_window (pane->im_context, NULL);
++	}
+ 
+ 	(*GTK_WIDGET_CLASS (parent_klass)->unrealize)(widget);
+ }
+@@ -733,10 +751,7 @@ cb_gnm_pane_preedit_changed (GtkIMContext *context, GnmPane *pane)
+ 		pango_attr_list_unref (pane->preedit_attrs);
+ 	gtk_im_context_get_preedit_string (pane->im_context, &preedit_string, &pane->preedit_attrs, &cursor_pos);
+ 
+-	/* in gtk-2.8 something changed.  gtk_im_context_reset started
+-	 * triggering a pre-edit-changed.  We'd end up start and finishing an
+-	 * empty edit every time the cursor moved */
+-	if (!pane->reseting_im &&
++	if (!pane->im_block_edit_start &&
+ 	    !wbcg_is_editing (wbcg) && !wbcg_edit_start (wbcg, TRUE, TRUE)) {
+ 		gtk_im_context_reset (pane->im_context);
+ 		pane->preedit_length = 0;
+@@ -911,8 +926,9 @@ gnm_pane_init (GnmPane *pane)
+ 
+ 	pane->im_context = gtk_im_multicontext_new ();
+ 	pane->preedit_length = 0;
+-	pane->preedit_attrs = NULL;
+-	pane->reseting_im = FALSE;
++	pane->preedit_attrs    = NULL;
++	pane->im_block_edit_start = FALSE;
++	pane->im_first_focus = TRUE;
+ 
+ 	GTK_WIDGET_SET_FLAGS (canvas, GTK_CAN_FOCUS);
+ 	GTK_WIDGET_SET_FLAGS (canvas, GTK_CAN_DEFAULT);
+@@ -2062,9 +2078,9 @@ gnm_pane_size_guide_start (GnmPane *pane, gboolean vert, int colrow, int width)
+ 			"width-pixels", 1,
+ 			NULL);
+ 	else {
+-		static char const dat [] = { 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88 };
++		static unsigned char const dat [] = { 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88 };
+ 		GdkBitmap *stipple = gdk_bitmap_create_from_data (
+-			GTK_WIDGET (pane)->window, dat, 8, 8);
++			GTK_WIDGET (pane)->window, (const gchar *)dat, 8, 8);
+ 		foo_canvas_item_set (pane->size_guide.guide, "fill-stipple", stipple, NULL);
+ 		g_object_unref (stipple);
+ 	}
+diff --git a/src/gnm-plugin.c b/src/gnm-plugin.c
+index d546a39..dd659bd 100644
+--- a/src/gnm-plugin.c
++++ b/src/gnm-plugin.c
+@@ -363,7 +363,7 @@ plugin_service_ui_activate (GOPluginService *service, ErrorInfo **ret_error)
+ 	PluginServiceUI *service_ui = GNM_PLUGIN_SERVICE_UI (service);
+ 	GError *err = NULL;
+ 	char *full_file_name;
+-	char *xml_ui;
++	char *xml_ui, *group_name;
+ 	char const *textdomain;
+ 
+ 	GO_INIT_RET_ERROR_INFO (ret_error);
+@@ -380,9 +380,11 @@ plugin_service_ui_activate (GOPluginService *service, ErrorInfo **ret_error)
+ 	g_free (full_file_name);
+ 
+ 	textdomain = go_plugin_get_textdomain (service->plugin);
+-	service_ui->layout_id = gnm_app_add_extra_ui (
++	group_name = g_strconcat (go_plugin_get_id (service->plugin), service->id, NULL);
++	service_ui->layout_id = gnm_app_add_extra_ui (group_name,
+ 		service_ui->actions,
+ 		xml_ui, textdomain, service);
++	g_free (group_name);
+ 	service->is_active = TRUE;
+ }
+ 
+diff --git a/src/wbc-gtk.c b/src/wbc-gtk.c
+index 6a7db0c..d687aa8 100644
+--- a/src/wbc-gtk.c
++++ b/src/wbc-gtk.c
+@@ -3010,7 +3010,7 @@ cb_add_custom_ui (G_GNUC_UNUSED GnmApp *app,
+ 	GtkAction       *res;
+ 
+ 	details = g_new0 (CustomUIHandle, 1);
+-	details->actions = gtk_action_group_new ("DummyName");
++	details->actions = gtk_action_group_new (extra_ui->group_name);
+ 
+ 	for (ptr = extra_ui->actions; ptr != NULL ; ptr = ptr->next) {
+ 		action = ptr->data;
+--
+cgit v0.8.2



More information about the arch-commits mailing list