patches/gnome-session-10-wait-for-postrun.diff
author dc144907
Tue, 22 Aug 2006 16:03:38 +0000
changeset 7950 eb1dcec5e949
permissions -rw-r--r--
2006-08-22 Damien Carbery <[email protected]> * nautilus.spec: Bump to 2.15.92. * gnome-themes.spec: Bump to 2.15.92. * eog.spec: Bump to 2.15.92. * gnome-speech.spec: Bump to 0.4.4. * pango.spec: Bump to 1.14.1. * gnome-system-monitor.spec: Bump to 2.15.92. * pygobject.spec: Bump to 2.11.3. * gdm.spec: Bump to 2.15.10. * file-roller.spec: Bump to 2.15.92 * patches/file-roller-02-rename-contents.diff: Rework. * patches/file-roller-03-menu-entry.diff: Rework. * atk.spec: Bump to 2.15.92 * at-spi.spec: Bump to 2.15.92 * gail.spec: Bump to 2.15.92 * gedit.spec: Bump to 2.15.92 * gnome-icon-theme.spec: Bump to 2.15.92 * gnome-backgrounds.spec: Bump to 2.15.92 * dasher.spec: Bump to 2.15.92 * gnome-python.spec: Bump to 2.15.92 * metacity.spec: Bump to 2.15.34. * gtk2-engines.spec: Bump to 2.7.8. * libwnck.spec: Bump to 2.15.92. * gnome-desktop.spec: Bump to 2.15.92. * gnome-session.spec: Bump to 2.15.92. * patches/gnome-session-10-fixcrash.diff: Removed, upstream. * patches/gnome-session-10-wait-for-postrun.diff: Rename from 11. * patches/gnome-session-11-trusted-extensions.diff: Rename from 12. * gnome-panel.spec: Bump to 2.15.92. * patches/gnome-panel-03-fish-applet.diff: Rework. * patches/gnome-panel-06-notificationarea-tooltip.diff: Rework. * patches/gnome-panel-11-clock-timezone.diff: Rework. * gnome-screensaver.spec: Bump to 2.15.7. * nautilus-cd-burner.spec: Bump to 2.15.7. * bug-buddy.spec: Bump to 2.15.92. * gnome-keyring-manager.spec: Bump to 2.15.92.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7950
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     1
diff -urN session.orig/gnome-session/main.c session.new/gnome-session/main.c
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     2
--- session.orig/gnome-session/main.c	2006-06-29 17:22:53.756187000 +0100
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     3
+++ session.new/gnome-session/main.c	2006-06-29 21:42:56.537614000 +0100
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     4
@@ -246,7 +246,68 @@
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     5
   RESPONSE_LOG_IN,
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     6
   RESPONSE_TRY_AGAIN
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     7
 };
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     8
-    
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
     9
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    10
+static gboolean
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    11
+postrun_progress_update (gpointer data)
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    12
+{
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    13
+  int status = 0;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    14
+  static int count = 0;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    15
+  GError *error = NULL;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    16
+  gtk_progress_bar_pulse (GTK_PROGRESS_BAR (data));
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    17
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    18
+  if (count == 30) {
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    19
+    g_spawn_command_line_sync ("/usr/lib/postrun-query -c JDS_wait -e", 
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    20
+			       NULL, NULL, &status, &error);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    21
+    count = 0;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    22
+  }
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    23
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    24
+  if (status == 0) {
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    25
+    count++;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    26
+    return TRUE;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    27
+  }
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    28
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    29
+  gtk_main_quit ();
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    30
+  return FALSE;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    31
+}
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    32
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    33
+static void
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    34
+gsm_wait_for_unfinished_postrun () 
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    35
+{
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    36
+  int status = 0;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    37
+  GError *error = NULL; 
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    38
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    39
+  if (!g_spawn_command_line_sync ("/usr/lib/postrun-query -c JDS_wait -e",
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    40
+				  NULL, NULL, &status, &error)) {
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    41
+    /* no postrun-query? WTF? bail out and hope for the best :) */
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    42
+    return;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    43
+  }
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    44
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    45
+  if (status == 0) {
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    46
+    GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    47
+    GtkWidget *vbox = gtk_vbox_new (TRUE, 10);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    48
+    GtkWidget *progress = gtk_progress_bar_new ();
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    49
+    GtkWidget *label;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    50
+    gint func_ref;
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    51
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    52
+    label = gtk_label_new (_("Completing post install setup..."));
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    53
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    54
+    gtk_container_add (GTK_CONTAINER (window), vbox);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    55
+    gtk_container_set_border_width (GTK_CONTAINER (window), 10);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    56
+    gtk_box_pack_start_defaults (GTK_BOX (vbox), label);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    57
+    gtk_progress_bar_pulse (GTK_PROGRESS_BAR (progress));
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    58
+    func_ref = g_timeout_add (100, postrun_progress_update, progress);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    59
+    gtk_box_pack_start_defaults (GTK_BOX (vbox), progress);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    60
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    61
+    gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    62
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    63
+    gtk_widget_show_all (window);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    64
+    gtk_main ();
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    65
+  
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    66
+    gtk_widget_destroy (window);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    67
+    g_source_remove (func_ref);
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    68
+  }
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    69
+}
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    70
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    71
 static void
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    72
 gnome_login_check (void)
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    73
 {
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    74
@@ -395,7 +456,9 @@
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    75
 
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    76
   /* We need to do this as early as possible */
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    77
   gsm_set_display_properties ();
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    78
-  
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    79
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    80
+  gsm_wait_for_unfinished_postrun ();
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    81
+
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    82
   if (ORBit_proto_use ("IPv4") || ORBit_proto_use ("IPv6"))
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    83
     gnome_login_check ();
eb1dcec5e949 2006-08-22 Damien Carbery <[email protected]>
dc144907
parents:
diff changeset
    84