Changeset 38
- Timestamp:
- 02/26/08 08:58:11 (11 months ago)
- Files:
-
- trunk/win32/dfl/form.d (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/win32/dfl/form.d
r37 r38 2520 2520 2521 2521 2522 package BOOL _isNonMdiChild(HWND hw) 2523 { 2524 assert(isHandleCreated); 2525 2526 if(!hw || hw == this.hwnd) 2527 return false; 2528 2529 if(IsChild(this.hwnd, hw)) 2530 { 2531 version(NO_MDI) 2532 { 2533 } 2534 else 2535 { 2536 if(mdiClient && mdiClient.isHandleCreated) 2537 { 2538 if(IsChild(mdiClient.hwnd, hw)) 2539 return false; // ! 2540 } 2541 } 2542 return true; 2543 } 2544 return false; 2545 } 2546 2547 2522 2548 package HWND _lastSelBtn; // Last selected button (not necessarily focused), excluding accept button! 2523 2549 package HWND _lastSel; // Last senected and focused control. … … 2532 2558 { 2533 2559 wasselbtn = true; 2534 if(IsChild(this.hwnd, _lastSelBtn)) 2560 //if(IsChild(this.hwnd, _lastSelBtn)) 2561 if(_isNonMdiChild(_lastSelBtn)) 2535 2562 { 2536 2563 auto lastctrl = Control.fromHandle(_lastSelBtn); … … 2590 2617 package final void _selactivate() 2591 2618 { 2592 if(_lastSel )2619 if(_lastSel && _isNonMdiChild(_lastSel)) 2593 2620 { 2594 2621 Control ctrl = Control.fromChildHandle(_lastSel); … … 2692 2719 +/ 2693 2720 //_selonecontrol(); 2721 2722 version(NO_MDI) 2723 { 2724 } 2725 else 2726 { 2727 if(isMdiChild) 2728 { 2729 // ? 2730 //msg.result = DefMDIChildProcA(msg.hWnd, msg.msg, msg.wParam, msg.lParam); 2731 msg.result = dfl.internal.utf.defMDIChildProc(msg.hWnd, msg.msg, msg.wParam, msg.lParam); 2732 return; 2733 } 2734 } 2735 2694 2736 // Prevent DefDlgProc from getting this message because it'll focus controls it shouldn't. 2695 2737 return; … … 2722 2764 case WA_CLICKACTIVE: 2723 2765 _selactivate(); 2766 2767 /+ 2768 version(NO_MDI) 2769 { 2770 } 2771 else 2772 { 2773 if(isMdiContainer) 2774 { 2775 auto amc = getActiveMdiChild(); 2776 if(amc) 2777 amc._selactivate(); 2778 } 2779 } 2780 +/ 2724 2781 break; 2725 2782 2726 2783 case WA_INACTIVE: 2784 /+ 2785 version(NO_MDI) 2786 { 2787 } 2788 else 2789 { 2790 if(isMdiContainer) 2791 { 2792 auto amc = getActiveMdiChild(); 2793 if(amc) 2794 amc._seldeactivate(); 2795 } 2796 } 2797 +/ 2798 2727 2799 _seldeactivate(); 2728 2800 break; … … 2898 2970 { 2899 2971 HWND hwfocus = GetFocus(); 2900 if(IsChild(form.handle, hwfocus)) 2972 // Don't need _isNonMdiChild here; mdistuff excludes MDI stuff. 2973 if(hwfocus != form._lastSel && IsChild(form.handle, hwfocus)) 2901 2974 form._lastSel = hwfocus; // ? 2902 2975 }
