[GRASS-dev] [GRASS GIS] #3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons

#3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons
------------------------------------+-------------------------
Reporter: hellik | Owner: grass-dev@…
     Type: defect | Status: new
Priority: blocker | Milestone: 7.8.0
Component: wxGUI | Version: svn-trunk
Keywords: python3, py3, wingrass | CPU: x86-64
Platform: MSWindows |
------------------------------------+-------------------------
tested with

{{{
System Info
GRASS version: 7.7.dev
Code revision: 5249e44ac
Build date: 2019-07-24
Build platform: x86_64-w64-mingw32
GDAL: 2.4.1
PROJ.4: 5.2.0
GEOS: 3.7.2
SQLite: 3.26.0
Python: 3.7.0
wxPython: 4.0.3
Platform: Windows-10-10.0.18362-SP0 (OSGeo4W)
}}}

steps done in NC sample data set

* add elevatin as background raster
* map display -> vector digitizer
* new vector, add some additional columns in attribute table
* choosing the button ''digitize new area''
* a message pops up that no appropriate tool is choosen (screenshot will
be added)
* you have to press the button ''digitize new point'' or ''digitize new
line'', then press the button ''digitize new area''
* digitizing the area's boundary, try to close the area, but only the
boundary is digitized, no area is generated
* doing the same in winGRASS7.6.1, closing the boundary generates a new
area

a lot of warnings and errors are in the console:

{{{
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\gth
read.py", line 121, in OnDone

event.ondone(event)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\ren
der.py", line 469, in OnRenderDone

self.updateProgress.emit(layer=self.layer)
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\ren
der.py", line 743, in ReportProgress

self.renderDone.emit()
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\ren
der.py", line 650, in OnRenderDone

raise GException(_("Rendering failed: %s" % msg))
core.gcmd
.
GException
:
Rendering failed: Expecting 807x466 image but got 807x501
image.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 856, in OnSelectMap

self.StartEditing(self.layers[selection])
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 922, in StartEditing

self.EnableAll()
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\gui_core
\toolbars.py", line 223, in EnableAll

for item in self._toolbarData():
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 268, in _toolbarData

return self._getToolbarData(data)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\gui_core
\toolbars.py", line 233, in _getToolbarData

retData.append(self._defineTool(*args))
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\gui_core
\toolbars.py", line 241, in _defineTool

return (name, icon.GetBitmap(),
   File
"C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 391, in OnAddAreaTool

self.OnAddArea(event)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 369, in OnAddArea

self.addArea, self.icons['addArea'].GetBitmap())
   File
"C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 391, in OnAddAreaTool

self.OnAddArea(event)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 369, in OnAddArea

self.addArea, self.icons['addArea'].GetBitmap())
   File
"C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Editing of vector map <mytest4@user1> successfully finished
Building topology for vector map <mytest4@user1>...
Registering primitives...
Building areas...
Attaching islands...
Attaching centroids...
}}}

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons
----------------------+------------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.0
Component: wxGUI | Version: svn-trunk
Resolution: | Keywords: python3, py3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+------------------------------------
Changes (by hellik):

* Attachment "message_digitize_new_area.PNG" added.

area digitizing message

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons
----------------------+------------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.0
Component: wxGUI | Version: svn-trunk
Resolution: | Keywords: python3, py3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+------------------------------------

Comment (by hellik):

see also ticket #3871

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:1&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons
----------------------+------------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.0
Component: wxGUI | Version: svn-trunk
Resolution: | Keywords: python3, py3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+------------------------------------

Comment (by annakrat):

This is probably specific to non-english locale on windows, it's some
wxPython issue.

Could you try this?

{{{

--- a/gui/wxpython/wxgui.py
+++ b/gui/wxpython/wxgui.py
@@ -164,7 +164,7 @@ def main(argv=None):

      # register GUI PID
      registerPid(os.getpid())
-
+ app.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
      app.MainLoop()

  if __name__ == "__main__":
}}}

Does it help? Any unintended consequences?

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:2&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons
----------------------+------------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.0
Component: wxGUI | Version: svn-trunk
Resolution: | Keywords: python3, py3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+------------------------------------

Comment (by hellik):

Replying to [comment:2 annakrat]:
> This is probably specific to non-english locale on windows, it's some
wxPython issue.

yes, it is a non-english locale on windows.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:3&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons
----------------------+------------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.0
Component: wxGUI | Version: svn-trunk
Resolution: | Keywords: python3, py3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+------------------------------------

Comment (by hellik):

Replying to [comment:2 annakrat]:
> This is probably specific to non-english locale on windows, it's some
wxPython issue.
>
> Could you try this?
>
> {{{
>
> --- a/gui/wxpython/wxgui.py
> +++ b/gui/wxpython/wxgui.py
> @@ -164,7 +164,7 @@ def main(argv=None):
>
> # register GUI PID
> registerPid(os.getpid())
> -
> + app.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
> app.MainLoop()
>
> if __name__ == "__main__":
> }}}
>
> Does it help? Any unintended consequences?

locally change, no change; still not able to digitize an area

{{{
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\gth
read.py", line 121, in OnDone

event.ondone(event)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\ren
der.py", line 469, in OnRenderDone

self.updateProgress.emit(layer=self.layer)
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\ren
der.py", line 743, in ReportProgress

self.renderDone.emit()
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass77\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\core\ren
der.py", line 650, in OnRenderDone

raise GException(_("Rendering failed: %s" % msg))
core.gcmd
.
GException
:
Rendering failed: Expecting 807x466 image but got 807x501
image.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 856, in OnSelectMap

self.StartEditing(self.layers[selection])
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 922, in StartEditing

self.EnableAll()
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\gui_core
\toolbars.py", line 223, in EnableAll

for item in self._toolbarData():
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 268, in _toolbarData

return self._getToolbarData(data)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\gui_core
\toolbars.py", line 233, in _getToolbarData

retData.append(self._defineTool(*args))
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\gui_core
\toolbars.py", line 241, in _defineTool

return (name, icon.GetBitmap(),
   File
"C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 391, in OnAddAreaTool

self.OnAddArea(event)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 369, in OnAddArea

self.addArea, self.icons['addArea'].GetBitmap())
   File
"C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 391, in OnAddAreaTool

self.OnAddArea(event)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 369, in OnAddArea

self.addArea, self.icons['addArea'].GetBitmap())
   File
"C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 391, in OnAddAreaTool

self.OnAddArea(event)
   File "C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\vdigit\t
oolbars.py", line 369, in OnAddArea

self.addArea, self.icons['addArea'].GetBitmap())
   File
"C:\OSGEO4~1\apps\grass\grass77\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Bearbeitung der Vektorkarte <mytest4@user1> erfolgreich abgeschlossen
Erstelle Topologie für die Vektorkarte <mytest4@user1>...
Registriere Primitive...
Erzeuge Flächen...
Füge Inseln hinzu...
Füge Zentroide hinzu...
}}}

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:4&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS Version: 7.7.dev - not able to digitize vector polygons
-----------------------+------------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: critical | Milestone: 7.8.0
Component: wxGUI | Version: svn-trunk
Resolution: | Keywords: python3, py3, wingrass
       CPU: x86-64 | Platform: MSWindows
-----------------------+------------------------------------
Changes (by neteler):

* priority: blocker => critical

Comment:

Dupe of #3871?

Please re-test with latest 7.8

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:5&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
-----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: critical | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
-----------------------+---------------------------------
Changes (by neteler):

* keywords: python3, py3, wingrass => python3, wingrass
* version: svn-trunk => git-releasebranch78

Comment:

Any news?

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:7&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
-----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: critical | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
-----------------------+---------------------------------

Comment (by hellik):

tested with

{{{
System Info
GRASS Version: 7.8.1dev
Code revision: d1c4ad132
Build date: 2019-10-22
Build platform: x86_64-w64-mingw32
GDAL: 2.4.1
PROJ: 5.2.0
GEOS: 3.8.0
SQLite: 3.29.0
Python: 3.7.0
wxPython: 4.0.3
Platform: Windows-10-10.0.18362-SP0 (OSGeo4W)
}}}

still the same behaviour as in the original description; it's not possible
to digitize areas.

quite a lot of error messages:

{{{
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\gth
read.py", line 121, in OnDone

event.ondone(event)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 469, in OnRenderDone

self.updateProgress.emit(layer=self.layer)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 743, in ReportProgress

self.renderDone.emit()
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 650, in OnRenderDone

raise GException(_("Rendering failed: %s" % msg))
core.gcmd
.
GException
:
Rendering failed: Expecting 807x466 image but got 807x501
image.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 856, in OnSelectMap

self.StartEditing(self.layers[selection])
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 922, in StartEditing

self.EnableAll()
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 223, in EnableAll

for item in self._toolbarData():
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 268, in _toolbarData

return self._getToolbarData(data)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 233, in _getToolbarData

retData.append(self._defineTool(*args))
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 241, in _defineTool

return (name, icon.GetBitmap(),
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.

}}}

{{{
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 407, in OnAddAreaMenu

self._onMenu(menuItems)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 252, in _onMenu

item.SetBitmap(icon.GetBitmap(self.parent.iconsize))
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 96, in GetBitmap

image = wx.Image(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.

}}}

{{{
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\gth
read.py", line 121, in OnDone

event.ondone(event)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 469, in OnRenderDone

self.updateProgress.emit(layer=self.layer)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 743, in ReportProgress

self.renderDone.emit()
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 650, in OnRenderDone

raise GException(_("Rendering failed: %s" % msg))
core.gcmd
.
GException
:
Rendering failed: Expecting 807x466 image but got 807x501
image.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 856, in OnSelectMap

self.StartEditing(self.layers[selection])
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 922, in StartEditing

self.EnableAll()
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 223, in EnableAll

for item in self._toolbarData():
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 268, in _toolbarData

return self._getToolbarData(data)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 233, in _getToolbarData

retData.append(self._defineTool(*args))
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 241, in _defineTool

return (name, icon.GetBitmap(),
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\lmgr\lay
ertree.py", line 460, in OnLayerContextMenu

item.SetBitmap(MetaIcon(img='layer-
remove').GetBitmap(self.bmpsize))
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 96, in GetBitmap

image = wx.Image(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\lmgr\lay
ertree.py", line 460, in OnLayerContextMenu

item.SetBitmap(MetaIcon(img='layer-
remove').GetBitmap(self.bmpsize))
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 96, in GetBitmap

image = wx.Image(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 391, in OnAddAreaTool

self.OnAddArea(event)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 369, in OnAddArea

self.addArea, self.icons['addArea'].GetBitmap())
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.

}}}

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:8&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+---------------------------------
Changes (by hellik):

* priority: critical => blocker

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:9&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+---------------------------------

Comment (by hellik):

Replying to [comment:2 annakrat]:
> This is probably specific to non-english locale on windows, it's some
wxPython issue.
>
> Could you try this?
>
> {{{
>
> --- a/gui/wxpython/wxgui.py
> +++ b/gui/wxpython/wxgui.py
> @@ -164,7 +164,7 @@ def main(argv=None):
>
> # register GUI PID
> registerPid(os.getpid())
> -
> + app.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
> app.MainLoop()
>
> if __name__ == "__main__":
> }}}
>
> Does it help? Any unintended consequences?

patch locally applied to

{{{
GRASS Version: 7.8.1dev
Code revision: d1c4ad132
Build date: 2019-10-22
Build platform: x86_64-w64-mingw32
GDAL: 2.4.1
PROJ: 5.2.0
GEOS: 3.8.0
SQLite: 3.29.0
Python: 3.7.0
wxPython: 4.0.3
Platform: Windows-10-10.0.18362-SP0 (OSGeo4W)
}}}

patch doesn't help to digitize areas.

{{{
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\gth
read.py", line 121, in OnDone

event.ondone(event)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 469, in OnRenderDone

self.updateProgress.emit(layer=self.layer)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 743, in ReportProgress

self.renderDone.emit()
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\signal.py", line 229, in emit

dispatcher.send(signal=self, *args, **kwargs)
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\dispatcher.py", line 349, in send

**named
   File "C:\OSGEO4~1\apps\grass\grass78\etc\python\grass\pydi
spatch\robustapply.py", line 60, in robustApply

return receiver(*arguments, **named)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\core\ren
der.py", line 650, in OnRenderDone

raise GException(_("Rendering failed: %s" % msg))
core.gcmd
.
GException
:
Rendering failed: Expecting 807x466 image but got 807x501
image.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 856, in OnSelectMap

self.StartEditing(self.layers[selection])
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 922, in StartEditing

self.EnableAll()
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 223, in EnableAll

for item in self._toolbarData():
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 268, in _toolbarData

return self._getToolbarData(data)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 233, in _getToolbarData

retData.append(self._defineTool(*args))
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\gui_core
\toolbars.py", line 241, in _defineTool

return (name, icon.GetBitmap(),
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Traceback (most recent call last):
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 391, in OnAddAreaTool

self.OnAddArea(event)
   File "C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\vdigit\t
oolbars.py", line 369, in OnAddArea

self.addArea, self.icons['addArea'].GetBitmap())
   File
"C:\OSGEO4~1\apps\grass\grass78\gui\wxpython\icons\icon.py",
line 100, in GetBitmap

bmp = wx.Bitmap(name=self.imagepath)
wx._core
.
wxAssertionError
:
C++ assertion "wxString::Format("%.3f", 1.23).find(str) !=
wxString::npos" failed at ..\..\src\common\intl.cpp(1648) in
wxLocale::GetInfo(): Decimal separator mismatch -- did you
use setlocale()?If so, use wxLocale to change the locale
instead.
Bearbeitung der Vektorkarte <mytestvect@user1> erfolgreich abgeschlossen
Erstelle Topologie für die Vektorkarte <mytestvect@user1>...
Registriere Primitive...
}}}

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:10&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+---------------------------------

Comment (by annakrat):

There are 2 issues there, this should fix one of them:
https://github.com/OSGeo/grass/pull/161

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:11&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+---------------------------------

Comment (by hellik):

Replying to [comment:11 annakrat]:
> There are 2 issues there, this should fix one of them:
> https://github.com/OSGeo/grass/pull/161
>

see https://github.com/OSGeo/grass/pull/161#issuecomment-546515647

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:12&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+---------------------------------

Comment (by annakrat):

Merged and backported. The solution to the locale problem is not ideal, we
should keep an eye on it if it causes problems.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:13&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: blocker | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+---------------------------------

Comment (by hellik):

tested with

{{{
GRASS Version: 7.8.1dev
Code revision: f5bfe545c
Build date: 2019-10-27
Build platform: x86_64-w64-mingw32
GDAL: 2.4.1
PROJ: 5.2.0
GEOS: 3.8.0
SQLite: 3.29.0
Python: 3.7.0
wxPython: 4.0.3
Platform: Windows-10-10.0.18362-SP0 (OSGeo4W)
}}}

digitizing areas works now, closing ticket.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:14&gt;
GRASS GIS <https://grass.osgeo.org>

#3882: winGRASS: not able to digitize vector polygons
----------------------+---------------------------------
  Reporter: hellik | Owner: grass-dev@…
      Type: defect | Status: closed
  Priority: blocker | Milestone: 7.8.1
Component: wxGUI | Version: git-releasebranch78
Resolution: fixed | Keywords: python3, wingrass
       CPU: x86-64 | Platform: MSWindows
----------------------+---------------------------------
Changes (by hellik):

* status: new => closed
* resolution: => fixed

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3882#comment:15&gt;
GRASS GIS <https://grass.osgeo.org>