rpms/firefox/devel firefox-1.5-embedwindow-visibility.patch, NONE, 1.1 firefox-1.5-gtk-key-theme-crash.patch, NONE, 1.1 firefox-1.5-theme-change.patch, NONE, 1.1 firefox.spec, 1.155, 1.156 firefox-1.5-pango-about.patch, 1.2, NONE firefox-1.5-pango-ua.patch, 1.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Wed Sep 27 06:36:03 UTC 2006
- Previous message (by thread): rpms/kernel/FC-5 linux-2.6-bcm43xx-periodic-work.patch, NONE, 1.1 kernel-2.6.spec, 1.2189, 1.2190 linux-2.6-lockdep-fixes.patch, 1.1, 1.2
- Next message (by thread): rpms/openoffice.org/devel openoffice.org-2.0.4.ooo69236.slideshow.esccrash.patch, NONE, 1.1 openoffice.org.spec, 1.881, 1.882
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: caillon
Update of /cvs/dist/rpms/firefox/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv14956
Modified Files:
firefox.spec
Added Files:
firefox-1.5-embedwindow-visibility.patch
firefox-1.5-gtk-key-theme-crash.patch
firefox-1.5-theme-change.patch
Removed Files:
firefox-1.5-pango-about.patch firefox-1.5-pango-ua.patch
Log Message:
* Tue Sep 26 2006 Christopher Aillon <caillon at redhat.com> 1.5.0.7-5
- Fix crash when changing gtk key theme
- Fix gtkmozembed window visibility
- Prevent UI freezes while changing GNOME theme
- Remove verbiage about pango; no longer required by upstream.
firefox-1.5-embedwindow-visibility.patch:
EmbedWindow.cpp | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletion(-)
--- NEW FILE firefox-1.5-embedwindow-visibility.patch ---
Index: embedding/browser/gtk/src/EmbedWindow.cpp
===================================================================
RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/EmbedWindow.cpp,v
retrieving revision 1.31
diff -d -u -p -r1.31 EmbedWindow.cpp
--- embedding/browser/gtk/src/EmbedWindow.cpp 17 Jan 2005 17:19:39 -0000 1.31
+++ embedding/browser/gtk/src/EmbedWindow.cpp 27 Sep 2006 00:41:38 -0000
@@ -359,7 +359,14 @@ EmbedWindow::GetSiteWindow(void **aSiteW
NS_IMETHODIMP
EmbedWindow::GetVisibility(PRBool *aVisibility)
{
- *aVisibility = mVisibility;
+ // XXX See bug 312998
+ // Work around the problem that sometimes the window
+ // is already visible even though mVisibility isn't true
+ // yet.
+ *aVisibility = mVisibility ||
+ (!mOwner->mIsChrome &&
+ mOwner->mOwningWidget &&
+ GTK_WIDGET_MAPPED(mOwner->mOwningWidget));
return NS_OK;
}
firefox-1.5-gtk-key-theme-crash.patch:
nsWindow.cpp | 3 ---
1 files changed, 3 deletions(-)
--- NEW FILE firefox-1.5-gtk-key-theme-crash.patch ---
Index: widget/src/gtk2/nsWindow.cpp
===================================================================
RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWindow.cpp,v
retrieving revision 1.185
diff -u -8 -p -r1.185 nsWindow.cpp
--- widget/src/gtk2/nsWindow.cpp 20 Sep 2006 19:16:19 -0000 1.185
+++ widget/src/gtk2/nsWindow.cpp 22 Sep 2006 05:07:04 -0000
@@ -2859,19 +2859,16 @@ nsWindow::NativeCreate(nsIWidget
g_signal_connect(G_OBJECT(mShell), "window_state_event",
G_CALLBACK(window_state_event_cb), NULL);
GtkSettings* default_settings = gtk_settings_get_default();
g_signal_connect_after(default_settings,
"notify::gtk-theme-name",
G_CALLBACK(theme_changed_cb), this);
g_signal_connect_after(default_settings,
- "notify::gtk-key-theme-name",
- G_CALLBACK(theme_changed_cb), this);
- g_signal_connect_after(default_settings,
"notify::gtk-font-name",
G_CALLBACK(theme_changed_cb), this);
}
if (mContainer) {
g_signal_connect_after(G_OBJECT(mContainer), "size_allocate",
G_CALLBACK(size_allocate_cb), NULL);
g_signal_connect(G_OBJECT(mContainer), "expose_event",
firefox-1.5-theme-change.patch:
nsPresContext.cpp | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++----
nsPresContext.h | 13 ++++
2 files changed, 144 insertions(+), 10 deletions(-)
--- NEW FILE firefox-1.5-theme-change.patch ---
Index: layout/base/nsPresContext.cpp
===================================================================
RCS file: /cvsroot/mozilla/layout/base/nsPresContext.cpp,v
retrieving revision 3.288.12.2.4.1
diff -d -u -p -r3.288.12.2.4.1 nsPresContext.cpp
--- layout/base/nsPresContext.cpp 21 Apr 2006 23:30:50 -0000 3.288.12.2.4.1
+++ layout/base/nsPresContext.cpp 26 Sep 2006 19:26:40 -0000
@@ -73,6 +73,9 @@
#include "nsIDOMDocument.h"
#include "nsAutoPtr.h"
#include "nsEventStateManager.h"
+#include "nsIEventQueue.h"
+#include "nsIEventQueueService.h"
+
#ifdef IBMBIDI
#include "nsBidiPresUtils.h"
#endif // IBMBIDI
@@ -267,6 +270,7 @@ nsPresContext::~nsPresContext()
NS_IF_RELEASE(mDeviceContext);
NS_IF_RELEASE(mLookAndFeel);
NS_IF_RELEASE(mLangGroup);
+ NS_IF_RELEASE(mEventQueueService);
}
NS_IMPL_ISUPPORTS2(nsPresContext, nsPresContext, nsIObserver)
@@ -285,6 +289,17 @@ static const char* const kGenericFont[]
".fantasy."
};
+// Set to true when LookAndFeelChanged needs to be called. This is used
+// because the look and feel is a service, so there's no need to notify it from
+// more than one prescontext.
+static PRBool sLookAndFeelChanged;
+
+// Set to true when ThemeChanged needs to be called on mTheme. This is used
+// because mTheme is a service, so there's no need to notify it from more than
+// one prescontext.
+static PRBool sThemeChanged;
+
+
void
nsPresContext::GetFontPreferences()
{
@@ -709,6 +724,9 @@ nsPresContext::Init(nsIDeviceContext* aD
this);
#endif
+ rv = CallGetService(NS_EVENTQUEUESERVICE_CONTRACTID, &mEventQueueService);
+ NS_ENSURE_SUCCESS(rv, rv);
+
// Initialize our state from the user preferences
GetUserPreferences();
@@ -1180,33 +1198,126 @@ nsPresContext::GetTheme()
void
nsPresContext::ThemeChanged()
{
+ if (!mPendingThemeChanged) {
+ sLookAndFeelChanged = PR_TRUE;
+ sThemeChanged = PR_TRUE;
+
+ nsCOMPtr<nsIEventQueue> eventQ;
+ mEventQueueService->
+ GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
+ getter_AddRefs(eventQ));
+ if (!eventQ) {
+ return;
+ }
+
+ PLEvent* evt = new PLEvent();
+ if (!evt) {
+ return;
+ }
+
+ PL_InitEvent(evt, this, nsPresContext::ThemeChangedInternal,
+ nsPresContext::DestroyThemeChangeEvt);
+
+ // After this point, event destruction will release |this|
+ NS_ADDREF_THIS();
+
+ nsresult rv = eventQ->PostEvent(evt);
+ if (NS_FAILED(rv)) {
+ PL_DestroyEvent(evt);
+ } else {
+ mPendingThemeChanged = PR_TRUE;
+ }
+ }
+}
+
+void* PR_CALLBACK
+nsPresContext::ThemeChangedInternal(PLEvent *aEvent)
+{
+ nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
+
+ pc->mPendingThemeChanged = PR_FALSE;
+
// Tell the theme that it changed, so it can flush any handles to stale theme
// data.
- if (mTheme)
- mTheme->ThemeChanged();
+ if (pc->mTheme && sThemeChanged) {
+ pc->mTheme->ThemeChanged();
+ sThemeChanged = PR_FALSE;
+ }
// Clear all cached nsILookAndFeel colors.
- if (mLookAndFeel)
- mLookAndFeel->LookAndFeelChanged();
+ if (pc->mLookAndFeel && sLookAndFeelChanged) {
+ pc->mLookAndFeel->LookAndFeelChanged();
+ sLookAndFeelChanged = PR_FALSE;
+ }
// We have to clear style data because the assumption of style rule
// immutability has been violated since any style rule that uses
// system colors or fonts (and probably -moz-appearance as well) has
// changed.
- nsPresContext::ClearStyleDataAndReflow();
+ pc->ClearStyleDataAndReflow();
+
+ return nsnull;
+}
+
+
+void PR_CALLBACK
+nsPresContext::DestroyThemeChangeEvt(PLEvent* aEvent)
+{
+ nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
+ NS_RELEASE(pc);
+ delete aEvent;
}
void
nsPresContext::SysColorChanged()
{
- if (mLookAndFeel) {
+ if (!mPendingSysColorChanged) {
+ sLookAndFeelChanged = PR_TRUE;
+
+ nsCOMPtr<nsIEventQueue> eventQ;
+ mEventQueueService->
+ GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE,
+ getter_AddRefs(eventQ));
+ if (!eventQ) {
+ return;
+ }
+
+ PLEvent* evt = new PLEvent();
+ if (!evt) {
+ return;
+ }
+
+ PL_InitEvent(evt, this, nsPresContext::SysColorChangedInternal,
+ nsPresContext::DestroySysColorChangeEvt);
+
+ // After this point, event destruction will release |this|
+ NS_ADDREF_THIS();
+
+ nsresult rv = eventQ->PostEvent(evt);
+ if (NS_FAILED(rv)) {
+ PL_DestroyEvent(evt);
+ } else {
+ mPendingSysColorChanged = PR_TRUE;
+ }
+ }
+}
+
+void* PR_CALLBACK
+nsPresContext::SysColorChangedInternal(PLEvent *aEvent)
+{
+ nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
+
+ pc->mPendingSysColorChanged = PR_FALSE;
+
+ if (pc->mLookAndFeel && sLookAndFeelChanged) {
// Don't use the cached values for the system colors
- mLookAndFeel->LookAndFeelChanged();
+ pc->mLookAndFeel->LookAndFeelChanged();
+ sLookAndFeelChanged = PR_FALSE;
}
-
+
// Reset default background and foreground colors for the document since
// they may be using system colors
- GetDocumentColorPreferences();
+ pc->GetDocumentColorPreferences();
// Clear out all of the style data since it may contain RGB values
// which originated from system colors.
@@ -1222,7 +1333,17 @@ nsPresContext::SysColorChanged()
// data without reflowing/updating views will lead to incorrect change hints
// later, because when generating change hints, any style structs which have
// been cleared and not reread are assumed to not be used at all.
- ClearStyleDataAndReflow();
+ pc->ClearStyleDataAndReflow();
+
+ return nsnull;
+}
+
+void PR_CALLBACK
+nsPresContext::DestroySysColorChangeEvt(PLEvent* aEvent)
+{
+ nsPresContext* pc = NS_STATIC_CAST(nsPresContext*, aEvent->owner);
+ NS_RELEASE(pc);
+ delete aEvent;
}
void
Index: layout/base/nsPresContext.h
===================================================================
RCS file: /cvsroot/mozilla/layout/base/nsPresContext.h,v
retrieving revision 3.150.4.2
diff -d -u -p -r3.150.4.2 nsPresContext.h
--- layout/base/nsPresContext.h 29 Aug 2005 16:15:39 -0000 3.150.4.2
+++ layout/base/nsPresContext.h 26 Sep 2006 19:26:40 -0000
@@ -56,6 +56,7 @@
#include "nsCRT.h"
#include "nsIPrintSettings.h"
#include "nsPropertyTable.h"
+#include "plevent.h"
#ifdef IBMBIDI
class nsBidiPresUtils;
#endif // IBMBIDI
@@ -76,6 +77,7 @@ class nsIAtom;
class nsIEventStateManager;
class nsIURI;
class nsILookAndFeel;
+class nsIEventQueueService;
class nsICSSPseudoComparator;
class nsIAtom;
struct nsStyleStruct;
@@ -627,6 +629,14 @@ public:
const nscoord* GetBorderWidthTable() { return mBorderWidthTable; }
protected:
+ static NS_HIDDEN_(void*) PR_CALLBACK ThemeChangedInternal(PLEvent* aEvent);
+ static NS_HIDDEN_(void*) PR_CALLBACK SysColorChangedInternal(PLEvent* aEvent);
+ static NS_HIDDEN_(void) PR_CALLBACK DestroyThemeChangeEvt(PLEvent* aEvent);
+ static NS_HIDDEN_(void) PR_CALLBACK DestroySysColorChangeEvt(PLEvent* aEvent);
+
+ friend void* PR_CALLBACK ThemeChangedInternal(PLEvent* aEvent);
+ friend void* PR_CALLBACK SysColorChangedInternal(PLEvent* aEvent);
+
NS_HIDDEN_(void) SetImgAnimations(nsIContent *aParent, PRUint16 aMode);
NS_HIDDEN_(void) GetDocumentColorPreferences();
@@ -654,6 +664,7 @@ protected:
// from gfx back to layout.
nsIEventStateManager* mEventManager; // [STRONG]
nsILookAndFeel* mLookAndFeel; // [STRONG]
+ nsIEventQueueService *mEventQueueService; // [STRONG]
nsIAtom* mMedium; // initialized by subclass ctors;
// weak pointer to static atom
@@ -724,6 +735,8 @@ protected:
unsigned mCanPaginatedScroll : 1;
unsigned mDoScaledTwips : 1;
unsigned mEnableJapaneseTransform : 1;
+ unsigned mPendingSysColorChanged : 1;
+ unsigned mPendingThemeChanged : 1;
#ifdef IBMBIDI
unsigned mIsVisual : 1;
unsigned mIsBidiSystem : 1;
Index: firefox.spec
===================================================================
RCS file: /cvs/dist/rpms/firefox/devel/firefox.spec,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -r1.155 -r1.156
--- firefox.spec 20 Sep 2006 05:22:51 -0000 1.155
+++ firefox.spec 27 Sep 2006 06:35:56 -0000 1.156
@@ -11,7 +11,7 @@
Summary: Mozilla Firefox Web browser.
Name: firefox
Version: 1.5.0.7
-Release: 4%{?dist}
+Release: 5%{?dist}
URL: http://www.mozilla.org/projects/firefox/
License: MPL/LGPL
Group: Applications/Internet
@@ -56,9 +56,20 @@
Patch82: firefox-1.5-pango-mathml.patch
Patch83: firefox-1.5-pango-cursor-position.patch
-# patches from upstream (Patch100+)
-Patch101: firefox-1.5-pango-ua.patch
-Patch102: firefox-1.5-pango-about.patch
+# Other
+Patch100: firefox-1.5-gtk-key-theme-crash.patch
+Patch101: firefox-1.5-embedwindow-visibility.patch
+Patch102: firefox-1.5-theme-change.patch
+
+%if %{official_branding}
+# Required by Mozilla Corporation
+
+
+%else
+# Not yet approved by Mozillla Corporation
+
+
+%endif
# ---------------------------------------------------
@@ -134,8 +145,21 @@
%patch82 -p1
%patch83 -p1
-%patch101 -p0 -b .pango-ua
-%patch102 -p0 -b .pango-about
+%patch100 -p0 -b .gtk-key-theme-crash
+%patch101 -p0 -b .embedwindow-visibility
+%patch102 -p0 -b .theme-change
+
+# For branding specific patches.
+
+%if %{official_branding}
+# Required by Mozilla Corporation
+
+
+%else
+# Not yet approved by Mozilla Corporation
+
+
+%endif
%{__rm} -f .mozconfig
%{__cp} %{SOURCE10} .mozconfig
@@ -280,7 +304,7 @@
%endif
%{__mkdir_p} $RPM_BUILD_ROOT/etc/gre.d/
-cat > $RPM_BUILD_ROOT/etc/gre.d/%{gre_conf_file} << EOF
+%{__cat} > $RPM_BUILD_ROOT/etc/gre.d/%{gre_conf_file} << EOF
[%{version}]
GRE_PATH=%{mozappdir}
EOF
@@ -371,6 +395,12 @@
#---------------------------------------------------------------------
%changelog
+* Tue Sep 26 2006 Christopher Aillon <caillon at redhat.com> 1.5.0.7-5
+- Fix crash when changing gtk key theme
+- Fix gtkmozembed window visibility
+- Prevent UI freezes while changing GNOME theme
+- Remove verbiage about pango; no longer required by upstream.
+
* Tue Sep 19 2006 Christopher Aillon <caillon at redhat/com> 1.5.0.7-4
- Arrrr! Add Obsoletes: mozilla to avoid GRE conflicts, me hearties!
--- firefox-1.5-pango-about.patch DELETED ---
--- firefox-1.5-pango-ua.patch DELETED ---
- Previous message (by thread): rpms/kernel/FC-5 linux-2.6-bcm43xx-periodic-work.patch, NONE, 1.1 kernel-2.6.spec, 1.2189, 1.2190 linux-2.6-lockdep-fixes.patch, 1.1, 1.2
- Next message (by thread): rpms/openoffice.org/devel openoffice.org-2.0.4.ooo69236.slideshow.esccrash.patch, NONE, 1.1 openoffice.org.spec, 1.881, 1.882
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list