--- trunk/src/map-tool.c 2009/08/04 14:07:18 44 +++ trunk/src/map-tool.c 2009/08/04 19:27:39 45 @@ -122,7 +122,7 @@ char *tooltip) { GtkWidget *button = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(button), - gtk_image_new_from_stock(icon, GTK_ICON_SIZE_MENU)); + gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON)); g_signal_connect(button, "clicked", cb, data); #ifndef USE_MAEMO gtk_widget_set_tooltip_text(button, tooltip); @@ -199,7 +199,7 @@ GdkEventButton *event, popup_context_t *context) { gboolean in = pointer_in_window(widget, event->x_root, event->y_root); - printf("overlay button press(in = %d)\n", in); + printf("overlay button press (in = %d)\n", in); return !in; } @@ -208,7 +208,7 @@ GdkEventButton *event, popup_context_t *context) { gboolean in = pointer_in_window(widget, event->x_root, event->y_root); - printf("overlay button release(in = %d)\n", in); + printf("overlay button release (in = %d)\n", in); if(!in) { printf("destroying popup\n"); @@ -250,8 +250,7 @@ gtk_widget_realize(pcontext.window); gtk_window_set_default_size(GTK_WINDOW(pcontext.window), POPUP_WIDTH, POPUP_HEIGHT); - gtk_window_resize(GTK_WINDOW(pcontext.window), - POPUP_WIDTH, POPUP_HEIGHT); + gtk_window_resize(GTK_WINDOW(pcontext.window), POPUP_WIDTH, POPUP_HEIGHT); // gtk_window_set_resizable(GTK_WINDOW(pcontext.window), FALSE); gtk_window_set_transient_for(GTK_WINDOW(pcontext.window), GTK_WINDOW(mcontext->appdata->window)); @@ -278,26 +277,31 @@ gtk_grab_add(pcontext.window); /* check whether cache is in upper or lower half of window */ - gint x, y; + gint x, y, sx, sy; osm_gps_map_geographic_to_screen(OSM_GPS_MAP(mcontext->widget), cache->pos.lat, cache->pos.lon, - &x, &y); + &sx, &sy); - printf("screen pos %d/%d\n", x, y); + printf("screen pos %d/%d\n", sx, sy); gdk_window_get_origin(mcontext->widget->window, &x, &y); - printf("window = %d/%d %d/%d\n", x, y, + printf("window = %d/%d +%d+%d %d*%d\n", x, y, mcontext->widget->allocation.x, - mcontext->widget->allocation.y); - - // gtk_window_move(GTK_WINDOW(pcontext.window), - // x + button->allocation.x, - // y + button->allocation.y - HEIGHT); + mcontext->widget->allocation.y, + mcontext->widget->allocation.width, + mcontext->widget->allocation.height + ); + + gint ax = 0, ay = 0; + if(sx > mcontext->widget->allocation.width/2) + ax = POPUP_WIDTH; + if(sy > mcontext->widget->allocation.height/2) + ay = POPUP_HEIGHT; gtk_window_move(GTK_WINDOW(pcontext.window), - 100, - 100); + x + mcontext->widget->allocation.x + sx - ax, + y + mcontext->widget->allocation.y + sy - ay); /* a frame with a vscale inside */ GtkWidget *frame = gtk_frame_new(NULL); @@ -489,7 +493,7 @@ NULL); #ifndef USE_MAEMO - gtk_window_set_default_size(GTK_WINDOW(dialog), 400, 350); + gtk_window_set_default_size(GTK_WINDOW(dialog), 640, 480); #else gtk_window_set_default_size(GTK_WINDOW(dialog), 800, 480); #endif