summaryrefslogtreecommitdiff
path: root/extra/gdm/0001-port-to-libpanel-applet-3.0.patch
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /extra/gdm/0001-port-to-libpanel-applet-3.0.patch
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'extra/gdm/0001-port-to-libpanel-applet-3.0.patch')
-rw-r--r--extra/gdm/0001-port-to-libpanel-applet-3.0.patch506
1 files changed, 506 insertions, 0 deletions
diff --git a/extra/gdm/0001-port-to-libpanel-applet-3.0.patch b/extra/gdm/0001-port-to-libpanel-applet-3.0.patch
new file mode 100644
index 000000000..91ada7835
--- /dev/null
+++ b/extra/gdm/0001-port-to-libpanel-applet-3.0.patch
@@ -0,0 +1,506 @@
+diff --git a/configure.ac b/configure.ac
+index ed07dce..bf98669 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -45,7 +45,7 @@ GTK_REQUIRED_VERSION=2.20.0
+ PANGO_REQUIRED_VERSION=1.3.0
+ SCROLLKEEPER_REQUIRED_VERSION=0.1.4
+ GCONF_REQUIRED_VERSION=2.31.3
+-GNOME_PANEL_REQUIRED_VERSION=2.0.0
++GNOME_PANEL_REQUIRED_VERSION=2.31.90
+ LIBXKLAVIER_REQUIRED_VERSION=4.0
+ LIBCANBERRA_GTK_REQUIRED_VERSION=0.4
+ #FONTCONFIG_REQUIRED_VERSION=2.6.0
+@@ -152,7 +152,7 @@ AC_SUBST(SIMPLE_CHOOSER_LIBS)
+ PKG_CHECK_MODULES(APPLET,
+ dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
+ gtk+-2.0 >= $GTK_REQUIRED_VERSION
+- libpanelapplet-2.0 >= $GNOME_PANEL_REQUIRED_VERSION)
++ libpanelapplet-3.0 >= $GNOME_PANEL_REQUIRED_VERSION)
+ AC_SUBST(APPLET_CFLAGS)
+ AC_SUBST(APPLET_LIBS)
+
+diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
+deleted file mode 100644
+index a9b775f..0000000
+--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
++++ /dev/null
+@@ -1,38 +0,0 @@
+-<oaf_info>
+- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet_Factory" type="exe"
+- location="@LIBEXECDIR@/gdm-user-switch-applet">
+-
+- <oaf_attribute name="repo_ids" type="stringv">
+- <item value="IDL:Bonobo/GenericFactory:1.0"/>
+- <item value="IDL:Bonobo/Unknown:1.0"/>
+- </oaf_attribute>
+- <oaf_attribute name="name" type="string" _value="User Switcher Applet Factory"/>
+- <oaf_attribute name="description" type="string" _value="User Switcher Applet Factory"/>
+- <oaf_attribute name="bonobo:environment" type="stringv">
+- <item value="DBUS_SESSION_BUS_ADDRESS"/>
+- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
+- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
+- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
+- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
+- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
+- </oaf_attribute>
+- </oaf_server>
+-
+- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet" type="factory"
+- location="OAFIID:GNOME_FastUserSwitchApplet_Factory">
+-
+- <oaf_attribute name="repo_ids" type="stringv">
+- <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
+- <item value="IDL:Bonobo/Control:1.0"/>
+- <item value="IDL:Bonobo/Unknown:1.0"/>
+- </oaf_attribute>
+- <oaf_attribute name="name" type="string" _value="User Switcher"/>
+- <oaf_attribute name="description" type="string" _value="A menu to quickly switch between users"/>
+- <oaf_attribute name="panel:icon" type="string" value="stock_people"/>
+- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
+- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
+- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
+- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
+- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
+- </oaf_server>
+-</oaf_info>
+diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
+deleted file mode 100644
+index e1845c8..0000000
+--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
++++ /dev/null
+@@ -1,20 +0,0 @@
+-<Root>
+- <popups>
+- <popup name="button3">
+- <menuitem
+- name="About Me Item"
+- verb="GdmAboutMe"
+- _label="Edit Personal _Information"/>
+- <menuitem
+- name="Users and Groups Admin Item"
+- verb="GdmUsersGroupsAdmin"
+- _label="_Edit Users and Groups"/>
+- <menuitem
+- name="About Item"
+- verb="GdmAbout"
+- _label="_About"
+- pixtype="stock"
+- pixname="gtk-about"/>
+- </popup>
+- </popups>
+-</Root>
+diff --git a/gui/user-switch-applet/Makefile.am b/gui/user-switch-applet/Makefile.am
+index 2d2cdc0..cebe890 100644
+--- a/gui/user-switch-applet/Makefile.am
++++ b/gui/user-switch-applet/Makefile.am
+@@ -13,6 +13,7 @@ AM_CPPFLAGS = \
+ -DLIBEXECDIR=\""$(libexecdir)"\" \
+ -DSBINDIR=\""$(sbindir)"\" \
+ -DGDMCONFDIR=\"$(gdmconfdir)\" \
++ -DGDM_USER_SWITCH_MENU_UI_DIR="\"$(uidir)\"" \
+ $(GTK_CFLAGS) \
+ $(APPLET_CFLAGS) \
+ $(NULL)
+@@ -34,34 +35,31 @@ gdm_user_switch_applet_LDADD = \
+ $(APPLET_LIBS) \
+ $(NULL)
+
+-# Bonobo UI
+-uidir = $(datadir)/gnome-2.0/ui
+-ui_DATA = \
+- GNOME_FastUserSwitchApplet.xml \
+- $(NULL)
++uidir = $(datadir)/gnome-2.0/ui
++ui_DATA = gdm-user-switch-applet-menu.xml
+
+-# Bonobo .server
+-serverdir = $(libdir)/bonobo/servers
+-server_in_files = \
+- GNOME_FastUserSwitchApplet.server.in \
+- $(NULL)
+-server_DATA = $(server_in_files:.server.in=.server)
++appletdir = $(datadir)/gnome-panel/applets
++applet_in_files = org.gnome.gdm.UserSwitch.panel-applet.in
++applet_DATA = $(applet_in_files:.panel-applet.in=.panel-applet)
+
+-$(server_in_files): $(server_in_files:.server.in=.server.in.in)
+- sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@
++$(applet_in_files): $(applet_in_files).in Makefile
++ $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@
+
+-@INTLTOOL_SERVER_RULE@
++%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+-EXTRA_DIST = \
+- $(ui_DATA) \
+- GNOME_FastUserSwitchApplet.server.in.in \
+- $(NULL)
++servicedir = $(datadir)/dbus-1/services
++service_in_files = org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
++service_DATA = $(service_in_files:.service.in=.service)
++
++org.gnome.panel.applet.GdmUserSwitchAppletFactory.service: $(service_in_files)
++ $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@
++
++EXTRA_DIST = org.gnome.gdm.UserSwitch.panel-applet.in.in \
++ $(service_in_files) \
++ $(ui_DATA) \
++ $(NULL)
++
++CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA)
+
+-DISTCLEANFILES = \
+- $(server_in_files) \
+- $(server_DATA) \
+- $(NULL)
++MAINTAINERCLEANFILES = *~ Makefile.in
+
+-MAINTAINERCLEANFILES = \
+- *~ \
+- Makefile.in
+diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c
+index b4f944c..74f7882 100644
+--- a/gui/user-switch-applet/applet.c
++++ b/gui/user-switch-applet/applet.c
+@@ -34,9 +34,6 @@
+
+ #include <dbus/dbus-glib.h>
+
+-#include <bonobo/bonobo-main.h>
+-#include <bonobo/bonobo-ui-util.h>
+-
+ #include <panel-applet.h>
+ #include <panel-applet-gconf.h>
+
+@@ -102,16 +99,15 @@ static gboolean applet_factory (PanelApplet *applet,
+ const char *iid,
+ gpointer data);
+
+-PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory",
+- PANEL_TYPE_APPLET,
+- "gdm-user-switch-applet", "0",
+- (PanelAppletFactoryCallback)applet_factory,
+- NULL)
++PANEL_APPLET_OUT_PROCESS_FACTORY ("GdmUserSwitchAppletFactory",
++ PANEL_TYPE_APPLET,
++ "gdm-user-switch-applet",
++ applet_factory,
++ NULL)
+
+ static void
+-about_me_cb (BonoboUIComponent *ui_container,
+- gpointer data,
+- const char *cname)
++about_me_cb (GtkAction *action,
++ gpointer data)
+ {
+ GError *err;
+
+@@ -120,10 +116,7 @@ about_me_cb (BonoboUIComponent *ui_container,
+ g_critical ("Could not run `gnome-about-me': %s",
+ err->message);
+ g_error_free (err);
+- bonobo_ui_component_set_prop (ui_container,
+- "/commands/GdmAboutMe",
+- "hidden", "1",
+- NULL);
++ gtk_action_set_visible (action, FALSE);
+ }
+ }
+
+@@ -149,9 +142,8 @@ menubar_button_press_event_cb (GtkWidget *menubar,
+ }
+
+ static void
+-about_cb (BonoboUIComponent *ui_container,
+- gpointer data,
+- const char *cname)
++about_cb (GtkAction *action,
++ gpointer data)
+ {
+ static const char *authors[] = {
+ "James M. Cape <jcape@ignore-your.tv>",
+@@ -195,9 +187,8 @@ about_cb (BonoboUIComponent *ui_container,
+
+
+ static void
+-admin_cb (BonoboUIComponent *ui_container,
+- gpointer data,
+- const char *cname)
++admin_cb (GtkAction *action,
++ gpointer data)
+ {
+ #ifdef USERS_ADMIN
+ char **args;
+@@ -231,82 +222,6 @@ admin_cb (BonoboUIComponent *ui_container,
+ }
+
+ static void
+-set_menuitem_icon (BonoboUIComponent *component,
+- const char *item_path,
+- GtkIconTheme *theme,
+- const char *icon_name,
+- gint icon_size)
+-{
+- GdkPixbuf *pixbuf;
+- int width;
+- int height;
+-
+- pixbuf = gtk_icon_theme_load_icon (theme, icon_name, icon_size, 0, NULL);
+- if (pixbuf == NULL) {
+- return;
+- }
+-
+- width = gdk_pixbuf_get_width (pixbuf);
+- height = gdk_pixbuf_get_height (pixbuf);
+- if (width > icon_size + 4 || height > icon_size + 4) {
+- GdkPixbuf *tmp;
+- if (height > width) {
+- width *= (gdouble) icon_size / (gdouble) height;
+- height = icon_size;
+- } else {
+- height *= (gdouble) icon_size / (gdouble) width;
+- width = icon_size;
+- }
+- tmp = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR);
+- g_object_unref (pixbuf);
+- pixbuf = tmp;
+- }
+-
+- bonobo_ui_util_set_pixbuf (component, item_path, pixbuf, NULL);
+- g_object_unref (pixbuf);
+-}
+-
+-static void
+-applet_style_set_cb (GtkWidget *widget,
+- GtkStyle *old_style,
+- gpointer data)
+-{
+- BonoboUIComponent *component;
+- GdkScreen *screen;
+- GtkIconTheme *theme;
+- int width;
+- int height;
+- int icon_size;
+-
+- if (gtk_widget_has_screen (widget)) {
+- screen = gtk_widget_get_screen (widget);
+- } else {
+- screen = gdk_screen_get_default ();
+- }
+-
+- if (gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen),
+- GTK_ICON_SIZE_MENU, &width, &height)) {
+- icon_size = MAX (width, height);
+- } else {
+- icon_size = 16;
+- }
+-
+- theme = gtk_icon_theme_get_for_screen (screen);
+- component = panel_applet_get_popup_component (PANEL_APPLET (widget));
+-
+- set_menuitem_icon (component,
+- "/commands/GdmAboutMe",
+- theme,
+- "user-info",
+- icon_size);
+- set_menuitem_icon (component,
+- "/commands/GdmUsersGroupsAdmin",
+- theme,
+- "stock_people",
+- icon_size);
+-}
+-
+-static void
+ applet_change_background_cb (PanelApplet *applet,
+ PanelAppletBackgroundType type,
+ GdkColor *color,
+@@ -1389,18 +1304,23 @@ on_presence_status_text_changed (DBusGProxy *presence_proxy,
+ static gboolean
+ fill_applet (PanelApplet *applet)
+ {
+- static const BonoboUIVerb menu_verbs[] = {
+- BONOBO_UI_VERB ("GdmAboutMe", about_me_cb),
+- BONOBO_UI_VERB ("GdmUsersGroupsAdmin", admin_cb),
+- BONOBO_UI_VERB ("GdmAbout", about_cb),
+- BONOBO_UI_VERB_END
++ static const GtkActionEntry gdm_user_switch_applet_actions[] = {
++ { "GdmAboutMe", "user-info", N_("Edit Personal _Information"),
++ NULL, NULL,
++ G_CALLBACK (about_me_cb) },
++ { "GdmUsersGroupsAdmin", "stock-people", N_("_Edit Users and Groups"),
++ NULL, NULL,
++ G_CALLBACK (admin_cb) },
++ { "GdmAbout", GTK_STOCK_ABOUT, N_("_About"),
++ NULL, NULL,
++ G_CALLBACK (about_cb) },
+ };
+ static gboolean first_time = FALSE;
+ char *tmp;
+- BonoboUIComponent *popup_component;
+ GdmAppletData *adata;
+ GError *error;
+ DBusGConnection *bus;
++ GtkActionGroup *action_group;
+
+ if (!first_time) {
+ first_time = TRUE;
+@@ -1438,52 +1358,51 @@ fill_applet (PanelApplet *applet)
+ gtk_container_set_border_width (GTK_CONTAINER (applet), 0);
+ gtk_widget_set_name (GTK_WIDGET (applet), "gdm-user-switch-applet");
+ panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
+- panel_applet_setup_menu_from_file (applet, NULL,
+- DATADIR "/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml",
+- NULL, menu_verbs, adata);
+
+- popup_component = panel_applet_get_popup_component (applet);
++ action_group = gtk_action_group_new ("GDM User Switch Applet Actions");
++ gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
++ gtk_action_group_add_actions (action_group,
++ gdm_user_switch_applet_actions,
++ G_N_ELEMENTS (gdm_user_switch_applet_actions),
++ adata);
++
++ panel_applet_setup_menu_from_file (applet,
++ GDM_USER_SWITCH_MENU_UI_DIR G_DIR_SEPARATOR_S "gdm-user-switch-applet-menu.xml",
++ action_group);
+
+ /* Hide the admin context menu items if locked down or no cmd-line */
+ if (gconf_client_get_bool (adata->client,
+ LOCKDOWN_COMMAND_LINE_KEY,
+ NULL) ||
+ panel_applet_get_locked_down (applet)) {
+- bonobo_ui_component_set_prop (popup_component,
+- "/popups/button3/GdmSeparator",
+- "hidden", "1", NULL);
+- bonobo_ui_component_set_prop (popup_component,
+- "/commands/GdmUsersGroupsAdmin",
+- "hidden", "1", NULL);
++ GtkAction *action;
++
++ action = gtk_action_group_get_action (action_group, "GdmUsersGroupsAdmin");
++ gtk_action_set_visible (action, FALSE);
+ } else {
++ GtkAction *action;
++
+ #ifndef USERS_ADMIN
+ # ifdef GDM_SETUP
+- bonobo_ui_component_set_prop (popup_component,
+- "/popups/button3/GdmSeparator",
+- "hidden", "1",
+- NULL);
+ # endif /* !GDM_SETUP */
+- bonobo_ui_component_set_prop (popup_component,
+- "/commands/GdmUsersGroupsAdmin",
+- "hidden", "1",
+- NULL);
++ action = gtk_action_group_get_action (action_group, "GdmUsersGroupsAdmin");
++ gtk_action_set_visible (action, FALSE);
+ #endif /* !USERS_ADMIN */
+ }
+
+ /* Hide the gdmphotosetup item if it can't be found in the path. */
+ tmp = g_find_program_in_path ("gnome-about-me");
+ if (!tmp) {
+- bonobo_ui_component_set_prop (popup_component,
+- "/commands/GdmAboutMe",
+- "hidden", "1",
+- NULL);
++ GtkAction *action;
++
++ action = gtk_action_group_get_action (action_group, "GdmAboutMe");
++ gtk_action_set_visible (action, FALSE);
+ } else {
+ g_free (tmp);
+ }
+
+- g_signal_connect (adata->applet,
+- "style-set",
+- G_CALLBACK (applet_style_set_cb), adata);
++ g_object_unref (action_group);
++
+ g_signal_connect (applet,
+ "change-background",
+ G_CALLBACK (applet_change_background_cb), adata);
+@@ -1655,7 +1574,7 @@ applet_factory (PanelApplet *applet,
+ {
+ gboolean ret;
+ ret = FALSE;
+- if (strcmp (iid, "OAFIID:GNOME_FastUserSwitchApplet") == 0) {
++ if (strcmp (iid, "GdmUserSwitchApplet") == 0) {
+ ret = fill_applet (applet);
+ }
+ return ret;
+diff --git a/gui/user-switch-applet/gdm-user-switch-applet-menu.xml b/gui/user-switch-applet/gdm-user-switch-applet-menu.xml
+new file mode 100644
+index 0000000..78301b3
+--- /dev/null
++++ b/gui/user-switch-applet/gdm-user-switch-applet-menu.xml
+@@ -0,0 +1,4 @@
++<menuitem name="About Me Item" action="GdmAboutMe"/>
++<menuitem name="Users and Groups Admin Item" action="GdmUsersGroupsAdmin"/>
++<menuitem name="About Item" action="GdmAbout"/>
++
+diff --git a/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in b/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
+new file mode 100644
+index 0000000..3c77dfb
+--- /dev/null
++++ b/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
+@@ -0,0 +1,16 @@
++[Applet Factory]
++Id=GdmUserSwitchAppletFactory
++Location=@LIBEXECDIR@/gdm-user-switch-applet
++_Name=User Switcher Applet Factory
++_Description=User Switcher Applet Factory
++
++[GdmUserSwitchApplet]
++_Name=User Switcher
++_Description=A menu to quickly switch between users
++BonoboId=OAFIID:GNOME_FastUserSwitchApplet
++X-GNOME-Bugzilla-Bugzilla=GNOME
++X-GNOME-Bugzilla-Product=gdm
++X-GNOME-Bugzilla-Component=general
++X-GNOME-Bugzilla-Version=@VERSION@
++X-GNOME-Bugzilla-OtherBinaries=gdm-user-switch-applet
++
+diff --git a/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in b/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
+new file mode 100644
+index 0000000..7bf900f
+--- /dev/null
++++ b/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
+@@ -0,0 +1,4 @@
++[D-BUS Service]
++Name=org.gnome.panel.applet.GdmUserSwitchAppletFactory
++Exec=@LIBEXECDIR@/gdm-user-switch-applet
++
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index 1fccb90..5340391 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -86,8 +86,7 @@ gui/simple-greeter/gdm-user-chooser-widget.c
+ gui/simple-greeter/greeter-main.c
+ gui/user-switch-applet/applet.c
+ gui/user-switch-applet/gdm-entry-menu-item.c
+-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
+-gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
++gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
+ utils/gdmflexiserver.c
+ utils/gdm-screenshot.c
+
+diff --git a/po/POTFILES.skip b/po/POTFILES.skip
+index 0269a0f..9032c03 100644
+--- a/po/POTFILES.skip
++++ b/po/POTFILES.skip
+@@ -7,7 +7,7 @@
+ # remove these unless you fix "make distcheck" a different way.
+ #
+ data/gdm.schemas.in
+-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in
++gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in
+ data/greeter-autostart/at-spi-registryd-wrapper.desktop.in
+ data/greeter-autostart/gdm-simple-greeter.desktop.in
+ data/greeter-autostart/gnome-power-manager.desktop.in
+--
+1.7.2.3
+