1 8534 sb73685 diff -urN control-center-2.14.1/gnome-settings-daemon/gnome-settings-keybindings.c ../SUNWgnome-desktop-prefs-2.14.1.hacked/control-center-2.14.1/gnome-settings-daemon/gnome-settings-keybindings.c 2 8534 sb73685 --- control-center-2.14.1/gnome-settings-daemon/gnome-settings-keybindings.c 2006-06-12 12:33:36.567877000 +0100 3 8534 sb73685 +++ ../SUNWgnome-desktop-prefs-2.14.1.hacked/control-center-2.14.1/gnome-settings-daemon/gnome-settings-keybindings.c 2006-06-12 12:48:38.094184000 +0100 4 8534 sb73685 @@ -19,7 +19,10 @@ 5 8534 sb73685 * for these set */ 6 8534 sb73685 #define USED_MODS (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK) 7 8534 sb73685 8 8534 sb73685 -#define GCONF_BINDING_DIR "/desktop/gnome/keybindings" 9 8534 sb73685 +#define GCONF_BINDING_DIR "/desktop/gnome/keybindings" 10 8534 sb73685 + 11 8534 sb73685 +extern gboolean gnome_desktop_tsol_is_multi_label_session (void); 12 8534 sb73685 +extern void gnome_desktop_tsol_proxy_app_launch (gchar *); 13 8534 sb73685 14 8534 sb73685 typedef struct { 15 8534 sb73685 guint keysym; 16 8534 sb73685 @@ -366,6 +369,7 @@ 17 8534 sb73685 XEvent *xevent = (XEvent *)gdk_xevent; 18 8534 sb73685 guint keycode, state; 19 8534 sb73685 GSList *li; 20 8534 sb73685 + int i = (int)data; 21 8534 sb73685 22 8534 sb73685 if(xevent->type != KeyPress) 23 8534 sb73685 return GDK_FILTER_CONTINUE; 24 8534 sb73685 @@ -384,6 +388,7 @@ 25 8534 sb73685 gboolean retval; 26 8534 sb73685 gchar **argv = NULL; 27 8534 sb73685 gchar **envp = NULL; 28 8534 sb73685 + char *tsolcmd; 29 8534 sb73685 30 8534 sb73685 g_return_val_if_fail (binding->action != NULL, GDK_FILTER_CONTINUE); 31 8534 sb73685 32 8534 sb73685 @@ -394,6 +399,12 @@ 33 8534 sb73685 34 8534 sb73685 envp = get_exec_environment (xevent); 35 8534 sb73685 36 8534 sb73685 + if (gnome_desktop_tsol_is_multi_label_session ()) { 37 8534 sb73685 + tsolcmd = g_strdup_printf ("%d:%s", i, argv[0]); 38 8534 sb73685 + gnome_desktop_tsol_proxy_app_launch (tsolcmd); 39 8534 sb73685 + g_free (tsolcmd); 40 8534 sb73685 + return GDK_FILTER_CONTINUE; 41 8534 sb73685 + } 42 8534 sb73685 43 8534 sb73685 retval = g_spawn_async (NULL, 44 8534 sb73685 argv, 45 8534 sb73685 @@ -437,12 +448,12 @@ 46 8534 sb73685 47 8534 sb73685 gdk_window_add_filter (gdk_get_default_root_window (), 48 8534 sb73685 keybindings_filter, 49 8534 sb73685 - NULL); 50 8534 sb73685 + 0); 51 8534 sb73685 for (i = 0; i < screen_num; i++) 52 8534 sb73685 { 53 8534 sb73685 screen = gdk_display_get_screen (dpy, i); 54 8534 sb73685 gdk_window_add_filter (gdk_screen_get_root_window (screen), 55 8534 sb73685 - keybindings_filter, NULL); 56 8534 sb73685 + keybindings_filter, i); 57 8534 sb73685 } 58 8534 sb73685 } 59 8534 sb73685 60 9529 dkenny diff -u control-center-2.16.1/gnome-settings-daemon/gnome-settings-multimedia-keys.c-orig5 control-center-2.16.1/gnome-settings-daemon/gnome-settings-multimedia-keys.c 61 9529 dkenny --- control-center-2.16.1/gnome-settings-daemon/gnome-settings-multimedia-keys.c-orig5 2006-10-20 14:15:53.071533000 +0100 62 9529 dkenny +++ control-center-2.16.1/gnome-settings-daemon/gnome-settings-multimedia-keys.c 2006-10-20 14:17:28.745941000 +0100 63 9529 dkenny @@ -50,6 +50,9 @@ 64 8534 sb73685 * for these set */ 65 8534 sb73685 #define USED_MODS (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK) 66 8534 sb73685 67 8534 sb73685 +extern gboolean gnome_desktop_tsol_is_multi_label_session (void); 68 8534 sb73685 +extern void gnome_desktop_tsol_proxy_app_launch (gchar *); 69 8534 sb73685 + 70 8534 sb73685 typedef struct { 71 8534 sb73685 AcmeVolume *volobj; 72 9529 dkenny GladeXML *xml; 73 9529 dkenny @@ -93,7 +96,16 @@ 74 8534 sb73685 gboolean retval; 75 8534 sb73685 gchar **argv; 76 8534 sb73685 gint argc; 77 8534 sb73685 - 78 8534 sb73685 + 79 8534 sb73685 + if (gnome_desktop_tsol_is_multi_label_session ()) { 80 8534 sb73685 + char *tsolcmd; 81 8534 sb73685 + /* FIXME: assume the screen 0 since ACME does not support multi-head */ 82 8534 sb73685 + tsolcmd = g_strdup_printf ("0:%s", cmd); 83 8534 sb73685 + gnome_desktop_tsol_proxy_app_launch (tsolcmd); 84 8534 sb73685 + g_free (tsolcmd); 85 8534 sb73685 + return; 86 8534 sb73685 + } 87 8534 sb73685 + 88 8534 sb73685 retval = FALSE; 89 8534 sb73685 90 8534 sb73685 if (g_shell_parse_argv (cmd, &argc, &argv, NULL)) { 91 9529 dkenny 92