Changeset 413 for trunk


Ignore:
Timestamp:
Jan 29, 2013, 12:43:05 AM (13 years ago)
Author:
dmik
Message:

jdk: Fix broken file open dialog in AWT apps.

It couldn't be dismissed and would not let navigate through dirs.

Location:
trunk/openjdk/jdk/src/windows/native/sun/windows
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/openjdk/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp

    r390 r413  
    103103    }
    104104
    105     return ComCtl32Util::GetInstance().DefWindowProc(NULL, hWnd, message, wParam, lParam);
     105    WNDPROC oldProc = ComCtl32Util::GetInstance().IsNewSubclassing() ? NULL :
     106                      reinterpret_cast<WNDPROC>(::GetProp(hWnd, ModalDialogProcProp));
     107
     108    return ComCtl32Util::GetInstance().DefWindowProc(oldProc, hWnd, message, wParam, lParam);
    106109}
    107110
     
    137140
    138141            // subclass dialog's parent to receive additional messages
    139             ComCtl32Util::GetInstance().SubclassHWND(parent,
    140                                                      FileDialogWndProc);
     142            WNDPROC oldProc = ComCtl32Util::GetInstance().SubclassHWND(parent,
     143                                                                       FileDialogWndProc);
     144            if (!ComCtl32Util::GetInstance().IsNewSubclassing())
     145                ::SetProp(parent, ModalDialogProcProp, reinterpret_cast<HANDLE>(oldProc));
    141146
    142147            break;
    143148        }
    144149        case WM_DESTROY: {
     150            WNDPROC oldProc = ComCtl32Util::GetInstance().IsNewSubclassing() ? NULL :
     151                              reinterpret_cast<WNDPROC>(::GetProp(parent, ModalDialogProcProp));
     152
    145153            ComCtl32Util::GetInstance().UnsubclassHWND(parent,
    146154                                                       FileDialogWndProc,
    147                                                        NULL);
     155                                                       oldProc);
     156            if (!ComCtl32Util::GetInstance().IsNewSubclassing())
     157                ::RemoveProp(parent, ModalDialogProcProp);
    148158            ::RemoveProp(parent, ModalDialogPeerProp);
    149159            break;
  • trunk/openjdk/jdk/src/windows/native/sun/windows/awt_Window.h

    r406 r413  
    3535static LPCTSTR ModalBlockerProp = TEXT("SunAwtModalBlockerProp");
    3636static LPCTSTR ModalDialogPeerProp = TEXT("SunAwtModalDialogPeerProp");
     37static LPCTSTR ModalDialogProcProp = TEXT("SunAwtModalDialogProcProp");
    3738
    3839#ifndef WH_MOUSE_LL
Note: See TracChangeset for help on using the changeset viewer.