[WINECFG] add unmanaged windows configuration

Robert Reif reif at earthlink.net
Wed Dec 21 19:01:49 CST 2005


Unmanaged windows configuration was removed from
winecfg a few years back with no explanation. Dialog
based programs that have menus need this setting to work
properly. This patch adds it back to winecfg. 
-------------- next part --------------
Index: programs/winecfg/En.rc
===================================================================
RCS file: /home/wine/wine/programs/winecfg/En.rc,v
retrieving revision 1.57
diff -p -u -r1.57 En.rc
--- programs/winecfg/En.rc	21 Dec 2005 20:28:55 -0000	1.57
+++ programs/winecfg/En.rc	22 Dec 2005 00:55:02 -0000
@@ -65,28 +65,31 @@ BEGIN
     LTEXT	    "Screen color depth: ",IDC_STATIC,8,10,70,30
     COMBOBOX	    IDC_SCREEN_DEPTH,80,8,170,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    GROUPBOX        " Window settings ",IDC_STATIC,8,25,244,110
+    GROUPBOX        " Window settings ",IDC_STATIC,8,25,244,180
 
     CONTROL	    "Allow DirectX apps to stop the mouse leaving their window",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
     CONTROL	    "Enable desktop double buffering",IDC_DOUBLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,230,8
+    LTEXT 	    "If windows are managed by your window manager, then they will have the standard borders, they will respect your virtual desktop and appear in your window list. \n\nIf the windows are unmanaged, they will be disconnected from your window manager. This will mean the windows do not integrate as closely with your desktop, but the emulation will be more accurate so it can help some programs to work better.",
+    		    IDC_STATIC,15,58,228,80
+    CONTROL	    "Allow the window manager to control the windows",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,132,230,8
     
     /* FIXME: the wording of this explanation could be a lot better */
     LTEXT           "You can choose to emulate a windows desktop, where all the windows are confined to one 'virtual screen', or you can have the windows placed on your standard desktop.",
-                    IDC_STATIC,15,73,228,28
-    LTEXT           "Desktop size:",IDC_DESKTOP_SIZE,15,115,44,8,WS_DISABLED
-    LTEXT           "X",IDC_DESKTOP_BY,108,115,8,8,WS_DISABLED
+                    IDC_STATIC,15,146,228,28
+    LTEXT           "Desktop size:",IDC_DESKTOP_SIZE,15,188,44,8,WS_DISABLED
+    LTEXT           "X",IDC_DESKTOP_BY,108,188,8,8,WS_DISABLED
     CONTROL         "Emulate a virtual desktop",IDC_ENABLE_DESKTOP,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,15,100,230,10
+                    BS_AUTOCHECKBOX | WS_TABSTOP,15,173,230,10
 		    
-    EDITTEXT        IDC_DESKTOP_WIDTH,64,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
-    EDITTEXT        IDC_DESKTOP_HEIGHT,117,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_WIDTH,64,188,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
+    EDITTEXT        IDC_DESKTOP_HEIGHT,117,188,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
 
-    GROUPBOX        " Direct3D ",IDC_STATIC,8,140,244,120
+    GROUPBOX        " Direct3D ",IDC_STATIC,8,210,244,50
 
-    LTEXT	    "Vertex Shader Support: ",IDC_STATIC,15,150,80,30
-    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,148,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT	    "Vertex Shader Support: ",IDC_STATIC,15,220,80,30
+    COMBOBOX	    IDC_D3D_VSHADER_MODE,100,218,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
 
-    CONTROL         "Allow Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,165,230,10
+    CONTROL         "Allow Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,237,230,10
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
@@ -219,6 +222,7 @@ BEGIN
 
     CONTROL	    "Allow DirectX apps to stop the mouse leaving their window",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
     CONTROL	    "Enable desktop double buffering",IDC_DOUBLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,230,8
+    CONTROL	    "Allow the window manager to manage created windows",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,230,8
     
     GROUPBOX        " Window settings ",IDC_STATIC,8,25,244,110
 
Index: programs/winecfg/x11drvdlg.c
===================================================================
RCS file: /home/wine/wine/programs/winecfg/x11drvdlg.c,v
retrieving revision 1.26
diff -p -u -r1.26 x11drvdlg.c
--- programs/winecfg/x11drvdlg.c	18 Oct 2005 10:35:41 -0000	1.26
+++ programs/winecfg/x11drvdlg.c	22 Dec 2005 00:55:02 -0000
@@ -154,6 +154,13 @@ static void init_dialog(HWND dialog)
     }
     HeapFree(GetProcessHeap(), 0, buf);
 
+    buf = get_reg_key(config_key, keypath("X11 Driver"), "Managed", "Y");
+    if (IS_OPTION_TRUE(*buf))
+	CheckDlgButton(dialog, IDC_ENABLE_MANAGED, BST_CHECKED);
+    else
+	CheckDlgButton(dialog, IDC_ENABLE_MANAGED, BST_UNCHECKED);
+    HeapFree(GetProcessHeap(), 0, buf);
+
     SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_RESETCONTENT, 0, 0);
     for (it = 0; NULL != D3D_VS_Modes[it]; ++it) {
       SendDlgItemMessage(dialog, IDC_D3D_VSHADER_MODE, CB_ADDSTRING, 0, (LPARAM) D3D_VS_Modes[it]);
@@ -221,6 +228,16 @@ static void on_enable_desktop_clicked(HW
     update_gui_for_desktop_mode(dialog);
 }
 
+static void on_enable_managed_clicked(HWND dialog) {
+    WINE_ERR("\n");
+    
+    if (IsDlgButtonChecked(dialog, IDC_ENABLE_MANAGED) == BST_CHECKED) {
+        set_reg_key(config_key, keypath("X11 Driver"), "Managed", "Y");
+    } else {
+        set_reg_key(config_key, keypath("X11 Driver"), "Managed", "N");
+    }
+}
+
 static void on_screen_depth_changed(HWND dialog) {
     char *newvalue = get_text(dialog, IDC_SCREEN_DEPTH);
     char *spaceIndex = strchr(newvalue, ' ');
@@ -290,6 +307,7 @@ GraphDlgProc(HWND hDlg, UINT uMsg, WPARA
 		    SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
 		    switch(LOWORD(wParam)) {
 			case IDC_ENABLE_DESKTOP: on_enable_desktop_clicked(hDlg); break;
+                        case IDC_ENABLE_MANAGED: on_enable_managed_clicked(hDlg); break;
 			case IDC_DX_MOUSE_GRAB:  on_dx_mouse_grab_clicked(hDlg); break;
                         case IDC_DOUBLE_BUFFER:  on_double_buffer_clicked(hDlg); break;
 		        case IDC_D3D_PSHADER_MODE: on_d3d_pshader_mode_clicked(hDlg); break;


More information about the wine-patches mailing list