diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2011-06-01 15:34:58 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@nokia.com> | 2011-06-01 15:34:58 +0200 |
commit | 00ef07fe96f51cb309469454592daf5d4a92eb4b (patch) | |
tree | 59f34f603882644ba25fb4bbc893fcb64ea6b262 /src/widgets | |
parent | f05236a40d7ee9299c5855d70e542143a2d342c8 (diff) | |
parent | 7b6c3707dea3292b62cca02245a710f00db21427 (diff) |
Merge remote-tracking branch 'base/master' into refactor
Conflicts:
src/gui/embedded/qmousepc_qws.cpp
src/gui/embedded/qwslock.cpp
src/plugins/decorations/default/default.pro
src/plugins/decorations/styled/styled.pro
src/plugins/decorations/windows/windows.pro
src/plugins/gfxdrivers/ahi/ahi.pro
src/plugins/gfxdrivers/directfb/directfb.pro
src/plugins/gfxdrivers/eglnullws/eglnullws.pro
src/plugins/gfxdrivers/linuxfb/linuxfb.pro
src/plugins/gfxdrivers/qvfb/qvfb.pro
src/plugins/gfxdrivers/transformed/transformed.pro
src/plugins/gfxdrivers/vnc/vnc.pro
src/plugins/graphicssystems/meego/meego.pro
src/plugins/graphicssystems/opengl/opengl.pro
src/plugins/graphicssystems/openvg/openvg.pro
src/plugins/graphicssystems/shivavg/shivavg.pro
src/plugins/graphicssystems/trace/trace.pro
src/plugins/kbddrivers/linuxinput/linuxinput.pro
src/plugins/mousedrivers/linuxtp/linuxtp.pro
src/plugins/mousedrivers/pc/pc.pro
src/plugins/mousedrivers/tslib/tslib.pro
src/plugins/platforms/minimal/minimal.pro
tests/auto/qerrormessage/qerrormessage.pro
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/platforms/mac/qcocoasharedwindowmethods_mac_p.h | 13 | ||||
-rw-r--r-- | src/widgets/platforms/mac/qfontengine_coretext.mm | 7 | ||||
-rw-r--r-- | src/widgets/platforms/mac/qpixmap_mac.cpp | 11 | ||||
-rw-r--r-- | src/widgets/platforms/mac/qwidget_mac.mm | 12 | ||||
-rw-r--r-- | src/widgets/platforms/x11/qfontdatabase_x11.cpp | 5 | ||||
-rw-r--r-- | src/widgets/platforms/x11/qfontengine_x11.cpp | 2 | ||||
-rw-r--r-- | src/widgets/to_be_moved/qlinecontrol.cpp | 4 | ||||
-rw-r--r-- | src/widgets/to_be_moved/qtextcontrol.cpp | 6 |
8 files changed, 34 insertions, 26 deletions
diff --git a/src/widgets/platforms/mac/qcocoasharedwindowmethods_mac_p.h b/src/widgets/platforms/mac/qcocoasharedwindowmethods_mac_p.h index e2539aaaf1..f5a93d98d2 100644 --- a/src/widgets/platforms/mac/qcocoasharedwindowmethods_mac_p.h +++ b/src/widgets/platforms/mac/qcocoasharedwindowmethods_mac_p.h @@ -199,19 +199,6 @@ QT_END_NAMESPACE [super setInitialFirstResponder:view]; } -- (void)setInitialFirstResponder:(NSView *)view -{ - // This method is called the first time the window is placed on screen and - // is the earliest point in time we can connect OpenGL contexts to NSViews. - QWidget *qwidget = [[QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate] qt_qwidgetForWindow:self]; - if (qwidget) { - qt_event_request_window_change(qwidget); - qt_mac_send_posted_gl_updates(qwidget); - } - - [super setInitialFirstResponder:view]; -} - - (BOOL)makeFirstResponder:(NSResponder *)responder { // For some reason Cocoa wants to flip the first responder diff --git a/src/widgets/platforms/mac/qfontengine_coretext.mm b/src/widgets/platforms/mac/qfontengine_coretext.mm index 24bd750e80..737edc3a8c 100644 --- a/src/widgets/platforms/mac/qfontengine_coretext.mm +++ b/src/widgets/platforms/mac/qfontengine_coretext.mm @@ -100,7 +100,12 @@ QCoreTextFontEngineMulti::QCoreTextFontEngineMulti(const QCFString &name, const QCFType<CTFontDescriptorRef> descriptor = CTFontDescriptorCreateWithNameAndSize(name, fontDef.pixelSize); QCFType<CTFontRef> baseFont = CTFontCreateWithFontDescriptor(descriptor, fontDef.pixelSize, &transform); - ctfont = CTFontCreateCopyWithSymbolicTraits(baseFont, fontDef.pixelSize, &transform, symbolicTraits, symbolicTraits); + ctfont = NULL; + // There is a side effect in Core Text: if we apply 0 as symbolic traits to a font in normal weight, + // we will get the light version of that font (while the way supposed to work doesn't: + // setting kCTFontWeightTrait to some value between -1.0 to 0.0 has no effect on font selection) + if (fontDef.weight != QFont::Normal || symbolicTraits) + ctfont = CTFontCreateCopyWithSymbolicTraits(baseFont, fontDef.pixelSize, &transform, symbolicTraits, symbolicTraits); // CTFontCreateCopyWithSymbolicTraits returns NULL if we ask for a trait that does // not exist for the given font. (for example italic) diff --git a/src/widgets/platforms/mac/qpixmap_mac.cpp b/src/widgets/platforms/mac/qpixmap_mac.cpp index 7e31f5b80b..cb3016177d 100644 --- a/src/widgets/platforms/mac/qpixmap_mac.cpp +++ b/src/widgets/platforms/mac/qpixmap_mac.cpp @@ -54,6 +54,7 @@ #include <private/qpaintengine_mac_p.h> #include <private/qt_mac_p.h> #include <private/qt_cocoa_helpers_mac_p.h> +#include <private/qapplication_p.h> #include <limits.h> #include <string.h> @@ -73,12 +74,18 @@ static int qt_pixmap_serial = 0; Q_GUI_EXPORT quint32 *qt_mac_pixmap_get_base(const QPixmap *pix) { - return static_cast<QMacPixmapData*>(pix->data.data())->pixels; + if (QApplicationPrivate::graphics_system_name == QLatin1String("raster")) + return reinterpret_cast<quint32 *>(static_cast<QRasterPixmapData*>(pix->data.data())->buffer()->bits()); + else + return static_cast<QMacPixmapData*>(pix->data.data())->pixels; } Q_GUI_EXPORT int qt_mac_pixmap_get_bytes_per_line(const QPixmap *pix) { - return static_cast<QMacPixmapData*>(pix->data.data())->bytesPerRow; + if (QApplicationPrivate::graphics_system_name == QLatin1String("raster")) + return static_cast<QRasterPixmapData*>(pix->data.data())->buffer()->bytesPerLine(); + else + return static_cast<QMacPixmapData*>(pix->data.data())->bytesPerRow; } void qt_mac_cgimage_data_free(void *info, const void *memoryToFree, size_t) diff --git a/src/widgets/platforms/mac/qwidget_mac.mm b/src/widgets/platforms/mac/qwidget_mac.mm index 9a873f32ac..3a025e9237 100644 --- a/src/widgets/platforms/mac/qwidget_mac.mm +++ b/src/widgets/platforms/mac/qwidget_mac.mm @@ -4541,6 +4541,11 @@ void QWidgetPrivate::setGeometry_sys_helper(int x, int y, int w, int h, bool isM QPoint oldp = q->pos(); QSize olds = q->size(); + // Apply size restrictions, applicable for Windows & Widgets. + if (QWExtra *extra = extraData()) { + w = qBound(extra->minw, w, extra->maxw); + h = qBound(extra->minh, h, extra->maxh); + } const bool isResize = (olds != QSize(w, h)); if (!realWindow && !isResize && QPoint(x, y) == oldp) @@ -4550,13 +4555,6 @@ void QWidgetPrivate::setGeometry_sys_helper(int x, int y, int w, int h, bool isM data.window_state = data.window_state & ~Qt::WindowMaximized; const bool visible = q->isVisible(); - // Apply size restrictions, applicable for Windows & Widgets. - if (QWExtra *extra = extraData()) { - w = qMin(w, extra->maxw); - h = qMin(h, extra->maxh); - w = qMax(w, extra->minw); - h = qMax(h, extra->minh); - } data.crect = QRect(x, y, w, h); if (realWindow) { diff --git a/src/widgets/platforms/x11/qfontdatabase_x11.cpp b/src/widgets/platforms/x11/qfontdatabase_x11.cpp index 8a13d91fbb..a5fdcb5216 100644 --- a/src/widgets/platforms/x11/qfontdatabase_x11.cpp +++ b/src/widgets/platforms/x11/qfontdatabase_x11.cpp @@ -1996,6 +1996,11 @@ void QFontDatabase::load(const QFontPrivate *d, int script) QFontCache::instance()->insertEngine(key, fe); } +// Needed for fontconfig version < 2.2.97 +#ifndef FC_FAMILYLANG +#define FC_FAMILYLANG "familylang" +#endif + static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) { #if defined(QT_NO_FONTCONFIG) diff --git a/src/widgets/platforms/x11/qfontengine_x11.cpp b/src/widgets/platforms/x11/qfontengine_x11.cpp index 099704894c..e3bfa5df46 100644 --- a/src/widgets/platforms/x11/qfontengine_x11.cpp +++ b/src/widgets/platforms/x11/qfontengine_x11.cpp @@ -1205,7 +1205,9 @@ QFontEngine *QFontEngineX11FT::cloneWithSize(qreal pixelSize) const delete fe; return 0; } else { +#ifndef QT_NO_XRENDER fe->xglyph_format = xglyph_format; +#endif return fe; } } diff --git a/src/widgets/to_be_moved/qlinecontrol.cpp b/src/widgets/to_be_moved/qlinecontrol.cpp index ee7d7fb126..bf36033c08 100644 --- a/src/widgets/to_be_moved/qlinecontrol.cpp +++ b/src/widgets/to_be_moved/qlinecontrol.cpp @@ -435,6 +435,8 @@ void QLineControl::processInputMethodEvent(QInputMethodEvent *event) c += event->commitString().length() - qMin(-event->replacementStart(), event->replacementLength()); m_cursor += event->replacementStart(); + if (m_cursor < 0) + m_cursor = 0; // insert commit string if (event->replacementLength()) { @@ -447,7 +449,7 @@ void QLineControl::processInputMethodEvent(QInputMethodEvent *event) cursorPositionChanged = true; } - m_cursor = qMin(c, m_text.length()); + m_cursor = qBound(0, c, m_text.length()); for (int i = 0; i < event->attributes().size(); ++i) { const QInputMethodEvent::Attribute &a = event->attributes().at(i); diff --git a/src/widgets/to_be_moved/qtextcontrol.cpp b/src/widgets/to_be_moved/qtextcontrol.cpp index 149c29213e..ab294b9e0d 100644 --- a/src/widgets/to_be_moved/qtextcontrol.cpp +++ b/src/widgets/to_be_moved/qtextcontrol.cpp @@ -677,7 +677,7 @@ void QTextControlPrivate::extendWordwiseSelection(int suggestedNewPosition, qrea const qreal wordEndX = line.cursorToX(curs.position() - blockPos) + blockCoordinates.x(); - if (mouseXPosition < wordStartX || mouseXPosition > wordEndX) + if (!wordSelectionEnabled && (mouseXPosition < wordStartX || mouseXPosition > wordEndX)) return; // keep the already selected word even when moving to the left @@ -1579,8 +1579,10 @@ void QTextControlPrivate::mousePressEvent(QEvent *e, Qt::MouseButton button, con emit q->cursorPositionChanged(); _q_updateCurrentCharFormatAndSelection(); } else { - if (cursor.position() != oldCursorPos) + if (cursor.position() != oldCursorPos) { emit q->cursorPositionChanged(); + emit q->microFocusChanged(); + } selectionChanged(); } repaintOldAndNewSelection(oldSelection); |