[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54373] trunk/blender/source/blender/ windowmanager: start blender maximized on X11 - finding screen limits taking window borders , title bar, panels & multi-monitor is quite involved - without this size if often wrong .

Campbell Barton ideasman42 at gmail.com
Thu Feb 7 15:41:08 CET 2013


Revision: 54373
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54373
Author:   campbellbarton
Date:     2013-02-07 14:41:08 +0000 (Thu, 07 Feb 2013)
Log Message:
-----------
start blender maximized on X11 - finding screen limits taking window borders, title bar, panels & multi-monitor is quite involved - without this size if often wrong.
For sizes outside the screen bounds many window managers will ignore the requested size.

Also opening maximized was default with 2.49.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_window.c
    trunk/blender/source/blender/windowmanager/wm_window.h

Modified: trunk/blender/source/blender/windowmanager/intern/wm_window.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_window.c	2013-02-07 14:15:30 UTC (rev 54372)
+++ trunk/blender/source/blender/windowmanager/intern/wm_window.c	2013-02-07 14:41:08 UTC (rev 54373)
@@ -43,6 +43,7 @@
 
 #include "GHOST_C-api.h"
 
+#include "BLI_math.h"
 #include "BLI_blenlib.h"
 #include "BLI_utildefines.h"
 
@@ -442,6 +443,13 @@
 		wm_init_state.start_x = 0;
 		wm_init_state.start_y = 0;
 #endif
+
+#if !defined(__APPLE__) && !defined(WIN32)  /* X11 */
+		/* X11, start maximized but use default same size */
+		wm_init_state.size_x = min_ii(wm_init_state.size_x, WM_WIN_INIT_SIZE_X);
+		wm_init_state.size_y = min_ii(wm_init_state.size_y, WM_WIN_INIT_SIZE_Y);
+#endif
+
 	}
 	
 	for (win = wm->windows.first; win; win = win->next) {
@@ -452,8 +460,18 @@
 				win->sizex = wm_init_state.size_x;
 				win->sizey = wm_init_state.size_y;
 
-				/* we can't properly resize a maximized window */
+#if !defined(__APPLE__) && !defined(WIN32)  /* X11 */
+				if (wm_init_state.override_flag & WIN_OVERRIDE_GEOM) {
+					/* we can't properly resize a maximized window */
+					win->windowstate = GHOST_kWindowStateNormal;
+				}
+				else {
+					/* loading without userpref, default to maximized */
+					win->windowstate = GHOST_kWindowStateMaximized;
+				}
+#else
 				win->windowstate = GHOST_kWindowStateNormal;
+#endif
 
 				wm_init_state.override_flag &= ~WIN_OVERRIDE_GEOM;
 			}

Modified: trunk/blender/source/blender/windowmanager/wm_window.h
===================================================================
--- trunk/blender/source/blender/windowmanager/wm_window.h	2013-02-07 14:15:30 UTC (rev 54372)
+++ trunk/blender/source/blender/windowmanager/wm_window.h	2013-02-07 14:41:08 UTC (rev 54373)
@@ -69,5 +69,11 @@
 int			wm_window_duplicate_exec(bContext *C, struct wmOperator *op);
 int			wm_window_fullscreen_toggle_exec(bContext *C, struct wmOperator *op);
 
+/* Initial (unmaximized) size to start with for
+ * systems that can't find it for themselves (X11).
+ * Clamped by real desktop limits */
+#define WM_WIN_INIT_SIZE_X 1800
+#define WM_WIN_INIT_SIZE_Y 1000
+
 #endif /* __WM_WINDOW_H__ */
 




More information about the Bf-blender-cvs mailing list