I spent a whole day figure this out, but i tought i will share the fix, save other people's time who have the same problem:
simply add this javascript to pages where gmap is loaded from tabs and set body tag's onload to call fixgmap():
function fixgmap(){
function fixgmapclicked(){
for(prop in Drupal.gmaps.map.maps){
Drupal.gmaps.map.maps[prop].gmap2.checkResize()
}
}
$(document).ready(function() {
$("#tabs-middle").tabs();
$('#tabs-middle')
.bind('tabsshow', fixgmapclicked);
});
}
I hope it will help and save someone's time:)