<URL: http://bugs.freeciv.org/Ticket/Display.html?id=35985 >

> [dmarks - Mi 21. Feb 2007, 12:59:16]:
> 
> On 2/21/07, Christian Prochaska <[EMAIL PROTECTED]> wrote:
> >
> > <URL: http://bugs.freeciv.org/Ticket/Display.html?id=35985 >
> >
> > > [dmarks - Di 20. Feb 2007, 23:11:20]:
> > >
> > > BTW, any way of forcing the win32 builds to use the executable's ICO
> > > instead of civicon.png as window manager icon? The Windows window
> > > manager can scale its native format with anti-aliasing, while the
> > > Linux-style window manager icon looks craptacular (no anti-aliasing at
> > > all) whatever you do. You can tell the difference very well, since the
> > > ICO shows up in the taskbar for a second or so while starting up,
> > > before the Freeciv code changes it to the PNG.
> > >
> > >  ~Daniel
> > >
> >
> > The attached patch makes sure that the icon of the executable is used in
> > all clients on Windows (this also solves PR#36346).
> >
> >
> 
> Nice! Does this affect the icon in the city window too?
> 
>  ~Daniel
> 

No, that was missing. Updated patch attached.

Index: client/gui-gtk-2.0/citydlg.c
===================================================================
--- client/gui-gtk-2.0/citydlg.c	(revision 12681)
+++ client/gui-gtk-2.0/citydlg.c	(working copy)
@@ -1194,8 +1194,11 @@
 
   gtk_widget_realize(pdialog->shell);
 
+  /* keep the icon of the executable on Windows (see PR#36491) */
+#ifndef WIN32_NATIVE
   gtk_window_set_icon(GTK_WINDOW(pdialog->shell),
 		sprite_get_pixbuf(get_icon_sprite(tileset, ICON_CITYDLG)));
+#endif
 
   /* Set old size. The size isn't saved in any way. */
   if (citydialog_width && citydialog_height) {
Index: client/gui-gtk-2.0/gui_main.c
===================================================================
--- client/gui-gtk-2.0/gui_main.c	(revision 12681)
+++ client/gui-gtk-2.0/gui_main.c	(working copy)
@@ -1409,9 +1409,12 @@
 
   tileset_load_tiles(tileset);
 
+  /* keep the icon of the executable on Windows (see PR#36491) */
+#ifndef WIN32_NATIVE
   /* Only call this after tileset_load_tiles is called. */
   gtk_window_set_icon(GTK_WINDOW(toplevel),
 		sprite_get_pixbuf(get_icon_sprite(tileset, ICON_FREECIV)));
+#endif
 
   setup_widgets();
   load_cursors();
Index: client/gui-gtk-2.0/mapview.c
===================================================================
--- client/gui-gtk-2.0/mapview.c	(revision 12681)
+++ client/gui-gtk-2.0/mapview.c	(working copy)
@@ -794,6 +794,9 @@
   reset_unit_table();
   blank_max_unit_size();
 
+  /* keep the icon of the executable on Windows (see PR#36491) */
+#ifndef WIN32_NATIVE
   gtk_window_set_icon(GTK_WINDOW(toplevel),
 		sprite_get_pixbuf(get_icon_sprite(tileset, ICON_FREECIV)));
+#endif
 }
Index: client/gui-win32/gui_stuff.c
===================================================================
--- client/gui-win32/gui_stuff.c	(revision 12681)
+++ client/gui-win32/gui_stuff.c	(working copy)
@@ -259,7 +259,7 @@
   wndclass->cbClsExtra=0;
   wndclass->cbWndExtra=0;
   wndclass->lpfnWndProc=(WNDPROC) layout_wnd_proc;
-  wndclass->hIcon=NULL;
+  wndclass->hIcon=LoadIcon(GetModuleHandle(NULL), "SDL_app");
   wndclass->hCursor=LoadCursor(NULL,IDC_ARROW);
   wndclass->hInstance=freecivhinst;
   wndclass->hbrBackground=CreateSolidBrush(GetSysColor(15));
Index: win32/clienticon.rc
===================================================================
--- win32/clienticon.rc	(revision 12681)
+++ win32/clienticon.rc	(working copy)
@@ -1,3 +1,4 @@
 #include <windows.h>
 
-client_icon ICON "client.ico"
+/* must be named "SDL_app" to work with the SDL client */
+SDL_app ICON "client.ico"
_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to