| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2009, Google Inc. | 2 * Copyright 2009, Google Inc. |
| 3 * All rights reserved. | 3 * All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 } | 662 } |
| 663 | 663 |
| 664 obj->SetHWnd(NULL); | 664 obj->SetHWnd(NULL); |
| 665 } | 665 } |
| 666 | 666 |
| 667 // Re-parents the content_hwnd into the containing_hwnd, resizing the | 667 // Re-parents the content_hwnd into the containing_hwnd, resizing the |
| 668 // content_hwnd to the given width and height in the process. | 668 // content_hwnd to the given width and height in the process. |
| 669 void ReplaceContentWindow(HWND content_hwnd, | 669 void ReplaceContentWindow(HWND content_hwnd, |
| 670 HWND containing_hwnd, | 670 HWND containing_hwnd, |
| 671 int width, int height) { | 671 int width, int height) { |
| 672 ::ShowWindow(content_hwnd, SW_HIDE); | 672 // In Chrome browser, IPC might block this call. This doesn't happen with |
| 673 // firefox or internet explorer. For Chome, do not hide the window. Haven't |
| 674 // any artifacts with this change when exiting from full screen. |
| 675 PluginObject *obj = PluginObject::GetPluginProperty(content_hwnd); |
| 676 if (obj && !obj->IsChrome()) { |
| 677 ::ShowWindow(content_hwnd, SW_HIDE); |
| 678 } |
| 673 LONG_PTR style = ::GetWindowLongPtr(content_hwnd, GWL_STYLE); | 679 LONG_PTR style = ::GetWindowLongPtr(content_hwnd, GWL_STYLE); |
| 674 style |= WS_CHILD; | 680 style |= WS_CHILD; |
| 675 ::SetWindowLongPtr(content_hwnd, GWL_STYLE, style); | 681 ::SetWindowLongPtr(content_hwnd, GWL_STYLE, style); |
| 676 LONG_PTR exstyle = ::GetWindowLongPtr(content_hwnd, GWL_EXSTYLE); | 682 LONG_PTR exstyle = ::GetWindowLongPtr(content_hwnd, GWL_EXSTYLE); |
| 677 exstyle &= ~WS_EX_TOOLWINDOW; | 683 exstyle &= ~WS_EX_TOOLWINDOW; |
| 678 ::SetWindowLongPtr(content_hwnd, GWL_EXSTYLE, exstyle); | 684 ::SetWindowLongPtr(content_hwnd, GWL_EXSTYLE, exstyle); |
| 679 ::SetParent(content_hwnd, containing_hwnd); | 685 ::SetParent(content_hwnd, containing_hwnd); |
| 680 BOOL res = ::SetWindowPos(content_hwnd, containing_hwnd, | 686 BOOL res = ::SetWindowPos(content_hwnd, containing_hwnd, |
| 681 0, 0, width, height, | 687 0, 0, width, height, |
| 682 SWP_NOZORDER | SWP_ASYNCWINDOWPOS); | 688 SWP_NOZORDER | SWP_ASYNCWINDOWPOS); |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 941 if (!renderer_->CancelFullscreen(display, prev_width_, prev_height_)) { | 947 if (!renderer_->CancelFullscreen(display, prev_width_, prev_height_)) { |
| 942 LOG(FATAL) << "Failed to get the renderer out of fullscreen mode!"; | 948 LOG(FATAL) << "Failed to get the renderer out of fullscreen mode!"; |
| 943 } | 949 } |
| 944 ReplaceContentWindow(GetContentHWnd(), GetPluginHWnd(), | 950 ReplaceContentWindow(GetContentHWnd(), GetPluginHWnd(), |
| 945 prev_width_, prev_height_); | 951 prev_width_, prev_height_); |
| 946 client()->SendResizeEvent(prev_width_, prev_height_, false); | 952 client()->SendResizeEvent(prev_width_, prev_height_, false); |
| 947 } | 953 } |
| 948 } | 954 } |
| 949 } // namespace _o3d | 955 } // namespace _o3d |
| 950 } // namespace glue | 956 } // namespace glue |
| OLD | NEW |