Make sure imported rating and visibility are within limits.

The "visibility" value in MacDive XML files could be a random
string, while it's a value of 0-5 in Subsurface.  Importing an
illegal value (such as "11m") resulted in a segfault from
libpangocairo and an "Invalid UTF-8 string passed to
pango_layout_set_text()".

[Dirk Hohndel: fixed int * vs. int issue]

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Fix segfault pressing Menu key

Pierre wrote: "On my keyboard I have a key on the right side
of the space bar, between the alt+gr key and the right ctrl
which most of the time emulates the right mouse click.
If I press this button on subsurface, I end up with:

   Segmentation fault (core dumped)

This whatever the selection and nicely always reproducible."

This patch doesn't make the key work, but it fixes the segfault.

Reported-by: Pierre-Yves Chibon <pingou@pingoured.fr>
Debugged-and-acked-by: Sergey Starosek <sergey.starosek@gmail.com>
Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Enable to key 'Esc' to close the map view

This commit makes the behavior consistent between the map window and the yearly
statistics window. Both can now be closed by just pressing the 'Esc' key.

Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Properly destroy the cairo context when we're done with it

Henrik reports that on OSX, not destroying the cairo context results in
a corrupted profile display.  It seems to just leak memory on Linux.

For gtk3, the cairo context is embedded in the GtkDrawable, for gtk2 we
need to create and destroy it appropriately.  Although maybe we could
just make it static instead of creating/destroying it all the time.

Anyway, this goes back to the old cairo destroy logic for gtk2.

Reported-and-analyzed-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>