[GRASS-SVN] r61369 - in grass/branches/releasebranch_7_0: . gui/wxpython/mapdisp lib/display

svn_grass at osgeo.org svn_grass at osgeo.org
Wed Jul 23 04:49:24 PDT 2014


Author: neteler
Date: 2014-07-23 04:49:24 -0700 (Wed, 23 Jul 2014)
New Revision: 61369

Modified:
   grass/branches/releasebranch_7_0/
   grass/branches/releasebranch_7_0/gui/wxpython/mapdisp/main.py
   grass/branches/releasebranch_7_0/lib/display/r_raster.c
Log:
wxGUI: Allow MONITOR=wx* and GRASS_RENDER_IMMEDIATE at the same time to avoid calling  display commands without MONITOR while the wx monitor is rendering. Fixes ticket #2285 (trunk, r60215)


Property changes on: grass/branches/releasebranch_7_0
___________________________________________________________________
Modified: svn:mergeinfo
   - /grass/trunk:59505,59646,60219,60278,60610,60807,60835,60936-60937,61159-61160,61165,61275,61288,61290,61292,61294,61301
   + /grass/trunk:59505,59646,60215,60219,60278,60610,60807,60835,60936-60937,61159-61160,61165,61275,61288,61290,61292,61294,61301

Modified: grass/branches/releasebranch_7_0/gui/wxpython/mapdisp/main.py
===================================================================
--- grass/branches/releasebranch_7_0/gui/wxpython/mapdisp/main.py	2014-07-23 11:45:37 UTC (rev 61368)
+++ grass/branches/releasebranch_7_0/gui/wxpython/mapdisp/main.py	2014-07-23 11:49:24 UTC (rev 61369)
@@ -194,16 +194,8 @@
 
         For input params and returned data see overridden method in Map class.
         """
-        currMon = grass.gisenv()['MONITOR']
-
-        RunCommand('g.gisenv',
-                   unset = 'MONITOR') # GRASS_RENDER_IMMEDIATE doesn't like monitors
-
         ret = Map.Render(self, *args, **kwargs)
 
-        RunCommand('g.gisenv',
-                    set = 'MONITOR=%s' % currMon)
-        
         return ret
     
     def AddLayer(self, *args, **kwargs):
@@ -211,11 +203,6 @@
 
         For input params and returned data see overridden method in Map class.
         """
-        currMon = grass.gisenv()['MONITOR']
-
-        RunCommand('g.gisenv',
-                   unset = 'MONITOR') # GRASS_RENDER_IMMEDIATE doesn't like monitors
-
         driver = UserSettings.Get(group = 'display', key = 'driver', subkey = 'type')
     
         if driver == 'png':
@@ -227,9 +214,6 @@
 
         del os.environ["GRASS_RENDER_IMMEDIATE"]
 
-        RunCommand('g.gisenv',
-                   set='MONITOR=%s' % currMon)
-
         return layer
 
 

Modified: grass/branches/releasebranch_7_0/lib/display/r_raster.c
===================================================================
--- grass/branches/releasebranch_7_0/lib/display/r_raster.c	2014-07-23 11:45:37 UTC (rev 61368)
+++ grass/branches/releasebranch_7_0/lib/display/r_raster.c	2014-07-23 11:49:24 UTC (rev 61369)
@@ -105,7 +105,11 @@
     G_debug(1, "D_open_driver():");
     p = getenv("GRASS_RENDER_IMMEDIATE");
     m = G__getenv("MONITOR");
-    if (m) {
+    
+    if (m && G_strncasecmp(m, "wx", 2) == 0) {
+	/* wx monitors always use GRASS_RENDER_IMMEDIATE. */
+	p = NULL; /* use default display driver */
+    } else if (m) {
 	char *env;
 	const char *v;
 	
@@ -115,13 +119,10 @@
 	env = NULL;
 	G_asprintf(&env, "MONITOR_%s_MAPFILE", m);
 	v = G__getenv(env);
-	if (G_strncasecmp(m, "wx", 2) == 0) 
-	    p = NULL; /* use default display driver */
-	else
-	    p = m;
-	
+	p = m;
+
 	if (v) {
-	    if (p && G_strcasecmp(p, "ps") == 0)
+	    if (G_strcasecmp(p, "ps") == 0)
 		G_putenv("GRASS_PSFILE", v);
 	    else
 		G_putenv("GRASS_PNGFILE", v);
@@ -196,9 +197,12 @@
     G_debug(1, "D_save_command(): %s", cmd);
 
     mon_name = G__getenv("MONITOR");
-    if (!mon_name)
+    if (!mon_name || /* if no monitor selected */
+	/* or wx monitor selected and display commands called by the monitor */
+	(G_strncasecmp(mon_name, "wx", 2) == 0 &&
+	 getenv("GRASS_RENDER_IMMEDIATE")))
 	return 0;
-    
+
     env = NULL;
     G_asprintf(&env, "MONITOR_%s_CMDFILE", mon_name);
     mon_cmd = G__getenv(env);



More information about the grass-commit mailing list