freeciv: Update 2.5 version to 2.5.0-RC1

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
This commit is contained in:
Marko Lindqvist
2015-02-21 19:31:40 +02:00
parent b11e644b25
commit a1327b3f38
2 changed files with 2 additions and 138 deletions

View File

@@ -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
{

View File

@@ -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"