4.6.3
This commit is contained in:
parent
d69903646d
commit
c84063a22d
@ -1,22 +0,0 @@
|
|||||||
diff -up qt-everywhere-opensource-src-4.6.2/src/gui/graphicsview/qgraphicsitem.cpp.orig qt-everywhere-opensource-src-4.6.2/src/gui/graphicsview/qgraphicsitem.cpp
|
|
||||||
--- qt-everywhere-opensource-src-4.6.2/src/gui/graphicsview/qgraphicsitem.cpp.orig 2010-02-11 16:55:22.000000000 +0100
|
|
||||||
+++ qt-everywhere-opensource-src-4.6.2/src/gui/graphicsview/qgraphicsitem.cpp 2010-03-22 11:26:50.291692144 +0100
|
|
||||||
@@ -1125,6 +1125,9 @@ void QGraphicsItemPrivate::setParentItem
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Resolve depth.
|
|
||||||
+ invalidateDepthRecursively();
|
|
||||||
+
|
|
||||||
if ((parent = newParent)) {
|
|
||||||
if (parent->d_func()->scene && parent->d_func()->scene != scene) {
|
|
||||||
// Move this item to its new parent's scene
|
|
||||||
@@ -1175,8 +1178,6 @@ void QGraphicsItemPrivate::setParentItem
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- // Resolve depth.
|
|
||||||
- invalidateDepthRecursively();
|
|
||||||
dirtySceneTransform = 1;
|
|
||||||
|
|
||||||
// Restore the sub focus chain.
|
|
@ -1,43 +0,0 @@
|
|||||||
diff -up qt-everywhere-opensource-src-4.6.2/src/corelib/arch/qatomic_s390.h.than qt-everywhere-opensource-src-4.6.2/src/corelib/arch/qatomic_s390.h
|
|
||||||
--- qt-everywhere-opensource-src-4.6.2/src/corelib/arch/qatomic_s390.h.than 2010-03-29 15:44:24.000000000 +0200
|
|
||||||
+++ qt-everywhere-opensource-src-4.6.2/src/corelib/arch/qatomic_s390.h 2010-03-29 15:48:23.000000000 +0200
|
|
||||||
@@ -366,11 +366,9 @@ template <typename T>
|
|
||||||
Q_INLINE_TEMPLATE T* QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
|
|
||||||
{
|
|
||||||
#ifndef __s390x__
|
|
||||||
- return (T*)__CS_OLD_LOOP(reinterpret_cast<volatile long*>(_q_value), (int)newValue, "lr",
|
|
||||||
- "", "bcr 15,0\n");
|
|
||||||
+ return (T*)__CS_OLD_LOOP(&_q_value, (int)newValue, "lr", "", "");
|
|
||||||
#else
|
|
||||||
- return (T*)__CSG_OLD_LOOP(reinterpret_cast<volatile long*>(_q_value), (long)newValue, "lgr",
|
|
||||||
- "", "bcr 15,0\n");
|
|
||||||
+ return (T*)__CSG_OLD_LOOP(&_q_value, (long)newValue, "lgr", "", "");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -378,9 +376,9 @@ template <typename T>
|
|
||||||
Q_INLINE_TEMPLATE T* QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
|
|
||||||
{
|
|
||||||
#ifndef __s390x__
|
|
||||||
- return (T*)__CS_OLD_LOOP(reinterpret_cast<volatile long*>(_q_value), (int)newValue, "lr", "", "");
|
|
||||||
+ return (T*)__CS_OLD_LOOP(&_q_value, (int)newValue, "lr", "", "bcr 15,0 \n");
|
|
||||||
#else
|
|
||||||
- return (T*)__CSG_OLD_LOOP(reinterpret_cast<volatile long*>(_q_value), (long)newValue, "lgr", "", "");
|
|
||||||
+ return (T*)__CSG_OLD_LOOP(&_q_value, (long)newValue, "lgr", "", "bcr 15,0 \n");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -388,11 +386,9 @@ template <typename T>
|
|
||||||
Q_INLINE_TEMPLATE T* QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
|
|
||||||
{
|
|
||||||
#ifndef __s390x__
|
|
||||||
- return (T*)__CS_OLD_LOOP(reinterpret_cast<volatile long*>(_q_value), (int)newValue, "lr",
|
|
||||||
- "bcr 15,0 \n", "");
|
|
||||||
+ return (T*)__CS_OLD_LOOP(&_q_value, (int)newValue, "lr", "bcr 15,0 \n", "");
|
|
||||||
#else
|
|
||||||
- return (T*)__CSG_OLD_LOOP(reinterpret_cast<volatile long*>(_q_value), (long)newValue, "lgr",
|
|
||||||
- "bcr 15,0\n", "");
|
|
||||||
+ return (T*)__CSG_OLD_LOOP(&_q_value, (long)newValue, "lgr", "bcr 15,0\n", "");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
|||||||
--- a/src/gui/dialogs/qprintdialog_unix.cpp
|
|
||||||
+++ b/src/gui/dialogs/qprintdialog_unix.cpp
|
|
||||||
@@ -154,6 +154,9 @@
|
|
||||||
bool checkFields();
|
|
||||||
void setupPrinter();
|
|
||||||
void setOptionsPane(QPrintDialogPrivate *pane);
|
|
||||||
+#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
|
|
||||||
+ void setCupsProperties();
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
// slots
|
|
||||||
void _q_printerChanged(int index);
|
|
||||||
@@ -942,7 +945,7 @@
|
|
||||||
|
|
||||||
void QUnixPrintWidgetPrivate::_q_btnPropertiesClicked()
|
|
||||||
{
|
|
||||||
- if (propertiesDialog == 0) {
|
|
||||||
+ if (!propertiesDialog) {
|
|
||||||
propertiesDialog = new QPrintPropertiesDialog(q);
|
|
||||||
propertiesDialog->setResult(QDialog::Rejected);
|
|
||||||
}
|
|
||||||
@@ -962,6 +965,35 @@
|
|
||||||
propertiesDialog->exec();
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
|
|
||||||
+void QUnixPrintWidgetPrivate::setCupsProperties()
|
|
||||||
+{
|
|
||||||
+ if (cups && QCUPSSupport::isAvailable()) {
|
|
||||||
+ QPrintEngine *engine = printer->printEngine();
|
|
||||||
+ const ppd_option_t* pageSizes = cups->pageSizes();
|
|
||||||
+ QByteArray cupsPageSize;
|
|
||||||
+ for (int i = 0; i < pageSizes->num_choices; ++i) {
|
|
||||||
+ if (static_cast<int>(pageSizes->choices[i].marked) == 1)
|
|
||||||
+ cupsPageSize = pageSizes->choices[i].choice;
|
|
||||||
+ }
|
|
||||||
+ engine->setProperty(PPK_CupsStringPageSize, QString::fromLatin1(cupsPageSize));
|
|
||||||
+ engine->setProperty(PPK_CupsOptions, cups->options());
|
|
||||||
+
|
|
||||||
+ QRect pageRect = cups->pageRect(cupsPageSize);
|
|
||||||
+ engine->setProperty(PPK_CupsPageRect, pageRect);
|
|
||||||
+
|
|
||||||
+ QRect paperRect = cups->paperRect(cupsPageSize);
|
|
||||||
+ engine->setProperty(PPK_CupsPaperRect, paperRect);
|
|
||||||
+
|
|
||||||
+ for (int ps = 0; ps < QPrinter::NPaperSize; ++ps) {
|
|
||||||
+ QPdf::PaperSize size = QPdf::paperSize(QPrinter::PaperSize(ps));
|
|
||||||
+ if (size.width == paperRect.width() && size.height == paperRect.height())
|
|
||||||
+ printer->setPaperSize(static_cast<QPrinter::PaperSize>(ps));
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
void QUnixPrintWidgetPrivate::setupPrinter()
|
|
||||||
{
|
|
||||||
const int printerCount = widget.printers->count();
|
|
||||||
@@ -986,6 +1018,10 @@
|
|
||||||
|
|
||||||
if (propertiesDialog && propertiesDialog->result() == QDialog::Accepted)
|
|
||||||
propertiesDialog->setupPrinter();
|
|
||||||
+#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
|
|
||||||
+ if (!propertiesDialog)
|
|
||||||
+ setCupsProperties();
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
|||||||
diff -up qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp.cve-2010-0047-call-after-free qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp
|
|
||||||
--- qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp.cve-2010-0047-call-after-free 2010-02-11 16:55:19.000000000 +0100
|
|
||||||
+++ qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/loader/FrameLoader.cpp 2010-05-06 12:21:13.852469331 +0200
|
|
||||||
@@ -1260,9 +1260,11 @@ bool FrameLoader::requestObject(RenderPa
|
|
||||||
|
|
||||||
ASSERT(renderer->node()->hasTagName(objectTag) || renderer->node()->hasTagName(embedTag));
|
|
||||||
HTMLPlugInElement* element = static_cast<HTMLPlugInElement*>(renderer->node());
|
|
||||||
-
|
|
||||||
- // FIXME: OK to always make a new frame? When does the old frame get removed?
|
|
||||||
- return loadSubframe(element, completedURL, frameName, m_outgoingReferrer);
|
|
||||||
+
|
|
||||||
+ // If the plug-in element already contains a subframe, requestFrame will re-use it. Otherwise,
|
|
||||||
+ // it will create a new frame and set it as the RenderPart's widget, causing what was previously
|
|
||||||
+ // in the widget to be torn down.
|
|
||||||
+ return requestFrame(element, completedURL, frameName);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool FrameLoader::shouldUsePlugin(const KURL& url, const String& mimeType, bool hasFallback, bool& useFallback)
|
|
@ -1,85 +0,0 @@
|
|||||||
diff -up qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp.cve-2010-0054-image-element-pointer-name-getter qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp
|
|
||||||
--- qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp.cve-2010-0054-image-element-pointer-name-getter 2010-02-11 16:55:17.000000000 +0100
|
|
||||||
+++ qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLFormElement.cpp 2010-02-25 15:50:05.987741463 +0100
|
|
||||||
@@ -515,11 +515,13 @@ bool HTMLFormElement::isURLAttribute(Att
|
|
||||||
|
|
||||||
void HTMLFormElement::registerImgElement(HTMLImageElement* e)
|
|
||||||
{
|
|
||||||
+ ASSERT(imgElements.find(e) == notFound);
|
|
||||||
imgElements.append(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
void HTMLFormElement::removeImgElement(HTMLImageElement* e)
|
|
||||||
{
|
|
||||||
+ ASSERT(imgElements.find(e) == notFound);
|
|
||||||
removeFromVector(imgElements, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.cpp.cve-2010-0054-image-element-pointer-name-getter qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.cpp
|
|
||||||
--- qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.cpp.cve-2010-0054-image-element-pointer-name-getter 2010-02-11 16:55:17.000000000 +0100
|
|
||||||
+++ qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.cpp 2010-02-25 15:43:45.016742027 +0100
|
|
||||||
@@ -209,6 +209,40 @@ void HTMLImageElement::removedFromDocume
|
|
||||||
HTMLElement::removedFromDocument();
|
|
||||||
}
|
|
||||||
|
|
||||||
+void HTMLImageElement::insertedIntoTree(bool deep)
|
|
||||||
+{
|
|
||||||
+ if (m_form) {
|
|
||||||
+ // m_form was set by constructor. In debug builds, check that it's an ancestor indeed.
|
|
||||||
+#ifndef NDEBUG
|
|
||||||
+ for (Node* ancestor = parentNode(); /* no end condition - there must be a form ancestor */; ancestor = ancestor->parentNode()) {
|
|
||||||
+ ASSERT(ancestor);
|
|
||||||
+ if (ancestor->hasTagName(formTag)) {
|
|
||||||
+ ASSERT(m_form == static_cast<HTMLFormElement*>(ancestor));
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ } else {
|
|
||||||
+ for (Node* ancestor = parentNode(); ancestor; ancestor = ancestor->parentNode()) {
|
|
||||||
+ if (ancestor->hasTagName(formTag)) {
|
|
||||||
+ m_form = static_cast<HTMLFormElement*>(ancestor);
|
|
||||||
+ m_form->registerImgElement(this);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ HTMLElement::insertedIntoTree(deep);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void HTMLImageElement::removedFromTree(bool deep)
|
|
||||||
+{
|
|
||||||
+ if (m_form)
|
|
||||||
+ m_form->removeImgElement(this);
|
|
||||||
+ m_form = 0;
|
|
||||||
+ HTMLElement::removedFromTree(deep);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int HTMLImageElement::width(bool ignorePendingStylesheets) const
|
|
||||||
{
|
|
||||||
if (!renderer()) {
|
|
||||||
diff -up qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h.cve-2010-0054-image-element-pointer-name-getter qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h
|
|
||||||
--- qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h.cve-2010-0054-image-element-pointer-name-getter 2010-02-11 16:55:17.000000000 +0100
|
|
||||||
+++ qt-everywhere-opensource-src-4.6.2/src/3rdparty/webkit/WebCore/html/HTMLImageElement.h 2010-02-25 15:41:18.340929598 +0100
|
|
||||||
@@ -45,8 +45,6 @@ public:
|
|
||||||
|
|
||||||
virtual void attach();
|
|
||||||
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
|
|
||||||
- virtual void insertedIntoDocument();
|
|
||||||
- virtual void removedFromDocument();
|
|
||||||
|
|
||||||
virtual bool canStartSelection() const { return false; }
|
|
||||||
|
|
||||||
@@ -105,6 +103,11 @@ public:
|
|
||||||
virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
+ virtual void insertedIntoDocument();
|
|
||||||
+ virtual void removedFromDocument();
|
|
||||||
+ virtual void insertedIntoTree(bool deep);
|
|
||||||
+ virtual void removedFromTree(bool deep);
|
|
||||||
+
|
|
||||||
HTMLImageLoader m_imageLoader;
|
|
||||||
String usemap;
|
|
||||||
bool ismap;
|
|
@ -1,25 +0,0 @@
|
|||||||
diff -up qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/css/CSSParser.cpp.cve-2010-0046-css-format-mem-corruption qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/css/CSSParser.cpp
|
|
||||||
--- qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/css/CSSParser.cpp.cve-2010-0046-css-format-mem-corruption 2009-09-29 13:01:35.000000000 +0200
|
|
||||||
+++ qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/css/CSSParser.cpp 2010-02-04 15:00:24.778776273 +0100
|
|
||||||
@@ -3085,6 +3085,12 @@ bool CSSParser::parseFontWeight(bool imp
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static bool isValidFormatFunction(CSSParserValue* val)
|
|
||||||
+{
|
|
||||||
+ CSSParserValueList* args = val->function->args;
|
|
||||||
+ return equalIgnoringCase(val->function->name, "format(") && (args->current()->unit == CSSPrimitiveValue::CSS_STRING || args->current()->unit == CSSPrimitiveValue::CSS_IDENT);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
bool CSSParser::parseFontFaceSrc()
|
|
||||||
{
|
|
||||||
RefPtr<CSSValueList> values(CSSValueList::createCommaSeparated());
|
|
||||||
@@ -3111,7 +3117,7 @@ bool CSSParser::parseFontFaceSrc()
|
|
||||||
CSSParserValue* a = args->current();
|
|
||||||
uriValue.clear();
|
|
||||||
parsedValue = CSSFontFaceSrcValue::createLocal(a->string);
|
|
||||||
- } else if (equalIgnoringCase(val->function->name, "format(") && allowFormat && uriValue) {
|
|
||||||
+ } else if (allowFormat && uriValue && isValidFormatFunction(val)) {
|
|
||||||
expectComma = true;
|
|
||||||
allowFormat = false;
|
|
||||||
uriValue->setFormat(args->current()->string);
|
|
@ -1,29 +0,0 @@
|
|||||||
diff -up qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp.cve-2010-0049-freed-line-boxes-ltr-rtl qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp
|
|
||||||
--- qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp.cve-2010-0049-freed-line-boxes-ltr-rtl 2009-09-29 13:01:36.000000000 +0200
|
|
||||||
+++ qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp 2010-02-04 15:43:15.707711730 +0100
|
|
||||||
@@ -1025,8 +1025,15 @@ void RenderText::position(InlineBox* box
|
|
||||||
if (!s->m_len) {
|
|
||||||
// We want the box to be destroyed.
|
|
||||||
s->remove();
|
|
||||||
+ if (m_firstTextBox == s)
|
|
||||||
+ m_firstTextBox = s->nextTextBox();
|
|
||||||
+ else
|
|
||||||
+ s->prevTextBox()->setNextLineBox(s->nextTextBox());
|
|
||||||
+ if (m_lastTextBox == s)
|
|
||||||
+ m_lastTextBox = s->prevTextBox();
|
|
||||||
+ else
|
|
||||||
+ s->nextTextBox()->setPreviousLineBox(s->prevTextBox());
|
|
||||||
s->destroy(renderArena());
|
|
||||||
- m_firstTextBox = m_lastTextBox = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1203,7 +1210,7 @@ void RenderText::checkConsistency() cons
|
|
||||||
#ifdef CHECK_CONSISTENCY
|
|
||||||
const InlineTextBox* prev = 0;
|
|
||||||
for (const InlineTextBox* child = m_firstTextBox; child != 0; child = child->nextTextBox()) {
|
|
||||||
- ASSERT(child->object() == this);
|
|
||||||
+ ASSERT(child->renderer() == this);
|
|
||||||
ASSERT(child->prevTextBox() == prev);
|
|
||||||
prev = child;
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
diff -up qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp.cve-2010-0050-crash-misnested-style-tags qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp
|
|
||||||
--- qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp.cve-2010-0050-crash-misnested-style-tags 2009-09-29 13:01:36.000000000 +0200
|
|
||||||
+++ qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLParser.cpp 2010-02-04 15:54:25.399651321 +0100
|
|
||||||
@@ -1208,7 +1208,8 @@ void HTMLParser::handleResidualStyleClos
|
|
||||||
prevMaxElem->next = elem;
|
|
||||||
ASSERT(newNodePtr);
|
|
||||||
prevMaxElem->node = newNodePtr;
|
|
||||||
- prevMaxElem->didRefNode = false;
|
|
||||||
+ newNodePtr->ref();
|
|
||||||
+ prevMaxElem->didRefNode = true;
|
|
||||||
} else
|
|
||||||
delete elem;
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
diff -up qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp.cve-2010-0052-destroyed-input-cached qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp
|
|
||||||
--- qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp.cve-2010-0052-destroyed-input-cached 2009-09-29 13:01:36.000000000 +0200
|
|
||||||
+++ qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/html/HTMLInputElement.cpp 2010-02-04 17:50:07.931656712 +0100
|
|
||||||
@@ -616,12 +616,15 @@ void HTMLInputElement::parseMappedAttrib
|
|
||||||
m_autocomplete = Off;
|
|
||||||
registerForActivationCallbackIfNeeded();
|
|
||||||
} else {
|
|
||||||
- if (m_autocomplete == Off)
|
|
||||||
- unregisterForActivationCallbackIfNeeded();
|
|
||||||
+ bool needsToUnregister = m_autocomplete == Off;
|
|
||||||
+
|
|
||||||
if (attr->isEmpty())
|
|
||||||
m_autocomplete = Uninitialized;
|
|
||||||
else
|
|
||||||
m_autocomplete = On;
|
|
||||||
+
|
|
||||||
+ if (needsToUnregister)
|
|
||||||
+ unregisterForActivationCallbackIfNeeded();
|
|
||||||
}
|
|
||||||
} else if (attr->name() == typeAttr) {
|
|
||||||
setInputType(attr->value());
|
|
@ -1,69 +0,0 @@
|
|||||||
From f1e39e7dea8634695263435f0bf912ce19c43195 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Zander <t.zander@nokia.com>
|
|
||||||
Date: Thu, 4 Mar 2010 13:16:09 +0100
|
|
||||||
Subject: [PATCH] Make tablet detection work with new wacom drivers
|
|
||||||
|
|
||||||
wacom driver fixed a bug in assigning atom names where it messed
|
|
||||||
up the device names. Their solution apparently renamed the atoms
|
|
||||||
The type names used now are "STYLUS", "CURSOR", "ERASER", "PAD"
|
|
||||||
and "TOUCH" for each respective device. This change detects
|
|
||||||
those as our tablet input devices.
|
|
||||||
|
|
||||||
Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
|
|
||||||
Task-number: QTBUG-8599
|
|
||||||
---
|
|
||||||
src/gui/kernel/qapplication_x11.cpp | 9 +++++++--
|
|
||||||
src/gui/kernel/qt_x11_p.h | 3 +++
|
|
||||||
2 files changed, 10 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
|
|
||||||
index 121e9ec..25a7750 100644
|
|
||||||
--- a/src/gui/kernel/qapplication_x11.cpp
|
|
||||||
+++ b/src/gui/kernel/qapplication_x11.cpp
|
|
||||||
@@ -320,9 +320,14 @@ static const char * x11_atomnames = {
|
|
||||||
"_XEMBED\0"
|
|
||||||
"_XEMBED_INFO\0"
|
|
||||||
|
|
||||||
+ // Wacom old. (before version 0.10)
|
|
||||||
"Wacom Stylus\0"
|
|
||||||
"Wacom Cursor\0"
|
|
||||||
"Wacom Eraser\0"
|
|
||||||
+
|
|
||||||
+ // Tablet
|
|
||||||
+ "STYLUS\0"
|
|
||||||
+ "ERASER\0"
|
|
||||||
};
|
|
||||||
|
|
||||||
Q_GUI_EXPORT QX11Data *qt_x11Data = 0;
|
|
||||||
@@ -2366,12 +2371,12 @@ void qt_init(QApplicationPrivate *priv, int,
|
|
||||||
gotStylus = true;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
- if (devs->type == ATOM(XWacomStylus)) {
|
|
||||||
+ if (devs->type == ATOM(XWacomStylus) || devs->type == ATOM(XTabletStylus)) {
|
|
||||||
deviceType = QTabletEvent::Stylus;
|
|
||||||
if (wacomDeviceName()->isEmpty())
|
|
||||||
wacomDeviceName()->append(devs->name);
|
|
||||||
gotStylus = true;
|
|
||||||
- } else if (devs->type == ATOM(XWacomEraser)) {
|
|
||||||
+ } else if (devs->type == ATOM(XWacomEraser) || devs->type == ATOM(XTabletEraser)) {
|
|
||||||
deviceType = QTabletEvent::XFreeEraser;
|
|
||||||
gotEraser = true;
|
|
||||||
}
|
|
||||||
diff --git a/src/gui/kernel/qt_x11_p.h b/src/gui/kernel/qt_x11_p.h
|
|
||||||
index d110084..14e04bb 100644
|
|
||||||
--- a/src/gui/kernel/qt_x11_p.h
|
|
||||||
+++ b/src/gui/kernel/qt_x11_p.h
|
|
||||||
@@ -675,6 +675,9 @@ struct QX11Data
|
|
||||||
XWacomCursor,
|
|
||||||
XWacomEraser,
|
|
||||||
|
|
||||||
+ XTabletStylus,
|
|
||||||
+ XTabletEraser,
|
|
||||||
+
|
|
||||||
NPredefinedAtoms,
|
|
||||||
|
|
||||||
_QT_SETTINGS_TIMESTAMP = NPredefinedAtoms,
|
|
||||||
--
|
|
||||||
1.6.1
|
|
||||||
|
|
35
qt.spec
35
qt.spec
@ -12,8 +12,8 @@
|
|||||||
Summary: Qt toolkit
|
Summary: Qt toolkit
|
||||||
Name: qt
|
Name: qt
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 4.6.2
|
Version: 4.6.3
|
||||||
Release: 20%{?dist}
|
Release: 1%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
@ -64,14 +64,8 @@ Patch56: qt-everywhere-opensource-src-4.6.2-webkit-s390x.patch
|
|||||||
Patch57: qt-everywhere-opensource-src-4.6.2-webkit-sparc64.patch
|
Patch57: qt-everywhere-opensource-src-4.6.2-webkit-sparc64.patch
|
||||||
|
|
||||||
# security patches
|
# security patches
|
||||||
Patch100: qt-x11-opensource-src-4.5.3-cve-2010-0046-css-format-mem-corruption.patch
|
|
||||||
Patch101: qt-x11-opensource-src-4.5.3-cve-2010-0049-freed-line-boxes-ltr-rtl.patch
|
|
||||||
Patch102: qt-x11-opensource-src-4.5.3-cve-2010-0050-crash-misnested-style-tags.patch
|
|
||||||
Patch103: qt-x11-opensource-src-4.5.3-cve-2010-0052-destroyed-input-cached.patch
|
|
||||||
Patch104: qt-everywhere-opensource-src-4.6.2-cve-2010-0051-lax-css-parsing-cross-domain-theft.patch
|
Patch104: qt-everywhere-opensource-src-4.6.2-cve-2010-0051-lax-css-parsing-cross-domain-theft.patch
|
||||||
Patch105: qt-everywhere-opensource-src-4.6.2-cve-2010-0054-image-element-pointer-name-getter.patch
|
|
||||||
Patch106: qt-everywhere-opensource-src-4.6.2-cve-2010-0656.patch
|
Patch106: qt-everywhere-opensource-src-4.6.2-cve-2010-0656.patch
|
||||||
Patch107: qt-everywhere-opensource-src-4.6.2-cve-2010-0047.patch
|
|
||||||
Patch108: qt-everywhere-opensource-src-4.6.2-cve-2010-0648.patch
|
Patch108: qt-everywhere-opensource-src-4.6.2-cve-2010-0648.patch
|
||||||
|
|
||||||
# kde-qt git patches
|
# kde-qt git patches
|
||||||
@ -85,12 +79,6 @@ Patch207: 0007-When-using-qmake-outside-qt-src-tree-it-sometimes-ge.patch
|
|||||||
Patch208: 0008-This-patch-makes-the-raster-graphics-system-use-shar.patch
|
Patch208: 0008-This-patch-makes-the-raster-graphics-system-use-shar.patch
|
||||||
Patch209: 0009-Restore-a-section-of-the-file-that-got-removed-due-t.patch
|
Patch209: 0009-Restore-a-section-of-the-file-that-got-removed-due-t.patch
|
||||||
Patch212: 0012-Add-context-to-tr-calls-in-QShortcut.patch
|
Patch212: 0012-Add-context-to-tr-calls-in-QShortcut.patch
|
||||||
Patch213: qt-x11-opensource-src-4.6.2-tablet-wacom-QTBUG-8599.patch
|
|
||||||
# backport from 4.7 to fix a crash when reparenting an item in QGraphicsView
|
|
||||||
# it should be included in 4.6.3
|
|
||||||
Patch214: qt-everywhere-opensource-src-4.6.2-QTBUG-6932.patch
|
|
||||||
patch215: qt-everywhere-opensource-src-4.6.2-atomic-s390.patch
|
|
||||||
patch216: qt-everywhere-opensource-src-4.6.2-cups-QTBUG-6471.patch
|
|
||||||
Patch217: http://qt.gitorious.org/+kde-developers/qt/kde-qt/commit/55ef01d93f8257b5927660290fc1ead0b2b74ec9.patch
|
Patch217: http://qt.gitorious.org/+kde-developers/qt/kde-qt/commit/55ef01d93f8257b5927660290fc1ead0b2b74ec9.patch
|
||||||
# QTBUG-9793
|
# QTBUG-9793
|
||||||
Patch218: http://qt.gitorious.org/qt/qt/commit/0ebc9783d8ca0c4b27208bbc002c53c52c19ab4c.patch
|
Patch218: http://qt.gitorious.org/qt/qt/commit/0ebc9783d8ca0c4b27208bbc002c53c52c19ab4c.patch
|
||||||
@ -437,14 +425,8 @@ Qt libraries used for drawing widgets and OpenGL items.
|
|||||||
%patch57 -p1 -b .typecast_sparc64
|
%patch57 -p1 -b .typecast_sparc64
|
||||||
|
|
||||||
# security fixes
|
# security fixes
|
||||||
%patch100 -p1 -b .cve-2010-0046-css-format-mem-corruption
|
|
||||||
%patch101 -p1 -b .cve-2010-0049-freed-line-boxes-ltr-rtl
|
|
||||||
%patch102 -p1 -b .cve-2010-0050-crash-misnested-style-tags
|
|
||||||
%patch103 -p1 -b .cve-2010-0052-destroyed-input-cached
|
|
||||||
%patch104 -p1 -b .cve-2010-0051-lax-css-parsing-cross-domain-theft
|
%patch104 -p1 -b .cve-2010-0051-lax-css-parsing-cross-domain-theft
|
||||||
%patch105 -p1 -b .cve-2010-0054-image-element-pointer-name-getter
|
|
||||||
%patch106 -p1 -b .cve-2010-0656
|
%patch106 -p1 -b .cve-2010-0656
|
||||||
%patch107 -p1 -b .cve-2010-0047
|
|
||||||
%patch108 -p1 -b .cve-2010-0648
|
%patch108 -p1 -b .cve-2010-0648
|
||||||
|
|
||||||
# kde-qt branch
|
# kde-qt branch
|
||||||
@ -456,10 +438,6 @@ Qt libraries used for drawing widgets and OpenGL items.
|
|||||||
%patch206 -p1 -b .kde-qt-0006
|
%patch206 -p1 -b .kde-qt-0006
|
||||||
%patch207 -p1 -b .kde-qt-0007
|
%patch207 -p1 -b .kde-qt-0007
|
||||||
%patch212 -p1 -b .kde-qt-0012
|
%patch212 -p1 -b .kde-qt-0012
|
||||||
%patch213 -p1 -b .tablet-wacom-QTBUG-8599
|
|
||||||
%patch214 -p1 -b .QTBUG-6932
|
|
||||||
%patch215 -p1 -b .atomic-s390
|
|
||||||
%patch216 -p1 -b .cups-QTBUG-6471
|
|
||||||
%patch217 -p1 -b .QT_GRAPHICSSYSTEM
|
%patch217 -p1 -b .QT_GRAPHICSSYSTEM
|
||||||
%patch218 -p1 -b .QTBUG-9793
|
%patch218 -p1 -b .QTBUG-9793
|
||||||
|
|
||||||
@ -505,12 +483,6 @@ if [ "%{_lib}" == "lib64" ] ; then
|
|||||||
sed -i -e "s,/lib /usr/lib,/%{_lib} /usr/%{_lib},g" config.tests/{unix,x11}/*.test
|
sed -i -e "s,/lib /usr/lib,/%{_lib} /usr/%{_lib},g" config.tests/{unix,x11}/*.test
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# let makefile create missing .qm files, the .qm files should be included in qt upstream
|
|
||||||
for f in translations/*.ts ; do
|
|
||||||
touch ${f%.ts}.qm
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
# build shared, threaded (default) libraries
|
# build shared, threaded (default) libraries
|
||||||
@ -1057,6 +1029,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jun 08 2010 Than Ngo <than@redhat.com> - 4.6.3-1
|
||||||
|
- 4.6.3
|
||||||
|
|
||||||
* Thu May 27 2010 Rex Dieter <rdieter@fedoraproject.org> - 4.6.2-20
|
* Thu May 27 2010 Rex Dieter <rdieter@fedoraproject.org> - 4.6.2-20
|
||||||
- Unsafe use of rand() in X11 (QTBUG-9793)
|
- Unsafe use of rand() in X11 (QTBUG-9793)
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -7,4 +7,4 @@ d9f511e4b51983b4e10eb58b320416d5 hi128-app-qt4-logo.png
|
|||||||
12db12c009b722a6dc141f78feb7e330 hi32-phonon-gstreamer.png
|
12db12c009b722a6dc141f78feb7e330 hi32-phonon-gstreamer.png
|
||||||
86c34a1b81d44980b1381f94ed6b7a23 hi48-phonon-gstreamer.png
|
86c34a1b81d44980b1381f94ed6b7a23 hi48-phonon-gstreamer.png
|
||||||
153505c71ec021b0a3bd4b74f2492e93 hi64-phonon-gstreamer.png
|
153505c71ec021b0a3bd4b74f2492e93 hi64-phonon-gstreamer.png
|
||||||
eb651ee4b157c01696aa56777fc6e0e5 qt-everywhere-opensource-src-4.6.2.tar.gz
|
5c69f16d452b0bb3d44bc3c10556c072 qt-everywhere-opensource-src-4.6.3.tar.gz
|
||||||
|
Loading…
Reference in New Issue
Block a user