Changeset 6773 for trunk/src


Ignore:
Timestamp:
Sep 20, 2001, 2:57:15 PM (24 years ago)
Author:
sandervl
Message:

WM_MOUSEACTIVATE & WM_NEXTMENU fixes

Location:
trunk/src/user32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/menu.cpp

    r6762 r6773  
    1 /* $Id: menu.cpp,v 1.36 2001-09-19 15:39:48 sandervl Exp $*/
     1/* $Id: menu.cpp,v 1.37 2001-09-20 12:57:15 sandervl Exp $*/
    22/*
    33 * Menu functions
     
    25192519        (vk == VK_RIGHT && menu->FocusedItem == menu->nItems - 1))
    25202520    {
     2521        MDINEXTMENU next_menu;
    25212522        HMENU hNewMenu;
    25222523        HWND  hNewWnd;
    25232524        UINT  id = 0;
    2524         LRESULT l = SendMessageA( pmt->hOwnerWnd, WM_NEXTMENU, vk,
    2525                 (IS_SYSTEM_MENU(menu)) ? GetSubMenu(pmt->hTopMenu,0) : pmt->hTopMenu );
    2526 
    2527         //TRACE("%04x [%04x] -> %04x [%04x]\n",
    2528         //             (UINT16)pmt->hCurrentMenu, (UINT16)pmt->hOwnerWnd, LOWORD(l), HIWORD(l) );
    2529 
    2530         if( l == 0 )
     2525
     2526        next_menu.hmenuIn = (IS_SYSTEM_MENU(menu)) ? GetSubMenu(pmt->hTopMenu,0) : pmt->hTopMenu;
     2527        next_menu.hmenuNext = 0;
     2528        next_menu.hwndNext = 0;
     2529
     2530        SendMessageW( pmt->hOwnerWnd, WM_NEXTMENU, vk, (LPARAM)&next_menu );
     2531
     2532        dprintf(("%04x [%04x] -> %04x [%04x]\n",
     2533              pmt->hCurrentMenu, pmt->hOwnerWnd, next_menu.hmenuNext, next_menu.hwndNext ));
     2534
     2535        if (!next_menu.hmenuNext || !next_menu.hwndNext)
    25312536        {
    25322537            hNewWnd = pmt->hOwnerWnd;
     
    25592564        else    /* application returned a new menu to switch to */
    25602565        {
    2561             hNewMenu = LOWORD(l); hNewWnd = HIWORD(l);
     2566            hNewMenu = next_menu.hmenuNext;
     2567            hNewWnd = next_menu.hwndNext;
    25622568
    25632569            if( IsMenu(hNewMenu) && IsWindow(hNewWnd) )
  • trunk/src/user32/win32wbase.cpp

    r6762 r6773  
    1 /* $Id: win32wbase.cpp,v 1.282 2001-09-19 15:39:50 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.283 2001-09-20 12:57:15 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    10771077                                                MAKELONG( lastHitTestVal, msg->message) );
    10781078
     1079                dprintf2(("WM_MOUSEACTIVATE returned %d", ret));
    10791080#if 0
    10801081                if ((ret == MA_ACTIVATEANDEAT) || (ret == MA_NOACTIVATEANDEAT))
    10811082                         eatMsg = TRUE;
    10821083#endif
    1083                 if(((ret == MA_ACTIVATE) || (ret == MA_ACTIVATEANDEAT))
     1084                //SvL: 0 is not documented, but experiments in NT4 show that
     1085                //     the window will get activated when it returns this.
     1086                //     (FreeCell is an example)
     1087                if(((ret == MA_ACTIVATE) || (ret == MA_ACTIVATEANDEAT) || (ret == 0))
    10841088                   && (hwndTop != GetForegroundWindow()) )
    10851089                {
Note: See TracChangeset for help on using the changeset viewer.