rpms/im-chooser/devel im-chooser-0.99.6-check-if-im-is-running.patch, NONE, 1.1 im-chooser-0.99.6-correct-build-order.patch, NONE, 1.1 im-chooser.spec, 1.37, 1.38

Akira TAGOH (tagoh) fedora-extras-commits at redhat.com
Fri Apr 25 13:45:45 UTC 2008


Author: tagoh

Update of /cvs/pkgs/rpms/im-chooser/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24944

Modified Files:
	im-chooser.spec 
Added Files:
	im-chooser-0.99.6-check-if-im-is-running.patch 
	im-chooser-0.99.6-correct-build-order.patch 
Log Message:
* Wed Apr 23 2008 Akira TAGOH <tagoh at redhat.com> - 0.99.6-2
* im-chooser-0.99.6-check-if-im-is-running.patch: Do not turn on the check box
  if IM isn't really running. (#443765)
* im-chooser-0.99.6-correct-build-order.patch: Apply to correct the build order.

im-chooser-0.99.6-check-if-im-is-running.patch:

--- NEW FILE im-chooser-0.99.6-check-if-im-is-running.patch ---
Index: imsettings/utils/imsettings-list.c
===================================================================
--- imsettings/utils/imsettings-list.c	(リビジョン 331)
+++ imsettings/utils/imsettings-list.c	(作業コピー)
@@ -31,10 +31,10 @@
 main(int    argc,
      char **argv)
 {
-	IMSettingsRequest *imsettings;
+	IMSettingsRequest *imsettings_info, *imsettings;
 	DBusConnection *connection;
 	gchar **list, *locale;
-	gchar *user_im, *system_im;
+	gchar *user_im, *system_im, *running_im;
 	gint i;
 
 	setlocale(LC_ALL, "");
@@ -43,16 +43,18 @@
 	g_type_init();
 
 	connection = dbus_bus_get(DBUS_BUS_SESSION, NULL);
-	imsettings = imsettings_request_new(connection, IMSETTINGS_INFO_INTERFACE_DBUS);
-	imsettings_request_set_locale(imsettings, locale);
-	if ((list = imsettings_request_get_im_list(imsettings)) == NULL) {
+	imsettings = imsettings_request_new(connection, IMSETTINGS_INTERFACE_DBUS);
+	imsettings_info = imsettings_request_new(connection, IMSETTINGS_INFO_INTERFACE_DBUS);
+	imsettings_request_set_locale(imsettings_info, locale);
+	if ((list = imsettings_request_get_im_list(imsettings_info)) == NULL) {
 		g_printerr("Failed to get an IM list.\n");
 	} else {
-		user_im = imsettings_request_get_current_user_im(imsettings);
-		system_im = imsettings_request_get_current_system_im(imsettings);
+		user_im = imsettings_request_get_current_user_im(imsettings_info);
+		system_im = imsettings_request_get_current_system_im(imsettings_info);
+		running_im = imsettings_request_what_im_is_running(imsettings);
 		for (i = 0; list[i] != NULL; i++) {
 			g_print("%s %d: %s %s\n",
-				(strcmp(user_im, list[i]) == 0 ? "*" : " "),
+				(strcmp(running_im, list[i]) == 0 ? "*" : (strcmp(user_im, list[i]) == 0 ? "-" : " ")),
 				i + 1,
 				list[i],
 				(strcmp(system_im, list[i]) == 0 ? "(recommended)" : ""));
@@ -60,6 +62,7 @@
 		g_strfreev(list);
 	}
 	g_object_unref(imsettings);
+	g_object_unref(imsettings_info);
 	dbus_connection_unref(connection);
 
 	return 0;
Index: imsettings/imsettings/imsettings-observer.h
===================================================================
--- imsettings/imsettings/imsettings-observer.h	(リビジョン 331)
+++ imsettings/imsettings/imsettings-observer.h	(作業コピー)
@@ -84,6 +84,8 @@
 						    gboolean             update_xinputrc,
 						    gboolean             force,
 						    GError             **error);
+	const gchar     * (* what_im_is_running)   (IMSettingsObserver  *imsettings,
+						    GError             **error);
 
 	/* signals */
 	void              (* s_start_im)           (IMSettingsObserver  *imsettings,
Index: imsettings/imsettings/imsettings-request.h
===================================================================
--- imsettings/imsettings/imsettings-request.h	(リビジョン 331)
+++ imsettings/imsettings/imsettings-request.h	(作業コピー)
@@ -95,6 +95,7 @@
                                                               const gchar       *module,
 							      gboolean           update_xinputrc,
                                                               gboolean           force);
+gchar             *imsettings_request_what_im_is_running     (IMSettingsRequest *imsettings);
 gboolean           imsettings_request_reload                 (IMSettingsRequest *imsettings,
                                                               gboolean           force);
 gboolean           imsettings_request_change_to              (IMSettingsRequest *imsettings,
Index: imsettings/imsettings/imsettings.xml
===================================================================
--- imsettings/imsettings/imsettings.xml	(リビジョン 331)
+++ imsettings/imsettings/imsettings.xml	(作業コピー)
@@ -13,6 +13,11 @@
       <arg type="b" name="force" direction="in" />
       <arg type="b" name="ret" direction="out" />
     </method>
+    <method name="WhatInputMethodIsRunning">
+      <arg type="s" name="ret" direction="out">
+	<annotation name="org.freedesktop.DBus.GLib.Const" value="" />
+      </arg>
+    </method>
   </interface>
   <interface name="com.redhat.imsettings.IMInfo">
     <method name="GetList">
Index: imsettings/imsettings/imsettings-observer.c
===================================================================
--- imsettings/imsettings/imsettings-observer.c	(リビジョン 331)
+++ imsettings/imsettings/imsettings-observer.c	(作業コピー)
@@ -134,6 +134,28 @@
 }
 
 static gboolean
+imsettings_what_input_method_is_running(GObject      *object,
+					const gchar **ret,
+					GError      **error)
+{
+	IMSettingsObserverClass *klass = IMSETTINGS_OBSERVER_GET_CLASS (object);
+	const gchar *module;
+	gboolean retval = FALSE;
+
+	d(g_print("Getting current IM running\n"));
+	if (klass->what_im_is_running) {
+		module = klass->what_im_is_running(IMSETTINGS_OBSERVER (object),
+						   error);
+		if (*error == NULL) {
+			*ret = g_strdup(module);
+			retval = TRUE;
+		}
+	}
+
+	return retval;
+}
+
+static gboolean
 imsettings_get_list(GObject     *object,
 		    const gchar *lang,
 		    gchar     ***ret,
Index: imsettings/imsettings/imsettings-request.c
===================================================================
--- imsettings/imsettings/imsettings-request.c	(リビジョン 331)
+++ imsettings/imsettings/imsettings-request.c	(作業コピー)
@@ -633,6 +633,28 @@
 						   user_data) != NULL;
 }
 
+gchar *
+imsettings_request_what_im_is_running(IMSettingsRequest *imsettings)
+{
+	IMSettingsRequestPrivate *priv;
+	GError *error = NULL;
+	gchar *retval;
+
+	g_return_val_if_fail (IMSETTINGS_IS_REQUEST (imsettings), FALSE);
+
+	priv = IMSETTINGS_REQUEST_GET_PRIVATE (imsettings);
+	if (!com_redhat_imsettings_what_input_method_is_running(priv->proxy,
+								&retval,
+								&error)) {
+		g_warning(_("Failed to invoke a method `%s':\n  %s"), "WhatInputMethodIsRunning", error->message);
+		g_error_free(error);
+
+		return NULL;
+	}
+
+	return retval;
+}
+
 gboolean
 imsettings_request_reload(IMSettingsRequest *imsettings,
 			  gboolean           force)
Index: imsettings/src/factory.c
===================================================================
--- imsettings/src/factory.c	(リビジョン 331)
+++ imsettings/src/factory.c	(作業コピー)
@@ -625,6 +625,41 @@
 	return retval;
 }
 
+const gchar *
+imsettings_manager_real_what_im_is_running(IMSettingsObserver  *observer,
+					   GError             **error)
+{
+	IMSettingsManagerPrivate *priv = IMSETTINGS_MANAGER_GET_PRIVATE (observer);
+	IMSettingsRequest *req;
+	DBusConnection *conn;
+	gchar *module, *xinputfile = NULL, *pidfile = NULL;
+
+	conn = dbus_bus_get(DBUS_BUS_SESSION, NULL);
+	req = imsettings_request_new(conn, IMSETTINGS_INFO_INTERFACE_DBUS);
+	module = imsettings_request_get_current_user_im(req);
+	if (module) {
+		xinputfile = imsettings_request_get_xinput_filename(req, module);
+		if (!xinputfile) {
+			g_set_error(error, IMSETTINGS_GERROR, IMSETTINGS_GERROR_IM_NOT_FOUND,
+				    _("No such input method on your system: %s"),
+				    module);
+			goto end;
+		}
+		pidfile = _build_pidfilename(xinputfile, priv->display_name, "xim");
+		if (!g_file_test(pidfile, G_FILE_TEST_EXISTS)) {
+			g_free(module);
+			module = NULL;
+		}
+	}
+  end:
+	g_free(xinputfile);
+	g_free(pidfile);
+	g_object_unref(req);
+	dbus_connection_unref(conn);
+
+	return module;
+}
+
 static void
 imsettings_manager_class_init(IMSettingsManagerClass *klass)
 {
@@ -637,8 +672,9 @@
 	object_class->get_property = imsettings_manager_real_get_property;
 	object_class->finalize     = imsettings_manager_real_finalize;
 
-	observer_class->start_im = imsettings_manager_real_start_im;
-	observer_class->stop_im  = imsettings_manager_real_stop_im;
+	observer_class->start_im           = imsettings_manager_real_start_im;
+	observer_class->stop_im            = imsettings_manager_real_stop_im;
+	observer_class->what_im_is_running = imsettings_manager_real_what_im_is_running;
 
 	/* properties */
 	g_object_class_install_property(object_class, PROP_DISPLAY_NAME,
Index: src/im-chooser-simple.c
===================================================================
--- src/im-chooser-simple.c	(リビジョン 331)
+++ src/im-chooser-simple.c	(作業コピー)
@@ -626,10 +626,11 @@
 	GtkRequisition requisition;
 	guint count = 0;
 	gint i, priority = 0;
-	gchar *user_im, *system_im;
+	gchar *user_im, *system_im, *running_im;
 
 	user_im = imsettings_request_get_current_user_im(im->imsettings_info);
 	system_im = imsettings_request_get_current_system_im(im->imsettings_info);
+	running_im = imsettings_request_what_im_is_running(im->imsettings);
 	if (im->im_list == NULL)
 		goto end;
 
@@ -654,7 +655,7 @@
 			def_iter = gtk_tree_iter_copy(&iter);
 		}
 		if (im->current_im == NULL &&
-		    strcmp(user_im, im->im_list[i]) == 0) {
+		    strcmp(running_im, im->im_list[i]) == 0) {
 			im->current_im = g_strdup(im->im_list[i]);
 			if (im->initial_im == NULL)
 				im->initial_im = g_strdup(im->current_im);

im-chooser-0.99.6-correct-build-order.patch:

--- NEW FILE im-chooser-0.99.6-correct-build-order.patch ---
diff -pruN im-chooser-0.99.6.orig/imsettings/imsettings/Makefile.am im-chooser-0.99.6/imsettings/imsettings/Makefile.am
--- im-chooser-0.99.6.orig/imsettings/imsettings/Makefile.am	2008-03-19 15:12:55.000000000 +0900
+++ im-chooser-0.99.6/imsettings/imsettings/Makefile.am	2008-04-25 22:38:36.000000000 +0900
@@ -37,7 +37,8 @@ noinst_HEADERS =					\
 	imsettings-marshal.h				\
 	$(NULL)
 
-imsettings.h: stamp-bindings.h $(srcdir)/imsettings-marshal.h $(srcdir)/imsettings-marshal.c
+imsettings-observer.c: stamp-bindings.h $(srcdir)/imsettings-marshal.h Makefile
+imsettings-request.c: stamp-bindings.h Makefile
 $(top_srcdir)/imsettings/imsettings/imsettings-glib-bindings.h: stamp-bindings.h Makefile
 	@true
 stamp-bindings.h: $(srcdir)/imsettings.xml Makefile
@@ -49,13 +50,13 @@ stamp-bindings.h: $(srcdir)/imsettings.x
 			  --mode=glib-server \
 			  --output=$(srcdir)/imsettings-glib-glue.h $(srcdir)/imsettings.xml ) && \
 	echo timestamp > $(@F)
-$(srcdir)/imsettings-marshal.h: $(srcdir)/marshal.list $(srcdir)/imsettings-marshal.c Makefile
+$(srcdir)/imsettings-marshal.h: $(srcdir)/marshal.list Makefile
 	( cd $(srcdir) && \
 	@GLIB_GENMARSHAL@ --prefix=imsettings_marshal $(srcdir)/marshal.list \
 			  --header > xgen-imh && \
 	(cmp -s xgen-imh imsettings-marshal.h || cp xgen-imh imsettings-marshal.h) && \
 	rm -f xgen-imh)
-$(srcdir)/imsettings-marshal.c: $(srcdir)/marshal.list $(srcdir)/imsettings-marshal.h Makefile
+$(srcdir)/imsettings-marshal.c: $(srcdir)/imsettings-marshal.h Makefile
 	( cd $(srcdir) && \
 	@GLIB_GENMARSHAL@ --prefix=imsettings_marshal $(srcdir)/marshal.list \
 			  --body > xgen-imc && \


Index: im-chooser.spec
===================================================================
RCS file: /cvs/pkgs/rpms/im-chooser/devel/im-chooser.spec,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- im-chooser.spec	8 Apr 2008 10:50:10 -0000	1.37
+++ im-chooser.spec	25 Apr 2008 13:45:09 -0000	1.38
@@ -1,13 +1,16 @@
 Name:		im-chooser
 Version:	0.99.6
-Release:	1%{?dist}
+Release:	2%{?dist}
 License:	GPLv2+
+URL:		http://fedorahosted.org/im-chooser/
 Buildroot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:	gtk2-devel intltool gettext libgnomeui-devel dbus-devel dbus-glib-devel gamin-devel xfce-mcs-manager-devel libxfce4mcs-devel
 BuildRequires:  desktop-file-utils
 
-Source0:	%{name}-%{version}.tar.gz
+Source0:	http://fedorahosted.org/releases/i/m/%{name}/%{name}-%{version}.tar.gz
 Patch0:		im-chooser-constraint-of-language.patch
+Patch1:		im-chooser-0.99.6-check-if-im-is-running.patch
+Patch2:		im-chooser-0.99.6-correct-build-order.patch
 
 Summary:	Desktop Input Method configuration tool
 Group:		Applications/System
@@ -60,6 +63,9 @@
 %prep
 %setup -q
 %patch0 -p1 -b .language
+%patch1 -p0 -b .is_running
+%patch2 -p1 -b .build_order
+autoreconf
 
 %build
 %configure	--with-xinput-suffix=.conf \
@@ -143,6 +149,11 @@
 %{_libdir}/pkgconfig/imsettings.pc
 
 %changelog
+* Wed Apr 23 2008 Akira TAGOH <tagoh at redhat.com> - 0.99.6-2
+* im-chooser-0.99.6-check-if-im-is-running.patch: Do not turn on the check box
+  if IM isn't really running. (#443765)
+* im-chooser-0.99.6-correct-build-order.patch: Apply to correct the build order.
+
 * Tue Apr  8 2008 Akira TAGOH <tagoh at redhat.com> - 0.99.6-1
 - New upstream release.
   - translation updates.




More information about the fedora-extras-commits mailing list