rpms/pinentry/F-13 0003-pinentry-gtk-x11-race.patch, NONE, 1.1 0004-Fix-qt4-pinentry-window-created-in-the-background.patch, NONE, 1.1 pinentry.spec, 1.31, 1.32

Stanislav Ochotnicky sochotni at fedoraproject.org
Fri May 7 14:02:06 UTC 2010


Author: sochotni

Update of /cvs/pkgs/rpms/pinentry/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv12130/F-13

Modified Files:
	pinentry.spec 
Added Files:
	0003-pinentry-gtk-x11-race.patch 
	0004-Fix-qt4-pinentry-window-created-in-the-background.patch 
Log Message:
pinentry fix #589532 and #589998



0003-pinentry-gtk-x11-race.patch:
 pinentry-gtk-2.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- NEW FILE 0003-pinentry-gtk-x11-race.patch ---
diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c
index 2bf920b..658161c 100644
--- a/gtk+-2/pinentry-gtk-2.c
+++ b/gtk+-2/pinentry-gtk-2.c
@@ -305,9 +309,11 @@ create_window (int confirm_mode)
       if (pinentry->grab)
 	g_signal_connect (G_OBJECT (win),
 			  "realize", G_CALLBACK (make_transient), NULL);
+      //we need to grab the keyboard when its visible! not when its mapped (there is a difference)
+      g_object_set(G_OBJECT(win), "events", GDK_VISIBILITY_NOTIFY_MASK | GDK_STRUCTURE_MASK, NULL);
 
       g_signal_connect (G_OBJECT (win),
-			pinentry->grab ? "map-event" : "focus-in-event",
+			pinentry->grab ? "visibility-notify-event" : "focus-in-event",
 			G_CALLBACK (grab_keyboard), NULL);
       g_signal_connect (G_OBJECT (win),
 			pinentry->grab ? "unmap-event" : "focus-out-event",

0004-Fix-qt4-pinentry-window-created-in-the-background.patch:
 pinentrydialog.cpp |    2 --
 1 file changed, 2 deletions(-)

--- NEW FILE 0004-Fix-qt4-pinentry-window-created-in-the-background.patch ---
>From 0cc3dd71213687ccb5ec0a1866864558bf03260b Mon Sep 17 00:00:00 2001
From: Stanislav Ochotnicky <sochotnicky at redhat.com>
Date: Fri, 7 May 2010 14:45:44 +0200
Subject: [PATCH] Fix qt4 pinentry window created in the background

This is probably just a workaround. Proper fix is being investigated.
---
 qt4/pinentrydialog.cpp |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/qt4/pinentrydialog.cpp b/qt4/pinentrydialog.cpp
index 8644136..6064ab9 100644
--- a/qt4/pinentrydialog.cpp
+++ b/qt4/pinentrydialog.cpp
@@ -63,7 +63,6 @@ void raiseWindow( QWidget* w )
     SetForegroundWindowEx( w->winId() );
 #endif
     w->raise();
-    w->activateWindow();
 }
 
 QPixmap icon( QStyle::StandardPixmap which )
-- 
1.6.6.1



Index: pinentry.spec
===================================================================
RCS file: /cvs/pkgs/rpms/pinentry/F-13/pinentry.spec,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -p -r1.31 -r1.32
--- pinentry.spec	30 Apr 2010 12:20:59 -0000	1.31
+++ pinentry.spec	7 May 2010 14:02:06 -0000	1.32
@@ -17,7 +17,7 @@
 
 Name:    pinentry
 Version: 0.8.0
-Release: 2%{?dist}
+Release: 3%{?dist}
 Summary: Collection of simple PIN or passphrase entry dialogs
 
 Group:   Applications/System
@@ -33,6 +33,10 @@ Source10: pinentry-wrapper
 ## Backported patches from SVN
 Patch50: 0001-Fix-pinentry-gtk-2-SIGSEGV-when-unfocusing-with-g-ar.patch
 Patch51: 0002-Fix-sigabrt-on-fail-grab-r229.patch
+Patch52: 0003-pinentry-gtk-x11-race.patch
+
+## Patches not yet in SVN
+Patch53: 0004-Fix-qt4-pinentry-window-created-in-the-background.patch
 
 BuildRequires: gtk2-devel
 BuildRequires: libcap-devel
@@ -100,6 +104,8 @@ Support for Qt4 is new, and a bit experi
 
 %patch50 -p1 -b .rhbug_520236
 %patch51 -p0 -b .rhbug_585422
+%patch52 -p1 -b .rhbug_589998
+%patch53 -p1 -b .rhbug_589532
 
 # hack around auto* madness, lack of proper support for moc
 %if %{?_enable_pinentry_qt4:1}
@@ -190,6 +196,10 @@ fi
 
 
 %changelog
+* Fri May  7 2010 Stanislav Ochotnicky <sochotnicky at redhat.com> - 0.8.0-3
+- Fix X11 even race with gtk (#589998)
+- Fix qt4 problems with creating window in the background (#589532)
+
 * Thu Apr 29 2010 Rex Dieter <rdieter at fedoraproject.org> - 0.8.0-2
 - -qt: build as qt4 version, and drop qt3 support (f13+ only)
 



More information about the scm-commits mailing list