diff options
Diffstat (limited to 'kde-base/kdm/files/kdebase-workspace-4.4.92-kdm_plymouth081.patch')
-rw-r--r-- | kde-base/kdm/files/kdebase-workspace-4.4.92-kdm_plymouth081.patch | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/kde-base/kdm/files/kdebase-workspace-4.4.92-kdm_plymouth081.patch b/kde-base/kdm/files/kdebase-workspace-4.4.92-kdm_plymouth081.patch deleted file mode 100644 index 2c49ccd4..00000000 --- a/kde-base/kdm/files/kdebase-workspace-4.4.92-kdm_plymouth081.patch +++ /dev/null @@ -1,165 +0,0 @@ -diff -up kdebase-workspace-4.4.92/kdm/backend/dm.c.kdm_plymouth kdebase-workspace-4.4.92/kdm/backend/dm.c ---- kdebase-workspace-4.4.92/kdm/backend/dm.c.kdm_plymouth 2010-07-06 01:54:30.000000000 -0500 -+++ kdebase-workspace-4.4.92/kdm/backend/dm.c 2010-07-07 13:55:48.425171749 -0500 -@@ -1329,6 +1329,81 @@ getBusyVTs(void) - return activeVTs; - } - -+static int -+get_active_vt (void) -+{ -+ int console_fd; -+ struct vt_stat console_state = { 0 }; -+ console_fd = open ("/dev/tty0", O_RDONLY | O_NOCTTY); -+ if (console_fd < 0) { -+ goto out; -+ } -+ if (ioctl (console_fd, VT_GETSTATE, &console_state) < 0) { -+ goto out; -+ } -+out: -+ if (console_fd >= 0) { -+ close (console_fd); -+ } -+ return console_state.v_active; -+} -+ -+static int -+plymouth_is_running (void) -+{ -+ int status; -+ status = system ("/bin/plymouth --ping"); -+ -+ return WIFEXITED (status) && WEXITSTATUS (status) == 0; -+} -+ -+static int -+plymouth_has_active_vt (void) -+{ -+ int status; -+ status = system ("/bin/plymouth --has-active-vt"); -+ -+ return WIFEXITED (status) && WEXITSTATUS (status) == 0; -+} -+ -+static int -+plymouth_prepare_for_transition (void) -+{ -+ int status; -+ status = system ("/bin/plymouth deactivate"); -+ -+ return WIFEXITED (status) && WEXITSTATUS (status) == 0; -+} -+ -+int -+plymouth_quit_with_transition (void) -+{ -+ int status; -+ status = system ("/bin/plymouth quit --retain-splash"); -+ -+ return WIFEXITED (status) && WEXITSTATUS (status) == 0; -+} -+ -+static int -+plymouth_quit_without_transition (void) -+{ -+ int status; -+ status = system ("/bin/plymouth quit"); -+ -+ return WIFEXITED (status) && WEXITSTATUS (status) == 0; -+} -+ -+static int -+triggered_to_force_display_on_active_vt (void) -+{ -+ int should_force_display_on_active_vt; -+ should_force_display_on_active_vt=open("/var/spool/gdm/force-display-on-active-vt", O_RDONLY); -+ if ( should_force_display_on_active_vt >= 0 ) -+ close(should_force_display_on_active_vt); -+ unlink("/var/spool/gdm/force-display-on-active-vt"); -+ return should_force_display_on_active_vt; -+} -+ - static void - allocateVT(struct display *d) - { -@@ -1338,6 +1413,43 @@ allocateVT(struct display *d) - if ((d->displayType & d_location) == dLocal && - d->status == notRunning && !d->serverVT && d->reqSrvVT >= 0) - { -+ /* check for plymouth using newer methods */ -+ d->plymouth_is_running = plymouth_is_running (); -+ if (d->plymouth_is_running) { -+ /* call plymouth deactivate */ -+ plymouth_prepare_for_transition (); -+ if (plymouth_has_active_vt ()) { -+ /* plymouth was displaying a splash screen and has -+ * terminated leaving it on screen -+ */ -+ int vt; -+ vt = get_active_vt (); -+ if (vt > 0) { -+ /* start the X server on the active vt */ -+ d->serverVT = vt; -+ return; -+ } -+ } -+ else { -+ /* plymouth might have been running but did not display -+ * a splash screen. -+ */ -+ -+ /* call plymouth quit and start the X server as usual */ -+ d->plymouth_is_running = !plymouth_quit_without_transition (); -+ } -+ -+ /* fallback to old/deprecated method */ -+ } else if ( triggered_to_force_display_on_active_vt() >= 0 ) { -+ int vt; -+ vt = get_active_vt(); -+ if (vt > 0) { -+ d->serverVT = vt; -+ return; -+ } -+ } -+ -+ - if (d->reqSrvVT && d->reqSrvVT < 16) { - d->serverVT = d->reqSrvVT; - } else { -diff -up kdebase-workspace-4.4.92/kdm/backend/dm.h.kdm_plymouth kdebase-workspace-4.4.92/kdm/backend/dm.h ---- kdebase-workspace-4.4.92/kdm/backend/dm.h.kdm_plymouth 2010-07-06 01:54:30.000000000 -0500 -+++ kdebase-workspace-4.4.92/kdm/backend/dm.h 2010-07-07 13:48:11.874921158 -0500 -@@ -292,6 +292,8 @@ struct display { - int authNum; /* number of authorizations */ - char *authFile; /* file to store authorization in */ - char *greeterAuthFile; /* file to store authorization for greeter in */ -+ -+ int plymouth_is_running; /* Plymouth's status */ - }; - - #define d_location 1 -@@ -404,6 +406,8 @@ int anyDisplaysLeft(void); - void forEachDisplay(void (*f)(struct display *)); - #ifdef HAVE_VTS - void forEachDisplayRev(void (*f)(struct display *)); -+/* function for plymouth */ -+int plymouth_quit_with_transition (void); - #endif - void removeDisplay(struct display *old); - struct display -diff -up kdebase-workspace-4.4.92/kdm/backend/server.c.kdm_plymouth kdebase-workspace-4.4.92/kdm/backend/server.c ---- kdebase-workspace-4.4.92/kdm/backend/server.c.kdm_plymouth 2010-07-06 01:54:30.000000000 -0500 -+++ kdebase-workspace-4.4.92/kdm/backend/server.c 2010-07-07 13:56:46.960921366 -0500 -@@ -137,6 +137,11 @@ startServerSuccess() - struct display *d = startingServer; - d->serverStatus = ignore; - serverTimeout = TO_INF; -+ if (d->plymouth_is_running) { -+ debug( "Quitting Plymouth with transition\n" ); -+ d->plymouth_is_running = !plymouth_quit_with_transition (); -+ debug ("Is Plymouth still running? %s\n", d->plymouth_is_running ? "yes" : "no"); -+ } - debug("X server ready, starting session\n"); - startDisplayP2(d); - } |