patches/gnome-panel-11-lockdown-applets.diff
author mattman
Tue, 09 Sep 2008 14:55:42 +0000
changeset 13463 8477a18a9126
parent 13159 245184d459c1
child 14907 a551490c6cd1
permissions -rw-r--r--
* patches/gnome-panel-13-lockdown-applets.diff : Amended to fix panel crash bug : 6746271, NULL pointer being passed to g_warning() beacuse of trash applet crashing (which is being tracked by another bug).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
     1
--- gnome-panel-2.23.6.old/gnome-panel/panel-applet-frame.h	2008-08-18 15:05:36.136359000 +0100
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
     2
+++ gnome-panel-2.23.6/gnome-panel/panel-applet-frame.h	2008-08-18 15:06:21.011256000 +0100
9136
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
     3
@@ -77,6 +77,13 @@
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
     4
 
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
     5
 void            panel_applet_frame_set_panel (PanelAppletFrame *frame,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
     6
 					      PanelWidget      *panel);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
     7
+/**
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
     8
+  * Checks whether the applet has been disabled or reenabled and if necessary
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
     9
+  * rebuilds the applet.
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    10
+  * Returns true if the applet frame was rebuilt as a result of its restriction
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    11
+  * status changing.
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    12
+  */
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    13
+gboolean        panel_applet_frame_refresh (PanelAppletFrame *frame);
9136
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
    14
 
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    15
 G_END_DECLS
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    16
 
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    17
--- gnome-panel-2.23.6.old/gnome-panel/applet.c	2008-08-18 15:05:36.144491000 +0100
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    18
+++ gnome-panel-2.23.6/gnome-panel/applet.c	2008-08-18 15:16:12.926256000 +0100
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    19
@@ -158,6 +158,31 @@
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    20
 	info->menu = panel_applet_create_menu (info);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    21
 }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    22
 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    23
+static void panel_applet_check_visibility(AppletInfo *info)
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    24
+{
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    25
+    if (info->type == PANEL_OBJECT_LAUNCHER) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    26
+        if (panel_lockdown_is_forbidden_launcher (info->data)) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    27
+            gtk_widget_hide(info->widget) ;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    28
+        }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    29
+        else { gtk_widget_show(info->widget) ; }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    30
+    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    31
+}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    32
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    33
+static void panel_applet_refresh_state(AppletInfo *info)
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    34
+{
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    35
+    if (info->type == PANEL_OBJECT_BONOBO) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    36
+        if (!panel_applet_frame_refresh(info->data)) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    37
+            /* If the applet frame was rebuilt, no point in 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    38
+               recreating the menu. */
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    39
+            panel_applet_recreate_menu(info) ;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    40
+        }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    41
+    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    42
+    else {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    43
+        panel_applet_check_visibility(info) ;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    44
+        panel_applet_recreate_menu(info) ;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    45
+    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    46
+}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    47
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    48
 static void
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    49
 panel_applet_locked_change_notify (GConfClient *client,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    50
 				   guint        cnxn_id,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    51
@@ -751,8 +776,7 @@
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    52
 		}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    53
 	}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    54
 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    55
-	if (info->type != PANEL_OBJECT_BONOBO)
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    56
-		panel_lockdown_notify_remove (G_CALLBACK (panel_applet_recreate_menu),
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    57
+	panel_lockdown_notify_remove (G_CALLBACK (panel_applet_refresh_state),
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    58
 					      info);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    59
 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    60
 	if (info->menu)
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    61
@@ -1195,8 +1219,7 @@
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    62
 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    63
 	g_object_set_data (G_OBJECT (applet), "applet_info", info);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    64
 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    65
-	if (type != PANEL_OBJECT_BONOBO)
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    66
-		panel_lockdown_notify_add (G_CALLBACK (panel_applet_recreate_menu),
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    67
+	panel_lockdown_notify_add (G_CALLBACK (panel_applet_refresh_state),
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    68
 					   info);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    69
 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    70
 	key = panel_gconf_full_key ((type == PANEL_OBJECT_BONOBO) ?
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    71
--- gnome-panel-2.23.6.old/gnome-panel/panel-applet-frame.c	2008-08-18 16:49:25.934560000 +0100
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    72
+++ gnome-panel-2.23.6/gnome-panel/panel-applet-frame.c	2008-08-18 16:50:03.592823000 +0100
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    73
@@ -110,6 +110,10 @@
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    74
 	gboolean     movable;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    75
 	gboolean     removable;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    76
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    77
+	/* If the applet is currently in a disabled state, no need for a menu */
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    78
+	if (frame->priv->ui_component == NULL)
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    79
+		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    80
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    81
 	panel_widget = PANEL_WIDGET (GTK_WIDGET (frame)->parent);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    82
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    83
 	lockable = panel_applet_lockable (frame->priv->applet_info);
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    84
@@ -340,9 +344,6 @@
9377
d42e1e7710db Minor rework for gnome-panel patches
dcarbery
parents: 9136
diff changeset
    85
 				 (GCompareFunc) strcmp))
d42e1e7710db Minor rework for gnome-panel patches
dcarbery
parents: 9136
diff changeset
    86
 		return;
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    87
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    88
-	if (panel_lockdown_is_applet_disabled (iid))
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    89
-		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    90
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    91
 	frame = g_object_new (PANEL_TYPE_APPLET_FRAME, NULL);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    92
 	frame->priv->panel = panel;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    93
 	frame->priv->iid   = g_strdup (iid);
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
    94
@@ -354,13 +355,21 @@
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    95
 	frame_act->exactpos = exactpos;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    96
 	frame_act->id       = g_strdup (id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    97
 
9136
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
    98
-	CORBA_exception_init (&ev);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
    99
+	/* If the applet is disabled, we don't actually load the bonobo component,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   100
+       but keep the objects around so that, should the disabled state change,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   101
+       we'll be able to reload the applet in its proper state. */
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   102
+	if (panel_lockdown_is_applet_disabled (iid)) { 
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   103
+		panel_applet_frame_activated (NULL, "LOCKED", frame_act); 
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   104
+	}
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   105
+	else {
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   106
+	    CORBA_exception_init (&ev);
9136
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
   107
+
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   108
+	    bonobo_activation_activate_from_id_async (frame->priv->iid, 0,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   109
+					  (BonoboActivationCallback) panel_applet_frame_activated,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   110
+					  frame_act, &ev);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   111
 
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   112
-	bonobo_activation_activate_from_id_async (frame->priv->iid, 0,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   113
-						  (BonoboActivationCallback) panel_applet_frame_activated,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   114
-						  frame_act, &ev);
9136
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
   115
-
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   116
-	CORBA_exception_free (&ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   117
+	    CORBA_exception_free (&ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   118
+    }
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   119
 }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   120
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   121
 void
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   122
@@ -425,6 +434,19 @@
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   123
 	g_free (id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   124
 }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   125
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   126
+static void panel_applet_frame_reload (PanelAppletFrame *frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   127
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   128
+gboolean
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   129
+panel_applet_frame_refresh (PanelAppletFrame *frame)
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   130
+{
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   131
+	if ((frame->priv->ui_component == NULL) !=
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   132
+		panel_lockdown_is_applet_disabled (frame->priv->iid)) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   133
+		panel_applet_frame_reload (frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   134
+		return TRUE;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   135
+	}
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   136
+	return FALSE;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   137
+}
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   138
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   139
 void
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   140
 panel_applet_frame_change_orientation (PanelAppletFrame *frame,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   141
 				       PanelOrientation  orientation)
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   142
@@ -869,6 +891,33 @@
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   143
 	return handled;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   144
 }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   145
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   146
+static void 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   147
+panel_applet_frame_reload (PanelAppletFrame *frame)
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   148
+{
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   149
+	PanelWidget *panel;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   150
+	char        *iid;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   151
+	char        *id = NULL;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   152
+	int          position = -1;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   153
+	gboolean     locked = FALSE;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   154
+	AppletInfo  *info = NULL;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   155
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   156
+	info = frame->priv->applet_info;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   157
+	panel = frame->priv->panel;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   158
+	iid   = g_strdup (frame->priv->iid);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   159
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   160
+	if (info) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   161
+        id = g_strdup (info->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   162
+        position  = panel_applet_get_position (info);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   163
+        locked = panel_widget_get_applet_locked (panel, info->widget);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   164
+        panel_applet_clean (info);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   165
+	}
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   166
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   167
+	panel_applet_frame_load (iid, panel, locked, position, TRUE, id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   168
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   169
+	g_free (iid);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   170
+	g_free (id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   171
+}
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   172
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   173
 static void
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   174
 panel_applet_frame_reload_response (GtkWidget        *dialog,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   175
 				    int               response,
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   176
@@ -887,28 +936,7 @@
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   177
 	info = frame->priv->applet_info;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   178
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   179
 	if (response == GTK_RESPONSE_YES) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   180
-		PanelWidget *panel;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   181
-		char        *iid;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   182
-		char        *id = NULL;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   183
-		int          position = -1;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   184
-		gboolean     locked = FALSE;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   185
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   186
-		panel = frame->priv->panel;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   187
-		iid   = g_strdup (frame->priv->iid);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   188
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   189
-		if (info) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   190
-			id = g_strdup (info->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   191
-			position  = panel_applet_get_position (info);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   192
-			locked = panel_widget_get_applet_locked (panel, info->widget);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   193
-			panel_applet_clean (info);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   194
-		}
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   195
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   196
-		panel_applet_frame_load (iid, panel, locked,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   197
-					 position, TRUE, id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   198
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   199
-		g_free (iid);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   200
-		g_free (id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   201
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   202
+		panel_applet_frame_reload (frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   203
 	} else if (info) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   204
 		/* if we can't write to applets list we can't really delete
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   205
 		   it, so we'll just ignore this.  FIXME: handle this
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   206
@@ -1277,169 +1305,175 @@
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   207
 	frame_act = (PanelAppletFrameActivating *) data;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   208
 	frame = frame_act->frame;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   209
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   210
-	/* according to the source of bonobo control == NULL && no
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   211
-	   exception can happen, so handle it */
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   212
-	if (error_reason != NULL || object == CORBA_OBJECT_NIL) {
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   213
-		g_warning (G_STRLOC ": failed to load applet %s:\n%s",
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   214
-			   frame->priv->iid, error_reason);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   215
-		panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   216
-		g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   217
-		g_free (frame_act);
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   218
-		return;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   219
-	}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   220
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   221
-	CORBA_exception_init (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   222
 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   223
-	item_name = panel_applet_frame_construct_item (frame,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   224
-						       frame->priv->panel,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   225
-						       frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   226
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   227
-	frame->priv->control = CORBA_OBJECT_NIL;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   228
-	container = Bonobo_Unknown_queryInterface (object,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   229
-						   "IDL:Bonobo/ItemContainer:1.0",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   230
-						   &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   231
-	if (!BONOBO_EX (&corba_ev) && container != CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   232
-		Bonobo_Unknown containee;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   233
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   234
-		containee = Bonobo_ItemContainer_getObjectByName (container,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   235
-								  item_name,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   236
-								  TRUE,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   237
-								  &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   238
-		bonobo_object_release_unref (container, NULL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   239
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   240
-		if (!BONOBO_EX (&corba_ev) && containee != CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   241
-			frame->priv->control =
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   242
-				Bonobo_Unknown_queryInterface (containee,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   243
-							       "IDL:Bonobo/Control:1.0",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   244
-							       &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   245
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   246
-			bonobo_object_release_unref (containee, NULL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   247
-		}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   248
-	}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   249
-	g_free (item_name);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   250
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   251
-	if (frame->priv->control == CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   252
-		error = bonobo_exception_get_text (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   253
-		g_warning (G_STRLOC ": failed to get Bonobo/Control interface on applet %s:\n%s",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   254
-                           frame->priv->iid, error);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   255
-		panel_applet_frame_loading_failed (frame, frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   256
-		CORBA_exception_free (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   257
-		bonobo_object_release_unref (object, NULL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   258
-                g_free (frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   259
-		g_free (frame_act);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   260
-		g_free (error);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   261
-		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   262
-	}
9136
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
   263
-
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   264
-	widget = bonobo_widget_new_control_from_objref (frame->priv->control,
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   265
-							CORBA_OBJECT_NIL);
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   266
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   267
-	CORBA_exception_free (&corba_ev);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   268
-	bonobo_object_release_unref (object, NULL);
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   269
-
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   270
-	if (!widget) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   271
-		g_warning (G_STRLOC ": failed to load applet %s",
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   272
-			   frame->priv->iid);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   273
-		panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   274
-		g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   275
-		g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   276
-		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   277
-	}
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   278
-
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   279
-	control_frame = bonobo_widget_get_control_frame (BONOBO_WIDGET (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   280
-	if (control_frame == NULL) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   281
-		g_warning (G_STRLOC ": failed to load applet %s "
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   282
-			   "(cannot get control frame)", frame->priv->iid);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   283
-		panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   284
-		gtk_object_sink (GTK_OBJECT (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   285
-		g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   286
-		g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   287
-		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   288
-	}
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   289
-
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   290
-	frame->priv->property_bag = 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   291
-		bonobo_control_frame_get_control_property_bag (control_frame,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   292
-							       &corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   293
-	if (frame->priv->property_bag == NULL || BONOBO_EX (&corba_ev)) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   294
-		error = bonobo_exception_get_text (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   295
-		CORBA_exception_free (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   296
-		g_warning (G_STRLOC ": failed to load applet %s "
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   297
-			   "(cannot get property bag):\n%s",
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   298
-			   frame->priv->iid, error);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   299
-		panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   300
-		gtk_object_sink (GTK_OBJECT (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   301
-		g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   302
-		g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   303
-		g_free (error);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   304
-		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   305
-	}
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   306
-
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   307
-	bonobo_event_source_client_add_listener (frame->priv->property_bag,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   308
-						 (BonoboListenerCallbackFn) panel_applet_frame_event_listener,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   309
-						 "Bonobo/Property:change:panel-applet",
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   310
-						 NULL,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   311
-						 frame);
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   312
+    if (error_reason == NULL ||
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   313
+        (error_reason != NULL && strncmp(error_reason, "LOCKED", 6) != 0)) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   314
+	    /* according to the source of bonobo control == NULL && no
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   315
+	       exception can happen, so handle it */
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   316
+	    if (error_reason != NULL || object == CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   317
+		    g_warning (G_STRLOC ": failed to load applet %s:\n%s",
13463
8477a18a9126 * patches/gnome-panel-13-lockdown-applets.diff : Amended to fix panel
mattman
parents: 13159
diff changeset
   318
+			    frame->priv->iid, error_reason != NULL ? error_reason : "");
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   319
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   320
+		    g_free (frame_act->id);
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   321
+		    g_free (frame_act);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   322
+		    return;
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   323
+	    }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   324
+
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   325
+	    CORBA_exception_init (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   326
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   327
+	    item_name = panel_applet_frame_construct_item (frame,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   328
+						        frame->priv->panel,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   329
+						        frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   330
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   331
+	    frame->priv->control = CORBA_OBJECT_NIL;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   332
+	    container = Bonobo_Unknown_queryInterface (object,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   333
+						    "IDL:Bonobo/ItemContainer:1.0",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   334
+						    &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   335
+	    if (!BONOBO_EX (&corba_ev) && container != CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   336
+		    Bonobo_Unknown containee;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   337
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   338
+		    containee = Bonobo_ItemContainer_getObjectByName (container,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   339
+								    item_name,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   340
+								    TRUE,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   341
+								    &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   342
+		    bonobo_object_release_unref (container, NULL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   343
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   344
+		    if (!BONOBO_EX (&corba_ev) && containee != CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   345
+			    frame->priv->control =
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   346
+				    Bonobo_Unknown_queryInterface (containee,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   347
+							        "IDL:Bonobo/Control:1.0",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   348
+							        &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   349
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   350
+			    bonobo_object_release_unref (containee, NULL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   351
+		    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   352
+	    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   353
+	    g_free (item_name);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   354
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   355
+	    if (frame->priv->control == CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   356
+		    error = bonobo_exception_get_text (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   357
+		    g_warning (G_STRLOC ": failed to get Bonobo/Control interface on applet %s:\n%s",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   358
+                            frame->priv->iid, error);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   359
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   360
+		    CORBA_exception_free (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   361
+		    bonobo_object_release_unref (object, NULL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   362
+                    g_free (frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   363
+		    g_free (frame_act);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   364
+		    g_free (error);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   365
+		    return;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   366
+	    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   367
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   368
+	    widget = bonobo_widget_new_control_from_objref (frame->priv->control,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   369
+							    CORBA_OBJECT_NIL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   370
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   371
+	    CORBA_exception_free (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   372
+	    bonobo_object_release_unref (object, NULL);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   373
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   374
+	    if (!widget) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   375
+		    g_warning (G_STRLOC ": failed to load applet %s",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   376
+			    frame->priv->iid);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   377
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   378
+		    g_free (frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   379
+		    g_free (frame_act);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   380
+		    return;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   381
+	    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   382
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   383
+	    control_frame = bonobo_widget_get_control_frame (BONOBO_WIDGET (widget));
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   384
+	    if (control_frame == NULL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   385
+		    g_warning (G_STRLOC ": failed to load applet %s "
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   386
+			    "(cannot get control frame)", frame->priv->iid);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   387
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   388
+		    gtk_object_sink (GTK_OBJECT (widget));
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   389
+		    g_free (frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   390
+		    g_free (frame_act);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   391
+		    return;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   392
+	    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   393
+    
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   394
+	    frame->priv->property_bag = 
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   395
+		    bonobo_control_frame_get_control_property_bag (control_frame,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   396
+							        &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   397
+	    if (frame->priv->property_bag == NULL || BONOBO_EX (&corba_ev)) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   398
+		    error = bonobo_exception_get_text (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   399
+		    CORBA_exception_free (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   400
+		    g_warning (G_STRLOC ": failed to load applet %s "
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   401
+			    "(cannot get property bag):\n%s",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   402
+			    frame->priv->iid, error);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   403
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   404
+		    gtk_object_sink (GTK_OBJECT (widget));
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   405
+		    g_free (frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   406
+		    g_free (frame_act);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   407
+		    g_free (error);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   408
+		    return;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   409
+	    }
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   410
+
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   411
+	    bonobo_event_source_client_add_listener (frame->priv->property_bag,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   412
+						    (BonoboListenerCallbackFn) panel_applet_frame_event_listener,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   413
+						    "Bonobo/Property:change:panel-applet",
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   414
+						    NULL,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   415
+						    frame);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   416
 	
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   417
-	frame->priv->ui_component =
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   418
-		bonobo_control_frame_get_popup_component (control_frame,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   419
-							  &corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   420
-	if (frame->priv->ui_component == NULL || BONOBO_EX (&corba_ev)) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   421
-		error = bonobo_exception_get_text (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   422
-		CORBA_exception_free (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   423
-		g_warning (G_STRLOC ": failed to load applet %s "
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   424
-			   "(cannot get popup component):\n%s",
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   425
-			   frame->priv->iid, error);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   426
-		panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   427
-		gtk_object_sink (GTK_OBJECT (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   428
-		g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   429
-		g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   430
-		g_free (error);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   431
-		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   432
-	}
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   433
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   434
-	bonobo_ui_util_set_ui (frame->priv->ui_component, DATADIR,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   435
-			       "GNOME_Panel_Popup.xml", "panel", NULL);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   436
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   437
-	bonobo_ui_component_add_listener (frame->priv->ui_component,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   438
-					  "LockAppletToPanel",
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   439
-					  listener_popup_handle_lock,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   440
-					  frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   441
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   442
-	bonobo_ui_component_add_verb_list_with_data (
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   443
-		frame->priv->ui_component, popup_verbs, frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   444
-
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   445
-	control = bonobo_control_frame_get_control (control_frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   446
-	if (!control) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   447
-		CORBA_exception_free (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   448
-		g_warning (G_STRLOC ": failed to load applet %s "
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   449
-			   "(cannot get control)", frame->priv->iid);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   450
-		panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   451
-		gtk_object_sink (GTK_OBJECT (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   452
-		g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   453
-		g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   454
-		return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   455
-	}
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   456
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   457
-	frame->priv->applet_shell = panel_applet_frame_get_applet_shell (control);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   458
-	if (frame->priv->applet_shell == CORBA_OBJECT_NIL) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   459
-		CORBA_exception_free (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   460
-		g_warning (G_STRLOC ": failed to load applet %s "
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   461
-			   "(cannot get applet shell)", frame->priv->iid);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   462
-		panel_applet_frame_loading_failed (frame, frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   463
-		gtk_object_sink (GTK_OBJECT (widget));
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   464
-		g_free (frame_act->id);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   465
-		g_free (frame_act);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   466
-		return;
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   467
-	}
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   468
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   469
-	CORBA_exception_free (&corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   470
-
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   471
-	ORBit_small_listen_for_broken (object,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   472
-				       G_CALLBACK (panel_applet_frame_cnx_broken),
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   473
-				       frame);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   474
+	    frame->priv->ui_component =
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   475
+		    bonobo_control_frame_get_popup_component (control_frame,
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   476
+							    &corba_ev);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   477
+	    if (frame->priv->ui_component == NULL || BONOBO_EX (&corba_ev)) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   478
+		    error = bonobo_exception_get_text (&corba_ev);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   479
+		    CORBA_exception_free (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   480
+		    g_warning (G_STRLOC ": failed to load applet %s "
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   481
+			    "(cannot get popup component):\n%s",
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   482
+			    frame->priv->iid, error);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   483
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   484
+		    gtk_object_sink (GTK_OBJECT (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   485
+		    g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   486
+		    g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   487
+		    g_free (error);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   488
+		    return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   489
+	    }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   490
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   491
+	    bonobo_ui_util_set_ui (frame->priv->ui_component, DATADIR,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   492
+			        "GNOME_Panel_Popup.xml", "panel", NULL);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   493
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   494
+	    bonobo_ui_component_add_listener (frame->priv->ui_component,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   495
+					    "LockAppletToPanel",
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   496
+					    listener_popup_handle_lock,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   497
+					    frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   498
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   499
+	    bonobo_ui_component_add_verb_list_with_data (
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   500
+		    frame->priv->ui_component, popup_verbs, frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   501
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   502
+	    control = bonobo_control_frame_get_control (control_frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   503
+	    if (!control) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   504
+		    CORBA_exception_free (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   505
+		    g_warning (G_STRLOC ": failed to load applet %s "
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   506
+			    "(cannot get control)", frame->priv->iid);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   507
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   508
+		    gtk_object_sink (GTK_OBJECT (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   509
+		    g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   510
+		    g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   511
+		    return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   512
+	    }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   513
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   514
+	    frame->priv->applet_shell = panel_applet_frame_get_applet_shell (control);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   515
+	    if (frame->priv->applet_shell == CORBA_OBJECT_NIL) {
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   516
+		    CORBA_exception_free (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   517
+		    g_warning (G_STRLOC ": failed to load applet %s "
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   518
+			    "(cannot get applet shell)", frame->priv->iid);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   519
+		    panel_applet_frame_loading_failed (frame, frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   520
+		    gtk_object_sink (GTK_OBJECT (widget));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   521
+		    g_free (frame_act->id);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   522
+		    g_free (frame_act);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   523
+		    return;
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   524
+	    }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   525
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   526
+	    CORBA_exception_free (&corba_ev);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   527
+
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   528
+	    ORBit_small_listen_for_broken (object,
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   529
+				        G_CALLBACK (panel_applet_frame_cnx_broken),
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   530
+				        frame);
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   531
 
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   532
-	gtk_container_add (GTK_CONTAINER (frame), widget);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   533
+	    gtk_container_add (GTK_CONTAINER (frame), widget);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   534
+    }
9136
d6c8f3b2455f * gnome-panel.spec : Bump to 2.17.90
mattman
parents: 8382
diff changeset
   535
 
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   536
+    /* Regardless of whether the object was actually loaded, the corresponding
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   537
+       applet is created to handle lockdown state changes */
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   538
 	gtk_widget_show_all (GTK_WIDGET (frame));
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   539
 
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   540
 	info = panel_applet_register (GTK_WIDGET (frame), GTK_WIDGET (frame),
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   541
@@ -1453,7 +1487,9 @@
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   542
 						  GTK_WIDGET (frame), TRUE);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   543
 
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   544
 	panel_applet_frame_sync_menu_state (frame);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   545
-	panel_applet_frame_init_properties (frame);
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   546
+    if (frame->priv->property_bag) {
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   547
+	    panel_applet_frame_init_properties (frame);
8382
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   548
+    }
5340d1f7700f Remove gnome-panel-02-workspace-switcher.diff : #127285, applied upstream.
mattman
parents:
diff changeset
   549
 
13158
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   550
 	panel_lockdown_notify_add (G_CALLBACK (panel_applet_frame_sync_menu_state),
ab80b472fa59 * base-specs/gnome-pane.spec : Re-apply gnome-panel-13-lockdown-applets
mattman
parents: 9377
diff changeset
   551
 				   frame);