diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2009-05-06 22:04:41 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-05-06 22:04:41 (GMT) |
commit | 014b5d404b19ad3d81686ba490eb7dd93efee573 (patch) | |
tree | 8fce9f8b172d4982270c5a91da0aa66fcb589f05 /src/gui/kernel/qapplication_win.cpp | |
parent | 2eb0312c96ab828809158802d4cb7e0980227389 (diff) | |
parent | 311978919f63c2c23dd09b4743ff12cf2a8a47bb (diff) | |
download | Qt-014b5d404b19ad3d81686ba490eb7dd93efee573.zip Qt-014b5d404b19ad3d81686ba490eb7dd93efee573.tar.gz Qt-014b5d404b19ad3d81686ba490eb7dd93efee573.tar.bz2 |
Merge branch '4.5' of git@scm.dev.troll.no:qt/qt
Conflicts:
src/gui/kernel/qcocoaview_mac_p.h
src/gui/widgets/qmainwindow.cpp
Diffstat (limited to 'src/gui/kernel/qapplication_win.cpp')
-rw-r--r-- | src/gui/kernel/qapplication_win.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index 07b3865..f1ab90f 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -2429,10 +2429,12 @@ LRESULT CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam widget = (QETWidget*)qApp->focusWidget(); HWND focus = ::GetFocus(); //if there is a current widget and the new widget belongs to the same toplevel window + //or if the current widget was embedded into non-qt window (i.e. we won't get WM_ACTIVATEAPP) //then we clear the focus on the widget //in case the new widget belongs to a different widget hierarchy, clearing the focus //will be handled because the active window will change - if (widget && ::IsChild(widget->window()->internalWinId(), focus)) { + const bool embedded = widget && ((QETWidget*)widget->window())->topData()->embedded; + if (widget && (embedded || ::IsChild(widget->window()->internalWinId(), focus))) { widget->clearFocus(); result = true; } else { |