From a1327b3f385cfabc185e63f5d092eaaaada4309c Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Sat, 21 Feb 2015 19:31:40 +0200 Subject: [PATCH] freeciv: Update 2.5 version to 2.5.0-RC1 Signed-off-by: Marko Lindqvist --- .../freeciv/IntroScreenDimensionsGtk3-2.patch | 132 ------------------ ...iv_2.5.0-beta2.bb => freeciv_2.5.0-RC1.bb} | 8 +- 2 files changed, 2 insertions(+), 138 deletions(-) delete mode 100644 recipes-games/freeciv/freeciv/IntroScreenDimensionsGtk3-2.patch rename recipes-games/freeciv/{freeciv_2.5.0-beta2.bb => freeciv_2.5.0-RC1.bb} (66%) diff --git a/recipes-games/freeciv/freeciv/IntroScreenDimensionsGtk3-2.patch b/recipes-games/freeciv/freeciv/IntroScreenDimensionsGtk3-2.patch deleted file mode 100644 index ffcd753..0000000 --- a/recipes-games/freeciv/freeciv/IntroScreenDimensionsGtk3-2.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff -Nurd -X.diff_ignore freeciv/client/gui-gtk-3.0/gui_main.c freeciv/client/gui-gtk-3.0/gui_main.c ---- freeciv/client/gui-gtk-3.0/gui_main.c 2014-09-16 23:53:39.830014392 +0300 -+++ freeciv/client/gui-gtk-3.0/gui_main.c 2014-11-23 01:32:49.707591376 +0200 -@@ -2218,3 +2218,31 @@ - { - gui_gtk3_allied_chat_only = gtk_toggle_button_get_active(button); - } -+ -+/************************************************************************** -+ Return width of the default screen -+**************************************************************************/ -+int screen_width(void) -+{ -+ GdkScreen *screen = gdk_screen_get_default(); -+ -+ if (screen == NULL) { -+ return 0; -+ } -+ -+ return gdk_screen_get_width(screen); -+} -+ -+/************************************************************************** -+ Return height of the default screen -+**************************************************************************/ -+int screen_height(void) -+{ -+ GdkScreen *screen = gdk_screen_get_default(); -+ -+ if (screen == NULL) { -+ return 0; -+ } -+ -+ return gdk_screen_get_height(screen); -+} -diff -Nurd -X.diff_ignore freeciv/client/gui-gtk-3.0/gui_main.h freeciv/client/gui-gtk-3.0/gui_main.h ---- freeciv/client/gui-gtk-3.0/gui_main.h 2014-03-22 13:45:17.773688733 +0200 -+++ freeciv/client/gui-gtk-3.0/gui_main.h 2014-11-23 01:32:49.719591376 +0200 -@@ -75,4 +75,7 @@ - void quit_gtk_main(void); - void refresh_chat_buttons(void); - -+int screen_width(void); -+int screen_height(void); -+ - #endif /* FC__GUI_MAIN_H */ -diff -Nurd -X.diff_ignore freeciv/client/gui-gtk-3.0/pages.c freeciv/client/gui-gtk-3.0/pages.c ---- freeciv/client/gui-gtk-3.0/pages.c 2014-08-28 20:47:59.041650258 +0300 -+++ freeciv/client/gui-gtk-3.0/pages.c 2014-11-23 02:28:43.771583967 +0200 -@@ -153,12 +153,16 @@ - /************************************************************************** - This is called whenever the intro graphic needs a graphics refresh. - **************************************************************************/ --static gboolean intro_expose(GtkWidget *w, cairo_t *cr) -+static gboolean intro_expose(GtkWidget *w, cairo_t *cr, gpointer *data) - { - static PangoLayout *layout; - static int width, height; - static bool left = FALSE; - GtkAllocation allocation; -+ struct sprite *intro = (struct sprite *)data; -+ -+ cairo_set_source_surface(cr, intro->surface, 0, 0); -+ cairo_paint(cr); - - if (!layout) { - char msgbuf[128]; -@@ -193,7 +197,7 @@ - pango_layout_get_pixel_size(layout, &width, &height); - } - gtk_widget_get_allocation(w, &allocation); -- -+ - cairo_set_source_rgb(cr, 0, 0, 0); - cairo_move_to(cr, left ? 4 : allocation.width - width - 3, - allocation.height - height - 3); -@@ -223,8 +227,12 @@ - **************************************************************************/ - GtkWidget *create_main_page(void) - { -- GtkWidget *widget, *vbox, *frame, *image, *button, *table; -+ GtkWidget *widget, *vbox, *frame, *darea, *button, *table; - GtkSizeGroup *size; -+ struct sprite *intro_in, *intro; -+ int width, height; -+ int sh; -+ int space_needed; - - size = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); - -@@ -239,10 +247,37 @@ - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_OUT); - gtk_container_add(GTK_CONTAINER(vbox), frame); - -- image = gtk_image_new_from_file(tileset_main_intro_filename(tileset)); -- g_signal_connect_after(image, "draw", -- G_CALLBACK(intro_expose), NULL); -- gtk_container_add(GTK_CONTAINER(frame), image); -+ intro_in = load_gfxfile(tileset_main_intro_filename(tileset)); -+ get_sprite_dimensions(intro_in, &width, &height); -+ sh = screen_height(); -+ -+ space_needed = 250; -+#if IS_BETA_VERSION -+ /* Beta notice takes extra space */ -+ space_needed += 50; -+#endif -+ -+ if (sh - height < space_needed) { -+ float scale; -+ -+ if (sh < (space_needed + 0.2 * height)) { -+ /* Screen is simply too small, use minimum scale */ -+ scale = 0.2; -+ } else { -+ scale = (double)(sh - space_needed) / height; -+ } -+ height *= scale; -+ width *= scale; -+ intro = sprite_scale(intro_in, width, height); -+ free_sprite(intro_in); -+ } else { -+ intro = intro_in; -+ } -+ darea = gtk_drawing_area_new(); -+ gtk_widget_set_size_request(darea, width, height); -+ g_signal_connect(darea, "draw", -+ G_CALLBACK(intro_expose), intro); -+ gtk_container_add(GTK_CONTAINER(frame), darea); - - #if IS_BETA_VERSION - { diff --git a/recipes-games/freeciv/freeciv_2.5.0-beta2.bb b/recipes-games/freeciv/freeciv_2.5.0-RC1.bb similarity index 66% rename from recipes-games/freeciv/freeciv_2.5.0-beta2.bb rename to recipes-games/freeciv/freeciv_2.5.0-RC1.bb index fc72cb9..1513b71 100644 --- a/recipes-games/freeciv/freeciv_2.5.0-beta2.bb +++ b/recipes-games/freeciv/freeciv_2.5.0-RC1.bb @@ -8,12 +8,8 @@ DEPENDS += "curl gtk+3 xz" EXTRA_OECONF += "--disable-mapimg" -SRC_URI[md5sum] = "ab652fd019b9ab8081a92016388fe0d0" -SRC_URI[sha256sum] = "9fa7d78ada7ff675ac249ab347a888dad62e49dbe4e2fc02b40c65a5169900e2" - -SRC_URI += "\ -file://IntroScreenDimensionsGtk3-2.patch \ -" +SRC_URI[md5sum] = "18679f3600b438480ac53c86bcf3ea39" +SRC_URI[sha256sum] = "11c9c63b746ff83067e0194be49f4075eef0fe099ea9b53053ebe8a96e6d8616" PACKAGES += "${PN}-gtk3"