1 --- control-center-2.15.92/capplets/accessibility/keyboard/gnome-accessibility-keyboard-properties.c Fri Aug 20 17:50:57 2004 2 +++ control-center-2.15.92.new/capplets/accessibility/keyboard/gnome-accessibility-keyboard-properties.c Mon Aug 28 13:38:09 2006 3 @@ -87,6 +87,9 @@ 4 int 5 main (int argc, char **argv) 6 { 7 + Window dummy_window; 8 + Atom already_running; 9 + XSetWindowAttributes attrs; 10 GtkWidget *dialog; 11 GConfChangeSet *changeset; 12 bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); 13 @@ -97,20 +100,36 @@ 14 LIBGNOMEUI_MODULE, argc, argv, 15 GNOME_PARAM_APP_DATADIR, GNOMECC_DATA_DIR, 16 NULL); 17 - activate_settings_daemon (); 18 + 19 + attrs.override_redirect = True; 20 + attrs.event_mask = PropertyChangeMask; 21 + dummy_window = XCreateWindow (GDK_DISPLAY(), 22 + DefaultRootWindow(GDK_DISPLAY ()), 23 + -100, -100, 1, 1, 0, 24 + CopyFromParent, CopyFromParent, 25 + (Visual *)CopyFromParent, 26 + CWOverrideRedirect | CWEventMask, 27 + &attrs); 28 + already_running = XInternAtom(GDK_DISPLAY (), "GAKP_INSTANCE_RUNNING", False); 29 + 30 + if (XGetSelectionOwner(GDK_DISPLAY (), already_running) == None) { 31 + XSetSelectionOwner(GDK_DISPLAY (), already_running, dummy_window, CurrentTime); 32 + 33 + activate_settings_daemon (); 34 35 #ifdef HAVE_X11_EXTENSIONS_XKB_H 36 - xkb_enabled (); 37 + xkb_enabled (); 38 #endif 39 40 - changeset = NULL; 41 - dialog = setup_accessX_dialog (changeset); 42 - g_signal_connect (G_OBJECT (dialog), 43 - "response", 44 - G_CALLBACK (dialog_response), changeset); 45 - capplet_set_icon (dialog, "gnome-settings-accessibility-keyboard"); 46 - gtk_widget_show_all (dialog); 47 - gtk_main (); 48 + changeset = NULL; 49 + dialog = setup_accessX_dialog (changeset); 50 + g_signal_connect (G_OBJECT (dialog), 51 + "response", 52 + G_CALLBACK (dialog_response), changeset); 53 + capplet_set_icon (dialog, "gnome-settings-accessibility-keyboard"); 54 + gtk_widget_show_all (dialog); 55 + gtk_main (); 56 + } 57 58 return 0; 59 } 60