Posted to tcl by patthoyts at Thu Mar 10 14:36:22 GMT 2011view pretty
Index: win/tkWinWm.c^M$ ===================================================================^M$ --- win/tkWinWm.c^M$ +++ win/tkWinWm.c^M$ @@ -34,11 +34,11 @@^M$ ^M$ /*^M$ * Event structure for synthetic activation events. These events are placed on^M$ * the event queue whenever a toplevel gets a WM_MOUSEACTIVATE message or^M$ * a WM_ACTIVATE. If the window is being moved (*flagPtr will be true)^M$ - * then the handling of this event must be delayed until the operation ^M$ + * then the handling of this event must be delayed until the operation^M$ * has completed to avoid a premature WM_EXITSIZEMOVE event.^M$ */^M$ ^M$ typedef struct ActivateEvent {^M$ Tcl_Event ev;^M$ @@ -3715,11 +3715,11 @@^M$ ^ITkMapTopFrame(frameWin);^M$ } else {^M$ ^I/* Already not managed by wm - ignore it */^M$ }^M$ return TCL_OK;^M$ -}^L^M$ +}^M$ /*^M$ *----------------------------------------------------------------------^M$ *^M$ * WmFrameCmd --^M$ *^M$ @@ -4374,11 +4374,11 @@^M$ ^I * Don't use CreateIcon to create the icon, as it requires color^M$ ^I * bitmap data in device-dependent format. Instead we use^M$ ^I * CreateIconIndirect which takes device-independent bitmaps^M$ ^I * and converts them as required. Initialise icon info structure.^M$ ^I */^M$ -^I^M$ +^M$ ^IZeroMemory( &iconInfo, sizeof iconInfo );^M$ ^IiconInfo.fIcon = TRUE;^M$ ^M$ ^I/*^M$ ^I * Create device-independant color bitmap.^M$ @@ -4395,11 +4395,11 @@^M$ ^I DIB_RGB_COLORS, &bgraPixel.voidPtr, NULL, 0 );^M$ ^Iif ( !iconInfo.hbmColor ) {^M$ ^I ckfree((char *) lpIR);^M$ ^I Tcl_AppendResult(interp, "failed to create color bitmap for \"",^M$ ^I^I Tcl_GetString(objv[i]), "\"", NULL);^M$ -^I return TCL_ERROR;^I ^M$ +^I return TCL_ERROR;^M$ ^I}^M$ ^M$ ^I/*^M$ ^I * Convert the photo image data into BGRA format (RGBQUAD).^M$ ^I */^M$ @@ -4423,15 +4423,15 @@^M$ ^Iif ( !iconInfo.hbmMask ) {^M$ ^I DeleteObject(iconInfo.hbmColor);^M$ ^I ckfree((char *) lpIR);^M$ ^I Tcl_AppendResult(interp, "failed to create mask bitmap for \"",^M$ ^I^I Tcl_GetString(objv[i]), "\"", NULL);^M$ -^I return TCL_ERROR;^I ^M$ +^I return TCL_ERROR;^M$ ^I}^M$ -^I^M$ +^M$ ^IZeroMemory( bgraMaskPtr, width*height/8 );^M$ -^I^M$ +^M$ ^I/*^M$ ^I * Create an icon from the bitmaps.^M$ ^I */^M$ ^IhIcon = CreateIconIndirect( &iconInfo);^M$ ^IDeleteObject(iconInfo.hbmColor);^M$ @@ -7872,11 +7872,11 @@^M$ ^I^Iresult = 0;^M$ ^I^Igoto done;^M$ ^I }^M$ ^I}^M$ ^I/* fall through */^M$ -^I^M$ +^M$ case WM_EXITSIZEMOVE:^M$ ^Iif (inMoveSize) {^M$ ^I inMoveSize = 0;^M$ ^I Tcl_SetServiceMode(oldMode);^M$ ^I}^M$ @@ -8041,17 +8041,17 @@^M$ ^I if ((SC_MINIMIZE == cmd)^M$ ^I^I&& (grab == TK_GRAB_IN_TREE || grab == TK_GRAB_ANCESTOR)^M$ ^I^I&& (winPtr != winPtr->mainPtr->winPtr)) {^M$ ^I^Igoto done;^M$ ^I }^M$ -^I if (grab == TK_GRAB_EXCLUDED ^M$ +^I if (grab == TK_GRAB_EXCLUDED^M$ ^I^I&& !(SC_MOVE == cmd || SC_SIZE == cmd)) {^M$ ^I^Igoto done;^M$ ^I }^M$ ^I}^M$ ^I/* fall through */^M$ -^I^M$ +^M$ case WM_INITMENU:^M$ case WM_COMMAND:^M$ case WM_MENUCHAR:^M$ case WM_MEASUREITEM:^M$ case WM_DRAWITEM:^M$ @@ -8058,11 +8058,11 @@^M$ case WM_MENUSELECT:^M$ case WM_ENTERIDLE:^M$ case WM_INITMENUPOPUP:^M$ ^Iif (winPtr) {^M$ ^I HWND hMenuHWnd = Tk_GetEmbeddedMenuHWND((Tk_Window)winPtr);^M$ -^I ^M$ +^M$ ^I if (hMenuHWnd) {^M$ ^I^Iif (SendMessage(hMenuHWnd, message, wParam, lParam)) {^M$ ^I^I goto done;^M$ ^I^I}^M$ ^I } else if (TkWinHandleMenuEvent(&hwnd, &message, &wParam, &lParam,^M$ @@ -8627,19 +8627,20 @@^M$ *^Ikeeps windowing system happy^M$ *^M$ *----------------------------------------------------------------------^M$ */^M$ ^M$ -static void ^M$ +static void^M$ RemapWindows(winPtr, parentHWND)^M$ TkWindow *winPtr;^M$ HWND parentHWND;^M$ {^M$ TkWindow *childPtr;^M$ + const char *className = Tk_Class(winPtr);^M$ ^M$ /* Skip Menus as they are handled differently */^M$ - if (strcmp(Tk_Class(winPtr), "Menu") == 0) {^M$ + if (className != NULL && strcmp(className, "Menu") == 0) {^M$ ^Ireturn;^M$ }^M$ if (winPtr->window) {^M$ ^ISetParent(Tk_GetHWND(winPtr->window), parentHWND);^M$ }^M$ ^M$