patch to fix the color issue in 24bit mode (cirrus driver)
add some more NULL checks to the glib_eventloop_nullcheck patch (#622164) fix QTreeView crash triggered by KPackageKit (patch by David Faure) bn-IN Incorrect rendering (#562049) bn_IN init feature is not applied properly (#562058) indic invalid syllable's are not recognized properly (631732) oriya script open type features are not applied properly (#636399)
This commit is contained in:
parent
9078468f2d
commit
2a6877762b
|
@ -0,0 +1,15 @@
|
|||
diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-02 07:33:13.000000000 +0530
|
||||
+++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-04 13:27:33.000000000 +0530
|
||||
@@ -1741,6 +1741,11 @@ static int indic_nextSyllableBoundary(HB
|
||||
if (state == Halant && uc[pos] == 0x200d /* ZWJ */)
|
||||
break;
|
||||
// the control character should be the last char in the item
|
||||
+ if (state == Consonant && script == HB_Script_Bengali && uc[pos-1] == 0x09B0 && uc[pos] == 0x200d /* ZWJ */)
|
||||
+ break;
|
||||
+ if (state == Consonant && script == HB_Script_Kannada && uc[pos-1] == 0x0CB0 && uc[pos] == 0x200d /* ZWJ */)
|
||||
+ break;
|
||||
+ // Bengali and Kannada has a special exception for rendering yaphala with ra (to avoid reph) see http://www.unicode.org/faq/indic.html#15
|
||||
++pos;
|
||||
goto finish;
|
||||
case Consonant:
|
|
@ -0,0 +1,12 @@
|
|||
diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
|
||||
--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-30 07:23:12.000000000 +0530
|
||||
+++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-22 14:33:33.000000000 +0530
|
||||
@@ -37,7 +37,7 @@ static HB_Bool isLetter(HB_UChar16 ucs)
|
||||
FLAG(HB_Letter_Titlecase) |
|
||||
FLAG(HB_Letter_Modifier) |
|
||||
FLAG(HB_Letter_Other);
|
||||
- return FLAG(HB_GetUnicodeCharCategory(ucs)) & test;
|
||||
+ return (FLAG(HB_GetUnicodeCharCategory(ucs)) & test) != 0;
|
||||
}
|
||||
|
||||
static HB_Bool isMark(HB_UChar16 ucs)
|
|
@ -0,0 +1,14 @@
|
|||
diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-02 07:33:13.000000000 +0530
|
||||
+++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-10 18:37:23.000000000 +0530
|
||||
@@ -1779,10 +1779,6 @@ static int indic_nextSyllableBoundary(HB
|
||||
case Matra:
|
||||
if (state == Consonant || state == Nukta)
|
||||
break;
|
||||
- if (state == Matra) {
|
||||
- // ### needs proper testing for correct two/three part matras
|
||||
- break;
|
||||
- }
|
||||
// ### not sure if this is correct. If it is, does it apply only to Bengali or should
|
||||
// it work for all Indic languages?
|
||||
// the combination Independent_A + Vowel Sign AA is allowed.
|
|
@ -0,0 +1,30 @@
|
|||
diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
|
||||
--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-30 07:23:12.000000000 +0530
|
||||
+++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-20 11:40:58.000000000 +0530
|
||||
@@ -660,18 +660,18 @@ static const unsigned char indicPosition
|
||||
None, None, None, None,
|
||||
|
||||
None, None, None, None,
|
||||
- None, None, None, None,
|
||||
- None, None, None, None,
|
||||
- None, None, None, None,
|
||||
+ None, Below, Below, Below,
|
||||
+ Below, Below, Below, Below,
|
||||
+ Below, Below, None, Below,
|
||||
|
||||
- None, None, None, None,
|
||||
- Below, None, None, None,
|
||||
- Below, None, None, None,
|
||||
+ Below, Below, Below, Below,
|
||||
+ Below, Below, Below, Below,
|
||||
+ Below, None, Below, Below,
|
||||
Below, Below, Below, Post,
|
||||
|
||||
Below, None, Below, Below,
|
||||
- None, None, None, None,
|
||||
- None, None, None, None,
|
||||
+ None, Below, Below, Below,
|
||||
+ Below, Below, None, None,
|
||||
None, None, Post, Above,
|
||||
|
||||
Post, Below, Below, Below,
|
|
@ -1,7 +1,7 @@
|
|||
diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck 2010-06-01 21:03:15.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-06-29 14:58:12.299073784 -0500
|
||||
@@ -76,7 +76,7 @@ static gboolean x11EventSourcePrepare(GS
|
||||
diff -ur qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-06-02 04:03:15.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-12-08 22:22:38.000000000 +0100
|
||||
@@ -76,7 +76,7 @@
|
||||
GX11EventSource *source = reinterpret_cast<GX11EventSource *>(s);
|
||||
return (XEventsQueued(X11->display, QueuedAfterFlush)
|
||||
|| (!(source->flags & QEventLoop::ExcludeUserInputEvents)
|
||||
|
@ -10,7 +10,7 @@ diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_g
|
|||
}
|
||||
|
||||
static gboolean x11EventSourceCheck(GSource *s)
|
||||
@@ -84,7 +84,7 @@ static gboolean x11EventSourceCheck(GSou
|
||||
@@ -84,7 +84,7 @@
|
||||
GX11EventSource *source = reinterpret_cast<GX11EventSource *>(s);
|
||||
return (XEventsQueued(X11->display, QueuedAfterFlush)
|
||||
|| (!(source->flags & QEventLoop::ExcludeUserInputEvents)
|
||||
|
@ -19,3 +19,51 @@ diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_g
|
|||
}
|
||||
|
||||
static gboolean x11EventSourceDispatch(GSource *s, GSourceFunc callback, gpointer user_data)
|
||||
@@ -95,7 +95,7 @@
|
||||
do {
|
||||
XEvent event;
|
||||
if (!(source->flags & QEventLoop::ExcludeUserInputEvents)
|
||||
- && !source->d->queuedUserInputEvents.isEmpty()) {
|
||||
+ && source->d && !source->d->queuedUserInputEvents.isEmpty()) {
|
||||
// process a pending user input event
|
||||
event = source->d->queuedUserInputEvents.takeFirst();
|
||||
} else if (XEventsQueued(X11->display, QueuedAlready)) {
|
||||
@@ -112,7 +112,8 @@
|
||||
case XKeyRelease:
|
||||
case EnterNotify:
|
||||
case LeaveNotify:
|
||||
- source->d->queuedUserInputEvents.append(event);
|
||||
+ if (source->d)
|
||||
+ source->d->queuedUserInputEvents.append(event);
|
||||
continue;
|
||||
|
||||
case ClientMessage:
|
||||
@@ -127,7 +128,8 @@
|
||||
break;
|
||||
}
|
||||
}
|
||||
- source->d->queuedUserInputEvents.append(event);
|
||||
+ if (source->d)
|
||||
+ source->d->queuedUserInputEvents.append(event);
|
||||
continue;
|
||||
|
||||
default:
|
||||
@@ -140,7 +142,7 @@
|
||||
}
|
||||
|
||||
// send through event filter
|
||||
- if (source->q->filterEvent(&event))
|
||||
+ if (source->q && source->q->filterEvent(&event))
|
||||
continue;
|
||||
|
||||
if (qApp->x11ProcessEvent(&event) == 1)
|
||||
@@ -152,7 +154,8 @@
|
||||
|
||||
out:
|
||||
|
||||
- source->d->runTimersOnceWithNormalPriority();
|
||||
+ if (source->d)
|
||||
+ source->d->runTimersOnceWithNormalPriority();
|
||||
|
||||
if (callback)
|
||||
callback(user_data);
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
diff -up qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp
|
||||
--- qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me 2010-10-15 22:04:09.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp 2010-10-15 22:04:18.000000000 +0200
|
||||
@@ -900,9 +900,9 @@ void QX11PixmapData::fromImage(const QIm
|
||||
case BPP24_888: // 24 bit MSB
|
||||
CYCLE(
|
||||
for (int x=0; x<w; x++) {
|
||||
- *dst++ = qRed (*p);
|
||||
+ *dst++ = qBlue (*p);
|
||||
*dst++ = qGreen(*p);
|
||||
- *dst++ = qBlue (*p++);
|
||||
+ *dst++ = qRed (*p++);
|
||||
}
|
||||
)
|
||||
break;
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
|
||||
index 406e1f6..4691b17 100644
|
||||
--- a/src/gui/itemviews/qtreeview.cpp
|
||||
+++ b/src/gui/itemviews/qtreeview.cpp
|
||||
@@ -3223,7 +3223,7 @@ int QTreeViewPrivate::itemHeight(int item) const
|
||||
return defaultItemHeight;
|
||||
if (viewItems.isEmpty())
|
||||
return 0;
|
||||
- const QModelIndex &index = viewItems.at(item).index;
|
||||
+ QModelIndex index = viewItems.at(item).index;
|
||||
int height = viewItems.at(item).height;
|
||||
if (height <= 0 && index.isValid()) {
|
||||
height = q_func()->indexRowSizeHint(index);
|
26
qt.spec
26
qt.spec
|
@ -13,7 +13,7 @@ Summary: Qt toolkit
|
|||
Name: qt
|
||||
Epoch: 1
|
||||
Version: 4.6.3
|
||||
Release: 9%{?dist}
|
||||
Release: 10%{?dist}
|
||||
|
||||
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||
|
@ -68,6 +68,15 @@ Patch56: qt-everywhere-opensource-src-4.6.2-webkit-s390x.patch
|
|||
Patch57: qt-everywhere-opensource-src-4.6.2-webkit-sparc64.patch
|
||||
# qtwebkit to search nspluginwrapper paths too
|
||||
Patch58: qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch
|
||||
# indic incorrect rendering
|
||||
Patch59: qt-4.6.3-bn-rendering-bz562049.patch
|
||||
Patch60: qt-4.6.3-bn-rendering-bz562058.patch
|
||||
Patch61: qt-4.6.3-indic-rendering-bz631732.patch
|
||||
Patch62: qt-4.6.3-indic-rendering-bz636399.patch
|
||||
# fix 24bit color issue
|
||||
Patch63: qt-everywhere-opensource-src-4.7.0-bpp24.patch
|
||||
# fix QTreeView crash triggered by KPackageKit (patch by David Faure)
|
||||
Patch65: qt-everywhere-opensource-src-4.7.1-qtreeview-kpackagekit-crash.patch
|
||||
|
||||
# upstream or security patches
|
||||
# https://bugs.webkit.org/show_bug.cgi?id=40567
|
||||
|
@ -450,6 +459,12 @@ Qt libraries used for drawing widgets and OpenGL items.
|
|||
%patch56 -p1 -b .typecast_s390x
|
||||
%patch57 -p1 -b .typecast_sparc64
|
||||
%patch58 -p1 -b .qtwebkit_pluginpath
|
||||
%patch59 -p1 -b .bn-rendering-bz562049
|
||||
%patch60 -p1 -b .bn-rendering-bz562058
|
||||
%patch61 -p1 -b .indic-rendering-bz631732
|
||||
%patch62 -p1 -b .indic-rendering-bz636399
|
||||
%patch63 -p1 -b .bpp24
|
||||
%patch65 -p1 -b .qtreeview-kpackagekit-crash
|
||||
|
||||
# upstream patches
|
||||
%patch100 -p1 -b .qtwebkit_gtk_init
|
||||
|
@ -1088,6 +1103,15 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Wed Feb 23 2011 Rex Dieter <rdieter@fedoraproject.org> 4.6.3-10
|
||||
- patch to fix the color issue in 24bit mode (cirrus driver)
|
||||
- add some more NULL checks to the glib_eventloop_nullcheck patch (#622164)
|
||||
- fix QTreeView crash triggered by KPackageKit (patch by David Faure)
|
||||
- bn-IN Incorrect rendering (#562049)
|
||||
- bn_IN init feature is not applied properly (#562058)
|
||||
- indic invalid syllable's are not recognized properly (631732)
|
||||
- oriya script open type features are not applied properly (#636399)
|
||||
|
||||
* Thu Sep 30 2010 Rex Dieter <rdieter@fedoraproject.org> - 4.6.3-9
|
||||
- Wrong Cursor when widget become native on X11 (QTBUG-6185)
|
||||
|
||||
|
|
Loading…
Reference in New Issue