Hello community,
here is the log from the commit of package gnome-panel for openSUSE:11.4
checked in at Fri Feb 18 14:03:03 CET 2011.
--------
--- old-versions/11.4/all/gnome-panel/gnome-panel.changes 2011-02-13 17:22:54.000000000 +0100
+++ /mounts/work_src_done/11.4/gnome-panel/gnome-panel.changes 2011-02-17 19:51:39.000000000 +0100
@@ -1,0 +2,15 @@
+Thu Feb 17 19:46:29 CET 2011 - vuntz@opensuse.org
+
+- Add gnome-panel-fix-applet-xinerama.patch: on a xinerama setup,
+ applets on the second/third/etc. screens won't even start. This
+ patch from git fixes this.
+- Add gnome-panel-no-bonobo-in-process.patch: remove the
+ possibility to have in-process bonobo applets. Having in-process
+ bonobo applets will simply break the whole gnome-panel process,
+ which is extremely bad. So we remove this option directly from
+ the library. Note that it breaks API, but it actually affects no
+ package in openSUSE, as far as I know -- if it happens to do so,
+ though, then we can just rebuild the broken package as
+ out-of-process applet. Taken from git.
+
+-------------------------------------------------------------------
calling whatdependson for 11.4-i586
New:
----
gnome-panel-fix-applet-xinerama.patch
gnome-panel-no-bonobo-in-process.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-panel.spec ++++++
--- /var/tmp/diff_new_pack.orcIHU/_old 2011-02-18 14:02:53.000000000 +0100
+++ /var/tmp/diff_new_pack.orcIHU/_new 2011-02-18 14:02:53.000000000 +0100
@@ -19,13 +19,17 @@
Name: gnome-panel
Version: 2.32.1
-Release: 3
+Release: 7.<RELEASE2>
License: GPLv2+
Summary: The GNOME Desktop Panel
Url: http://www.gnome.org
Group: System/GUI/GNOME
Source: ftp://ftp.gnome.org/pub/gnome/sources/gnome-panel/2.24/%{name}-%{version}.tar.bz2
Source99: baselibs.conf
+# PATCH-FIX-UPSTREAM gnome-panel-fix-applet-xinerama.patch vuntz@opensuse.org -- Fix applets on xinerama setup
+Patch0: gnome-panel-fix-applet-xinerama.patch
+# PATCH-FIX-UPSTREAM gnome-panel-no-bonobo-in-process.patch vuntz@opensuse.org -- Remove possibility to have in-process bonobo applets. That would just break the gnome-panel process because of a conflict between dbus and bonobo applets in the same process
+Patch1: gnome-panel-no-bonobo-in-process.patch
# PATCH-FIX-UPSTREAM gnome-panel-recent-check-exists.patch -- Show an error when clicking on a recent item that doesn't exist anymore
Patch25: gnome-panel-recent-check-exists.patch
# PATCH-FIX-UPSTREAM gnome-panel-beagle-search.patch bgo336726 -- Use nautilus search instead of gnome-search-tool
@@ -205,6 +209,8 @@
%setup -q
translation-update-upstream
gnome-patch-translation-prepare
+%patch0 -p1
+%patch1 -p1
%patch25 -p0
%patch34
%patch35 -p0
++++++ gnome-panel-fix-applet-xinerama.patch ++++++
commit cb969e989477e2671d1e0cdd1519866d61d0c98c
Author: Vincent Untz
Date: Tue Feb 1 13:55:34 2011 +0100
panel: Fix dbus applets to work in multiscreen environment
When the applet is created, the frame itself is not yet added to a
widget hierarchy, and is therefore not associated with any screen. So we
always sent the default screen as the one to be used to the applet.
We can simply use the screen of the PanelWidget that will contain the
applet instead.
https://bugzilla.gnome.org/show_bug.cgi?id=632369
diff --git a/gnome-panel/libpanel-applet-private/panel-applet-container.c b/gnome-panel/libpanel-applet-private/panel-applet-container.c
index eef163a..3fa947c 100644
--- a/gnome-panel/libpanel-applet-private/panel-applet-container.c
+++ b/gnome-panel/libpanel-applet-private/panel-applet-container.c
@@ -446,6 +446,7 @@ on_factory_appeared (GDBusConnection *connection,
static void
panel_applet_container_get_applet (PanelAppletContainer *container,
+ GdkScreen *screen,
const gchar *iid,
GVariant *props,
GCancellable *cancellable,
@@ -454,7 +455,7 @@ panel_applet_container_get_applet (PanelAppletContainer *container,
{
GSimpleAsyncResult *result;
AppletFactoryData *data;
- gint screen;
+ gint screen_number;
gchar *bus_name;
gchar *factory_id;
gchar *applet_id;
@@ -479,12 +480,14 @@ panel_applet_container_get_applet (PanelAppletContainer *container,
factory_id = g_strndup (iid, strlen (iid) - strlen (applet_id));
applet_id += 2;
- screen = gdk_screen_get_number (gtk_widget_get_screen (container->priv->socket));
+ /* we can't use the screen of the container widget since it's not in a
+ * widget hierarchy yet */
+ screen_number = gdk_screen_get_number (screen);
data = g_new (AppletFactoryData, 1);
data->result = result;
data->factory_id = factory_id;
- data->parameters = g_variant_new ("(si*)", applet_id, screen, props);
+ data->parameters = g_variant_new ("(si*)", applet_id, screen_number, props);
data->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
bus_name = g_strdup_printf (PANEL_APPLET_BUS_NAME, factory_id);
@@ -503,6 +506,7 @@ panel_applet_container_get_applet (PanelAppletContainer *container,
void
panel_applet_container_add (PanelAppletContainer *container,
+ GdkScreen *screen,
const gchar *iid,
GCancellable *cancellable,
GAsyncReadyCallback callback,
@@ -514,7 +518,7 @@ panel_applet_container_add (PanelAppletContainer *container,
panel_applet_container_cancel_pending_operations (container);
- panel_applet_container_get_applet (container, iid, properties,
+ panel_applet_container_get_applet (container, screen, iid, properties,
cancellable, callback, user_data);
}
diff --git a/gnome-panel/libpanel-applet-private/panel-applet-container.h b/gnome-panel/libpanel-applet-private/panel-applet-container.h
index 130bf16..e4de97a 100644
--- a/gnome-panel/libpanel-applet-private/panel-applet-container.h
+++ b/gnome-panel/libpanel-applet-private/panel-applet-container.h
@@ -73,6 +73,7 @@ GtkWidget *panel_applet_container_new (void);
void panel_applet_container_add (PanelAppletContainer *container,
+ GdkScreen *screen,
const gchar *iid,
GCancellable *cancellable,
GAsyncReadyCallback callback,
diff --git a/gnome-panel/libpanel-applet-private/panel-applet-frame-dbus.c b/gnome-panel/libpanel-applet-private/panel-applet-frame-dbus.c
index 9aaac15..dd3aecb 100644
--- a/gnome-panel/libpanel-applet-private/panel-applet-frame-dbus.c
+++ b/gnome-panel/libpanel-applet-private/panel-applet-frame-dbus.c
@@ -411,6 +411,7 @@ panel_applet_frame_dbus_load (const gchar *iid,
PanelAppletFrameDBus *dbus_frame;
PanelAppletFrame *frame;
GVariantBuilder builder;
+ GdkScreen *screen;
gchar *conf_path;
gchar *background;
guint orient;
@@ -425,6 +426,7 @@ panel_applet_frame_dbus_load (const gchar *iid,
frame = PANEL_APPLET_FRAME (dbus_frame);
_panel_applet_frame_set_iid (frame, iid);
+ screen = panel_applet_frame_activating_get_screen (frame_act);
orient = get_panel_applet_orient (panel_applet_frame_activating_get_orientation (frame_act));
conf_path = panel_applet_frame_activating_get_conf_path (frame_act);
/* we can't really get a background string at this point since we don't
@@ -456,7 +458,7 @@ panel_applet_frame_dbus_load (const gchar *iid,
g_object_set_data (G_OBJECT (frame), "panel-applet-frame-activating", frame_act);
panel_applet_container_add (dbus_frame->priv->container,
- iid, NULL,
+ screen, iid, NULL,
(GAsyncReadyCallback) panel_applet_frame_dbus_activated,
frame,
g_variant_builder_end (&builder));
diff --git a/gnome-panel/panel-applet-frame.c b/gnome-panel/panel-applet-frame.c
index a411bf0..114e32f 100644
--- a/gnome-panel/panel-applet-frame.c
+++ b/gnome-panel/panel-applet-frame.c
@@ -805,6 +805,12 @@ panel_applet_frame_activating_free (PanelAppletFrameActivating *frame_act)
g_slice_free (PanelAppletFrameActivating, frame_act);
}
+GdkScreen *
+panel_applet_frame_activating_get_screen (PanelAppletFrameActivating *frame_act)
+{
+ return gtk_widget_get_screen (frame_act->panel);
+}
+
PanelOrientation
panel_applet_frame_activating_get_orientation (PanelAppletFrameActivating *frame_act)
{
diff --git a/gnome-panel/panel-applet-frame.h b/gnome-panel/panel-applet-frame.h
index a459bb7..a551c4c 100644
--- a/gnome-panel/panel-applet-frame.h
+++ b/gnome-panel/panel-applet-frame.h
@@ -105,6 +105,7 @@ void panel_applet_frame_set_panel (PanelAppletFrame *frame,
typedef struct _PanelAppletFrameActivating PanelAppletFrameActivating;
+GdkScreen *panel_applet_frame_activating_get_screen (PanelAppletFrameActivating *frame_act);
PanelOrientation panel_applet_frame_activating_get_orientation (PanelAppletFrameActivating *frame_act);
guint32 panel_applet_frame_activating_get_size (PanelAppletFrameActivating *frame_act);
gboolean panel_applet_frame_activating_get_locked (PanelAppletFrameActivating *frame_act);
diff --git a/gnome-panel/panel-test-applets.c b/gnome-panel/panel-test-applets.c
index 58b1a3a..b302bc2 100644
--- a/gnome-panel/panel-test-applets.c
+++ b/gnome-panel/panel-test-applets.c
@@ -164,6 +164,7 @@ load_applet_into_window (const char *title,
g_variant_builder_add (&builder, "{sv}",
"orient", g_variant_new_uint32 (orientation));
panel_applet_container_add (PANEL_APPLET_CONTAINER (container),
+ gtk_widget_get_screen (applet_window),
title, NULL,
(GAsyncReadyCallback)applet_activated_cb,
applet_window,
++++++ gnome-panel-no-bonobo-in-process.patch ++++++
commit cc7f3e7cac8dd9da5e8e48eac6ef9e992c557812
Author: Vincent Untz
Date: Thu Feb 17 12:47:25 2011 +0100
bonobo: Remove API to build bonobo applet as shared library
Yes, it's bad, it breaks API and ABI. In a stable branch. But it's the
bonobo compatibility module. And it's a rather important fix.
We can't have bonobo applets as shared libraries since both bonobo
applets and dbus applets are sharing the PanelApplet type name, and they
will conflict in the same process. Since we know we want to allow dbus
in-process applets, it means we have to disallow bonobo in-process
applets. Hence this change.
diff --git a/bonobo/libpanel-applet/panel-applet.c b/bonobo/libpanel-applet/panel-applet.c
index 9fe7e9b..9644d66 100644
--- a/bonobo/libpanel-applet/panel-applet.c
+++ b/bonobo/libpanel-applet/panel-applet.c
@@ -40,7 +40,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -1811,54 +1810,6 @@ panel_applet_factory_main (const gchar *iid,
return panel_applet_factory_main_closure (iid, applet_type, closure);
}
-Bonobo_Unknown
-panel_applet_shlib_factory_closure (const char *iid,
- GType applet_type,
- PortableServer_POA poa,
- gpointer impl_ptr,
- GClosure *closure,
- CORBA_Environment *ev)
-{
- BonoboShlibFactory *factory;
-
- g_return_val_if_fail (iid != NULL, CORBA_OBJECT_NIL);
- g_return_val_if_fail (closure != NULL, CORBA_OBJECT_NIL);
-
- g_assert (g_type_is_a (applet_type, PANEL_TYPE_APPLET));
-
- bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-
- closure = bonobo_closure_store (closure, panel_applet_marshal_BOOLEAN__STRING);
-
- factory = bonobo_shlib_factory_new_closure (
- iid, poa, impl_ptr,
- g_cclosure_new (G_CALLBACK (panel_applet_factory_callback),
- panel_applet_callback_data_new (applet_type, closure),
- (GClosureNotify) panel_applet_callback_data_free));
-
- return CORBA_Object_duplicate (BONOBO_OBJREF (factory), ev);
-}
-
-Bonobo_Unknown
-panel_applet_shlib_factory (const char *iid,
- GType applet_type,
- PortableServer_POA poa,
- gpointer impl_ptr,
- PanelAppletFactoryCallback callback,
- gpointer user_data,
- CORBA_Environment *ev)
-{
- g_return_val_if_fail (iid != NULL, CORBA_OBJECT_NIL);
- g_return_val_if_fail (callback != NULL, CORBA_OBJECT_NIL);
-
- return panel_applet_shlib_factory_closure (
- iid, applet_type, poa, impl_ptr,
- g_cclosure_new (G_CALLBACK (callback),
- user_data, NULL),
- ev);
-}
-
void
panel_applet_set_background_widget (PanelApplet *applet,
GtkWidget *widget)
diff --git a/bonobo/libpanel-applet/panel-applet.h b/bonobo/libpanel-applet/panel-applet.h
index 7cd65b9..0494019 100644
--- a/bonobo/libpanel-applet/panel-applet.h
+++ b/bonobo/libpanel-applet/panel-applet.h
@@ -157,21 +157,6 @@ int panel_applet_factory_main_closure (const gchar *iid,
GType applet_type,
GClosure *closure);
-Bonobo_Unknown panel_applet_shlib_factory (const char *iid,
- GType applet_type,
- PortableServer_POA poa,
- gpointer impl_ptr,
- PanelAppletFactoryCallback callback,
- gpointer user_data,
- CORBA_Environment *ev);
-
-Bonobo_Unknown panel_applet_shlib_factory_closure (const char *iid,
- GType applet_type,
- PortableServer_POA poa,
- gpointer impl_ptr,
- GClosure *closure,
- CORBA_Environment *ev);
-
/*
* These macros are getting a bit unwieldy.
*
@@ -232,23 +217,6 @@ int main (int argc, char *argv []) \
return retval; \
}
-#define PANEL_APPLET_BONOBO_SHLIB_FACTORY(iid, type, descr, callback, data) \
-static Bonobo_Unknown \
-__panel_applet_shlib_factory (PortableServer_POA poa, \
- const char *oafiid, \
- gpointer impl_ptr, \
- CORBA_Environment *ev) \
-{ \
- _PANEL_APPLET_SETUP_GETTEXT (FALSE); \
- return panel_applet_shlib_factory ((iid), (type), poa, impl_ptr, \
- (callback), (data), ev); \
-} \
-static BonoboActivationPluginObject plugin_list[] = { \
- { (iid), __panel_applet_shlib_factory }, \
- { NULL } \
-}; \
-const BonoboActivationPlugin Bonobo_Plugin_info = { plugin_list, (descr) };
-
G_END_DECLS
#endif /* __PANEL_APPLET_H__ */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org