Hello community, here is the log from the commit of package gnome-screensaver for openSUSE:Factory checked in at Thu May 5 16:34:02 CEST 2011.
-------- --- GNOME/gnome-screensaver/gnome-screensaver.changes 2011-02-13 17:23:06.000000000 +0100 +++ /mounts/work_src_done/STABLE/gnome-screensaver/gnome-screensaver.changes 2011-04-25 16:48:17.000000000 +0200 @@ -1,0 +2,91 @@ +Mon Apr 25 16:42:03 CEST 2011 - [email protected] + +- Add gnome-screensaver-extra < 3.0 Obsoletes, as the screensavers + from xscreensaver are not used anymore. + +------------------------------------------------------------------- +Tue Apr 5 13:31:57 UTC 2011 - [email protected] + +- Update to version 3.0.0: + + Remove inihibit APIs from the documentation + + Updated translations. + +------------------------------------------------------------------- +Tue Mar 22 16:31:04 UTC 2011 - [email protected] + +- Update to version 2.91.92: + + Store time values in seconds instead of minutes + + Don't monitor session settings + + Ensure the initial state of the clock is correct + + Remove dbus activation + + Remove daemonization + + Request shell exit overview when locking + + Updated translations. + +------------------------------------------------------------------- +Tue Mar 8 15:40:11 UTC 2011 - [email protected] + +- Update to version 2.91.91: + + Follow the users clock format preference + + Port to GDBus + + Build cleanups + + Remove --poke option from the commandline tool (didn't work + anyway). + + Remove unused delay and timeout preferences + + Remove inhibit interface (inhibit the session instead) + + Remove theme and job support + + Update style to match gnome-shell + + Use accountsservice to get face + + Updated translations. +- Remove extra package and any kind of dependency on xscreensaver + (xscreensaver-data Requires, and xscreensaver* BuildRequires). + Also remove xscreensaver-blacklist source file. + +------------------------------------------------------------------- +Thu Feb 24 10:40:22 UTC 2011 - [email protected] + +- Update to version 2.91.90: + + Use username in top panel if real name is empty + + Various settings fixes +- Changes from version 2.91.3: + + Fix build against recent GTK+ + + GNOME 3 style updates + + Updated translations +- Changes from version 2.91.3: + + Fix build against recent GTK+ + + Use GIO to launch gdmflexiserver + + Translation updates +- Changes from version 2.91.2: + + Fix build against recent GTK+ + + Port to GSettings +- Changes from version 2.91.1: + + Fix build against recent GTK+ and gnome-desktop + + Port background handling to gsettings + + Translation updates +- Changes from version 2.91.0: + + Switch to GTK+ 3.0 + + Fix crash on systems that lack vidmode and randr extensions + + Add session service activation file + + Use better unicode symbols in strings + + Drop "Leave a message" feature + + Drop unlock dialog theme support + + Drop support for non-PAM based authentication + + Improve aesthetics of unlock dialog + + Monitor hotplug fixes + + Auto-activate screensaver when needed if not running + + Translation updates +- Add gnome-screensaver-helper.patch: put back helper + authentication support, removed in upstream code. +- Update gnome-screensaver-multihead-unlock.patch and + gnome-screensaver-xvkbd-on-lock.patch to work with GTK+ 3. +- Change pkgconfig() BuildRequires: + + change gnome-desktop-2.0 to gnome-desktop-3.0, gtk+-2.0 to + gtk+-3.0 + + remove libnotify +- Remove pkgconfig(gconf-2.0) BuildRequires and + %gconf_schemas_prereq. Do + not pass --disable-schemas-install to configure, since this is + needed for gconf only. +- Use %glib2_gsettings_schema_* macros. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- gnome-screensaver-2.30.2.tar.bz2 xscreensaver-blacklist New: ---- gnome-screensaver-3.0.0.tar.bz2 gnome-screensaver-helper.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-screensaver.spec ++++++ --- /var/tmp/diff_new_pack.fiqrVQ/_old 2011-05-05 16:27:32.000000000 +0200 +++ /var/tmp/diff_new_pack.fiqrVQ/_new 2011-05-05 16:27:32.000000000 +0200 @@ -19,16 +19,17 @@ Name: gnome-screensaver -Version: 2.30.2 -Release: 3 +Version: 3.0.0 +Release: 1 Url: http://www.gnome.org/ Group: System/GUI/GNOME License: GPLv2+ Summary: GNOME Screen Saver and Locker Source: ftp://ftp.gnome.org/pub/gnome/sources/%{name}/2.18/%{name}-%{version}.tar.bz2 -Source1: xscreensaver-blacklist # PATCH-FEATURE-OPENSUSE gnome-screensaver-suse-pam.diff Patch: gnome-screensaver-suse-pam.diff +# PATCH-FIX-UPSTREAM gnome-screensaver-helper.patch bgo#640647 [email protected] -- Put back helper authentication, removed by upstream +Patch1: gnome-screensaver-helper.patch # PATCH-FEATURE-OPENSUSE gnome-screensaver-xvkbd-on-lock.patch [email protected] -- Run xvkbd when locking the screen Patch7: gnome-screensaver-xvkbd-on-lock.patch # PATCH-NEEDS-REBASE gnome-screensaver-2.19.1.1-securitytoken.patch @@ -44,28 +45,20 @@ BuildRequires: pam-devel BuildRequires: translation-update-upstream BuildRequires: update-desktop-files -%if 0%{?suse_version} <= 1120 -BuildRequires: xscreensaver -%else -BuildRequires: xscreensaver-data -BuildRequires: xscreensaver-data-extra -%endif BuildRequires: pkgconfig(dbus-glib-1) -BuildRequires: pkgconfig(gconf-2.0) -BuildRequires: pkgconfig(gnome-desktop-2.0) -BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(gnome-desktop-3.0) +BuildRequires: pkgconfig(gtk+-3.0) # Needed by gnome-screensaver-finger-print.patch BuildRequires: pkgconfig(libfprint) BuildRequires: pkgconfig(libgnomekbdui) BuildRequires: pkgconfig(libgnome-menu) -BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(x11) Requires: /sbin/unix2_chkpwd -Requires: xscreensaver-data Recommends: %{name}-lang Provides: %{name}-devel = %{version}-%{release} +Obsoletes: %{name}-extra < 3.0 BuildRoot: %{_tmppath}/%{name}-%{version}-build -%gconf_schemas_prereq +%glib2_gsettings_schema_requires %description gnome-screensaver is a screen saver and locker that aims to have @@ -76,28 +69,12 @@ * translation into other languages * user switching -%package extra -Group: System/GUI/GNOME -License: GPLv2+ -Summary: GNOME Screen Saver and Locker -- Additional screensavers -Requires: xscreensaver-data-extra -Supplements: packageand(%{name}:xscreensaver-data-extra) -BuildArch: noarch - -%description extra -gnome-screensaver is a screen saver and locker that aims to have -simple, sane, secure defaults and be well integrated in the desktop. -It is designed to support: - - * the ability to lock down configuration settings - * translation into other languages - * user switching - %lang_package %prep %setup -q translation-update-upstream %patch +%patch1 -p1 %patch7 -p1 # %patch8 -p1 %patch10 @@ -105,6 +82,7 @@ %build # gnome-common intltool are needed only here +# needed by patch1 autoreconf -f -i # FIXME: Maybe libexecdir the same as xscreensaver. %configure\ @@ -112,7 +90,6 @@ --with-pam-prefix=/etc\ --enable-authentication-scheme=helper\ --with-passwd-helper="/sbin/unix2_chkpwd"\ - --with-xscreensaverdir=/etc/xscreensaver\ --disable-docbook-docs %__make %{?jobs:-j%jobs} @@ -122,89 +99,31 @@ %{__rm} %{buildroot}%{_datadir}/locale/en@shaw/LC_MESSAGES/* %endif %find_lang %{name} %{?no_lang_C} -%find_gconf_schemas %suse_update_desktop_file gnome-screensaver -%suse_update_desktop_file gnome-screensaver-preferences GNOME X-SuSE-ControlCenter-LookAndFeel -%suse_update_desktop_file popsquares -%suse_update_desktop_file personal-slideshow -%suse_update_desktop_file footlogo-floaters -%suse_update_desktop_file cosmos-slideshow sed -e 's/common-auth/common-auth-smartcard/g' < $RPM_BUILD_ROOT/etc/pam.d/gnome-screensaver > $RPM_BUILD_ROOT/etc/pam.d/gnome-screensaver-smartcard -# migrate all xscreensaver savers, except blacklisted ones because they are ugly -mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications/screensavers -for file in `ls -1 %{_sysconfdir}/xscreensaver/*.xml | grep -v -f %{S:1} | xargs` ; do - file_root=`basename "$file" .xml` - sh data/migrate-xscreensaver-config.sh $file - # remove the Comment key: it's way too long for translators, - # and it doesn't appear in the UI - sed "s/\(^Comment=.*\)/#\1/g" $file_root.desktop > $RPM_BUILD_ROOT%{_datadir}/applications/screensavers/$file_root.desktop - %suse_update_desktop_file $file_root -done -rm -f screensavers.lst screensavers-extra.lst -for file in popsquares personal-slideshow footlogo-floaters cosmos-slideshow; do - echo %{_datadir}/applications/screensavers/$file.desktop >> screensavers.lst -done -%if 0%{?suse_version} <= 1120 -for file in `rpm -ql xscreensaver | grep %{_sysconfdir}/xscreensaver/.*xml`; do - file_root=`basename "$file" .xml` - echo %{_datadir}/applications/screensavers/$file_root.desktop >> screensavers.lst -done -%else -for file in `rpm -ql xscreensaver-data | grep %{_sysconfdir}/xscreensaver/.*xml`; do - file_root=`basename "$file" .xml` - echo %{_datadir}/applications/screensavers/$file_root.desktop >> screensavers.lst -done -for file in `rpm -ql xscreensaver-data-extra | grep %{_sysconfdir}/xscreensaver/.*xml`; do - file_root=`basename "$file" .xml` - echo %{_datadir}/applications/screensavers/$file_root.desktop >> screensavers-extra.lst -done -%endif %fdupes $RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT -%pre -f %{name}.schemas_pre - %post +%glib2_gsettings_schema_post %desktop_database_post -%posttrans -f %{name}.schemas_posttrans - -%preun -f %{name}.schemas_preun - %postun +%glib2_gsettings_schema_postun %desktop_database_postun -%files -f %{name}.schemas_list -f screensavers.lst +%files %defattr (-, root, root) -%doc AUTHORS COPYING ChangeLog NEWS README TODO +%doc AUTHORS COPYING NEWS README %config /etc/pam.d/gnome-screensaver %config /etc/pam.d/gnome-screensaver-smartcard %{_sysconfdir}/xdg/autostart/*.desktop -%{_sysconfdir}/xdg/menus/gnome-screensavers.menu %{_bindir}/* -%{_datadir}/applications/*.desktop -%{_datadir}/desktop-directories/gnome-screensaver.directory -%{_datadir}/backgrounds/* -%{_datadir}/dbus-1/services/org.gnome.ScreenSaver.service -%{_datadir}/gnome-background-properties/cosmos.xml -%{_datadir}/gnome-screensaver -%{_datadir}/pixmaps/gnome-logo-white.svg %{_mandir}/man1/gnome-screensaver*.1.gz %{_libdir}/pkgconfig/gnome-screensaver.pc %{_libexecdir}/%{name} -# FIXME: Directory ownership: -%dir %{_datadir}/applications/screensavers -# FIXME: Maybe bad directory ownership: -%dir %{_datadir}/backgrounds -%dir %{_datadir}/gnome-background-properties - -%if 0%{?suse_version} > 1120 - -%files extra -f screensavers-extra.lst -%defattr (-, root, root) -%endif %files lang -f %{name}.lang ++++++ gnome-screensaver-2.30.2.tar.bz2 -> gnome-screensaver-3.0.0.tar.bz2 ++++++ ++++ 104108 lines of diff (skipped) ++++++ gnome-screensaver-helper.patch ++++++ reverted: Index: gnome-screensaver-2.91.91/configure.ac =================================================================== --- gnome-screensaver-2.91.91.orig/configure.ac +++ gnome-screensaver-2.91.91/configure.ac @@ -555,6 +555,75 @@ if test "x$have_pam" = "xyes"; then fi +# Check for external password helper +# On SuSE, instead of having xscreensaver be a setuid program, they +# fork an external program that takes the password on stdin, and +# returns true if that password is a valid one. Then only that +# smaller program needs to be setuid. +# +# (Note that this external program is not a GUI: the GUI is still +# all in xscreensaver itself; the external program just does auth.) + +have_passwd_helper=no +with_passwd_helper_req=unspecified + +AC_ARG_WITH(passwd-helper, +[ --with-passwd-helper Include support for an external password + verification helper program.], + [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no]) +# no HANDLE_X_PATH_ARG for this one + +if test "$enable_locking" = no ; then + with_passwd_helper_req=no + with_passwd_helper=no +fi + +case "$with_passwd_helper" in + ""|no) : ;; + /*) + AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper", [Full pathname of password helper application]) + have_passwd_helper=yes;; + *) + echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2 + exit 1 +esac +AM_CONDITIONAL(HAVE_PASSWD_HELPER, test x$have_passwd_helper = xyes) +AC_SUBST(HAVE_PASSWD_HELPER) + +dnl --------------------------------------------------------------------------- +dnl Authentication scheme +dnl --------------------------------------------------------------------------- + +AC_ARG_ENABLE(authentication-scheme, + [ --enable-authentication-scheme=[auto/pam/helper] Choose a specific + authentication scheme [default=auto]],, + enable_authentication_scheme=auto) + +AUTH_SCHEME="auth-pam" + +if test x$enable_authentication_scheme = xpam -a x$have_pam = xno ; then + AC_MSG_ERROR(PAM support requested but not available) +fi +if test x$enable_authentication_scheme = xhelper -a x$have_passwd_helper = xno ; then + AC_MSG_ERROR(Password helper support requested but not available) +fi + +if test x$enable_authentication_scheme = xpam ; then + AUTH_SCHEME="pam" +elif test x$enable_authentication_scheme = xhelper ; then + AUTH_SCHEME="helper" +elif test x$enable_authentication_scheme = xauto ; then + if test x$have_pam != xno ; then + AUTH_SCHEME="pam" + elif test x$have_passwd_helper != xno ; then + AUTH_SCHEME="helper" + fi +else + AC_MSG_ERROR(Unknown authentication scheme) +fi + +AC_SUBST(AUTH_SCHEME) + dnl --------------------------------------------------------------------------- dnl libgnomekbd dnl --------------------------------------------------------------------------- @@ -731,6 +800,9 @@ echo " Screen locking enabled: ${enable_locking} Show keyboard indicator: ${with_kbd_layout_indicator} PAM prefix: ${PAM_PREFIX} + Have password helper: ${have_passwd_helper} + Authentication scheme: ${AUTH_SCHEME}" + -" +echo "" Index: gnome-screensaver-2.91.91/src/Makefile.am =================================================================== --- gnome-screensaver-2.91.91.orig/src/Makefile.am +++ gnome-screensaver-2.91.91/src/Makefile.am @@ -63,6 +63,11 @@ gnome_screensaver_command_LDADD = \ $(GNOME_SCREENSAVER_COMMAND_LIBS) \ $(NULL) +AUTH_SOURCES = \ + gs-auth.h \ + gs-auth-@[email protected] \ + $(NULL) + test_fade_SOURCES = \ test-fade.c \ gs-fade.c \ @@ -78,8 +83,7 @@ test_fade_LDADD = \ test_passwd_SOURCES = \ test-passwd.c \ - gs-auth.h \ - gs-auth-pam.c \ + $(AUTH_SOURCES) \ setuid.c \ setuid.h \ subprocs.c \ @@ -136,8 +140,13 @@ gnome_screensaver_dialog_SOURCES = \ setuid.h \ subprocs.c \ subprocs.h \ - gs-auth.h \ - gs-auth-pam.c \ + $(AUTH_SOURCES) \ + $(NULL) + +EXTRA_gnome_screensaver_dialog_SOURCES = \ + gs-auth-pam.c \ + gs-auth-helper.c \ + gs-auth-pwent.c \ $(NULL) gnome_screensaver_dialog_LDADD = \ Index: gnome-screensaver-2.91.91/src/gs-auth-helper.c =================================================================== --- /dev/null +++ gnome-screensaver-2.91.91/src/gs-auth-helper.c @@ -0,0 +1,198 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * written by Olaf Kirch <[email protected]> + * xscreensaver, Copyright (c) 1993-2004 Jamie Zawinski <[email protected]> + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +/* The idea here is to be able to run gnome-screensaver-dialog without any setuid bits. + * Password verification happens through an external program that you feed + * your password to on stdin. The external command is invoked with a user + * name argument. + * + * The external helper does whatever authentication is necessary. Currently, + * SuSE uses "unix2_chkpwd", which is a variation of "unix_chkpwd" from the + * PAM distribution. + * + * Normally, the password helper should just authenticate the calling user + * (i.e. based on the caller's real uid). This is in order to prevent + * brute-forcing passwords in a shadow environment. A less restrictive + * approach would be to allow verifying other passwords as well, but always + * with a 2 second delay or so. (Not sure what SuSE's "unix2_chkpwd" + * currently does.) + * -- Olaf Kirch <[email protected]>, 16-Dec-2003 + */ + +#include "config.h" + +#include <stdlib.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif + +#include <stdio.h> +#include <string.h> +#include <sys/types.h> +#include <pwd.h> +#include <errno.h> +#include <sys/wait.h> + +#include <glib.h> +#include <glib/gstdio.h> + +#include "gs-auth.h" +#include "subprocs.h" + +static gboolean verbose_enabled = FALSE; + +GQuark +gs_auth_error_quark (void) +{ + static GQuark quark = 0; + if (! quark) { + quark = g_quark_from_static_string ("gs_auth_error"); + } + + return quark; +} + +void +gs_auth_set_verbose (gboolean enabled) +{ + verbose_enabled = enabled; +} + +gboolean +gs_auth_get_verbose (void) +{ + return verbose_enabled; +} + +static gboolean +ext_run (const char *user, + const char *typed_passwd, + gboolean verbose) +{ + int pfd[2], status; + pid_t pid; + + if (pipe (pfd) < 0) { + return 0; + } + + if (verbose) { + g_message ("ext_run (%s, %s)", + PASSWD_HELPER_PROGRAM, user); + } + + block_sigchld (); + + if ((pid = fork ()) < 0) { + close (pfd [0]); + close (pfd [1]); + return FALSE; + } + + if (pid == 0) { + close (pfd [1]); + if (pfd [0] != 0) { + dup2 (pfd [0], 0); + } + + /* Helper is invoked as helper service-name [user] */ + execlp (PASSWD_HELPER_PROGRAM, PASSWD_HELPER_PROGRAM, "gnome-screensaver", user, NULL); + if (verbose) { + g_message ("%s: %s", PASSWD_HELPER_PROGRAM, g_strerror (errno)); + } + + exit (1); + } + + close (pfd [0]); + + /* Write out password to helper process */ + if (!typed_passwd) { + typed_passwd = ""; + } + write (pfd [1], typed_passwd, strlen (typed_passwd)); + close (pfd [1]); + + while (waitpid (pid, &status, 0) < 0) { + if (errno == EINTR) { + continue; + } + + if (verbose) { + g_message ("ext_run: waitpid failed: %s\n", + g_strerror (errno)); + } + + unblock_sigchld (); + return FALSE; + } + + unblock_sigchld (); + + if (! WIFEXITED (status) || WEXITSTATUS (status) != 0) { + return FALSE; + } + + return TRUE; +} + +gboolean +gs_auth_verify_user (const char *username, + const char *display, + GSAuthMessageFunc func, + gpointer data, + GError **error) +{ + gboolean res = FALSE; + char *password; + + password = NULL; + + /* ask for the password for user */ + if (func != NULL) { + func (GS_AUTH_MESSAGE_PROMPT_ECHO_OFF, + "Password: ", + &password, + data); + } + + if (password == NULL) { + return FALSE; + } + + res = ext_run (username, password, gs_auth_get_verbose ()); + + return res; +} + +gboolean +gs_auth_init (void) +{ + return TRUE; +} + +gboolean +gs_auth_priv_init (void) +{ + /* Make sure the passwd helper exists */ + if (g_access (PASSWD_HELPER_PROGRAM, X_OK) < 0) { + g_warning ("%s does not exist. " + "password authentication via " + "external helper will not work.", + PASSWD_HELPER_PROGRAM); + return FALSE; + } + + return TRUE; +} ++++++ gnome-screensaver-multihead-unlock.patch ++++++ --- /var/tmp/diff_new_pack.fiqrVQ/_old 2011-05-05 16:27:32.000000000 +0200 +++ /var/tmp/diff_new_pack.fiqrVQ/_new 2011-05-05 16:27:32.000000000 +0200 @@ -2,7 +2,16 @@ =================================================================== --- src/gs-window-x11.c.orig +++ src/gs-window-x11.c -@@ -1115,6 +1115,7 @@ static void +@@ -661,7 +661,7 @@ setup_xvkbd_window (GSWindow *gswindow, + { + gs_debug ("Setting up xvkbd_window from window %d", (int) window); + +- xvkbd_window = gdk_x11_window_foreign_new_for_display (gtk_widget_get_display (widget), window); ++ xvkbd_window = gdk_x11_window_foreign_new_for_display (gtk_widget_get_display (GTK_WIDGET(window)), window); + gdk_window_hide (xvkbd_window); + gdk_window_set_override_redirect (xvkbd_window, TRUE); + gdk_window_set_events (xvkbd_window, gdk_window_get_events (xvkbd_window) | GDK_STRUCTURE_MASK); +@@ -1094,6 +1094,7 @@ static void lock_plug_added (GtkWidget *widget, GSWindow *window) { ++++++ gnome-screensaver-xvkbd-on-lock.patch ++++++ --- /var/tmp/diff_new_pack.fiqrVQ/_old 2011-05-05 16:27:32.000000000 +0200 +++ /var/tmp/diff_new_pack.fiqrVQ/_new 2011-05-05 16:27:32.000000000 +0200 @@ -1,14 +1,8 @@ -commit a6180a624e2f325f32edecd284fa8c394a25ec45 -Author: Hans Petter Jansson <[email protected]> -Date: Tue Jan 11 22:31:04 2011 +0100 - - Patch 7: gnome-screensaver-xvkbd-on-lock.patch - -diff --git a/src/gnome-screensaver-dialog.c b/src/gnome-screensaver-dialog.c -index 9d72fcb..2db1e9b 100644 ---- a/src/gnome-screensaver-dialog.c -+++ b/src/gnome-screensaver-dialog.c -@@ -115,10 +115,19 @@ response_ok (void) +Index: gnome-screensaver-2.91.2/src/gnome-screensaver-dialog.c +=================================================================== +--- gnome-screensaver-2.91.2.orig/src/gnome-screensaver-dialog.c ++++ gnome-screensaver-2.91.2/src/gnome-screensaver-dialog.c +@@ -119,10 +119,19 @@ response_ok (void) fflush (stdout); } @@ -28,7 +22,7 @@ gtk_main_quit (); return FALSE; } -@@ -127,6 +136,12 @@ static gboolean +@@ -131,6 +140,12 @@ static gboolean quit_response_cancel (void) { response_cancel (); @@ -41,7 +35,7 @@ gtk_main_quit (); return FALSE; } -@@ -418,6 +433,14 @@ popup_dialog_idle (void) +@@ -422,6 +437,14 @@ popup_dialog_idle (void) return FALSE; } @@ -56,7 +50,7 @@ /* * Copyright (c) 1991-2004 Jamie Zawinski <[email protected]> -@@ -578,6 +601,8 @@ main (int argc, +@@ -582,6 +605,8 @@ main (int argc, exit (1); } @@ -65,7 +59,7 @@ if (show_version) { g_print ("%s %s\n", argv [0], VERSION); exit (1); -@@ -594,10 +619,27 @@ main (int argc, +@@ -598,10 +623,27 @@ main (int argc, gs_debug_init (verbose, FALSE); @@ -93,11 +87,11 @@ gs_profile_end (NULL); gs_debug_shutdown (); -diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c -index 4216ea4..3b6b1f7 100644 ---- a/src/gs-window-x11.c -+++ b/src/gs-window-x11.c -@@ -769,6 +769,49 @@ x11_window_is_ours (Window window) +Index: gnome-screensaver-2.91.2/src/gs-window-x11.c +=================================================================== +--- gnome-screensaver-2.91.2.orig/src/gs-window-x11.c ++++ gnome-screensaver-2.91.2/src/gs-window-x11.c +@@ -633,6 +633,49 @@ x11_window_is_ours (Window window) return ret; } @@ -129,25 +123,25 @@ +{ + gs_debug ("Setting up xvkbd_window from window %d", (int) window); + -+ xvkbd_window = gdk_window_foreign_new (window); ++ xvkbd_window = gdk_x11_window_foreign_new_for_display (gtk_widget_get_display (widget), window); + gdk_window_hide (xvkbd_window); + gdk_window_set_override_redirect (xvkbd_window, TRUE); + gdk_window_set_events (xvkbd_window, gdk_window_get_events (xvkbd_window) | GDK_STRUCTURE_MASK); + + int display_width, display_height, width, height; -+ GdkWindow *root = gdk_screen_get_root_window (gdk_drawable_get_screen (xvkbd_window)); ++ GdkWindow *root = gdk_screen_get_root_window (gdk_window_get_screen (xvkbd_window)); + -+ gdk_window_get_geometry (xvkbd_window, NULL, NULL, &width, &height, NULL); -+ gdk_window_get_geometry (root, NULL, NULL, &display_width, &display_height, NULL); ++ gdk_window_get_geometry (xvkbd_window, NULL, NULL, &width, &height); ++ gdk_window_get_geometry (root, NULL, NULL, &display_width, &display_height); + gdk_window_reparent (xvkbd_window, NULL, display_width - width, display_height - height); -+ gdk_window_set_transient_for (xvkbd_window, GTK_WIDGET (gswindow)->window); ++ gdk_window_set_transient_for (xvkbd_window, gtk_widget_get_window (GTK_WIDGET (gswindow))); + gdk_window_show (xvkbd_window); +} + #ifdef HAVE_SHAPE_EXT static void unshape_window (GSWindow *window) -@@ -791,6 +834,16 @@ gs_window_xevent (GSWindow *window, +@@ -655,6 +698,16 @@ gs_window_xevent (GSWindow *window, /* MapNotify is used to tell us when new windows are mapped. ConfigureNofify is used to tell us when windows are raised. */ switch (ev->xany.type) { @@ -164,7 +158,7 @@ case MapNotify: { XMapEvent *xme = &ev->xmap; -@@ -808,7 +861,7 @@ gs_window_xevent (GSWindow *window, +@@ -672,7 +725,7 @@ gs_window_xevent (GSWindow *window, XConfigureEvent *xce = &ev->xconfigure; if (! x11_window_is_ours (xce->window)) { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
