File rdesktop-add-icon.patch of Package rdesktop

diff -Npur rdesktop-1.6.0.old/Makefile.in rdesktop-1.6.0.new/Makefile.in
--- rdesktop-1.6.0.old/Makefile.in	2010-02-26 14:47:06.000000000 +0800
+++ rdesktop-1.6.0.new/Makefile.in	2010-02-26 15:35:48.000000000 +0800
@@ -13,10 +13,11 @@ datadir     = @datadir@
 
 VERSION     = @PACKAGE_VERSION@
 KEYMAP_PATH = $(datadir)/rdesktop/keymaps/
+PIXMAPS_PATH   = $(datadir)/rdesktop/pixmaps/
 
 CC          = @CC@
 INSTALL     = @INSTALL@
-CFLAGS      = @CFLAGS@ @X_CFLAGS@ @DEFS@ -DKEYMAP_PATH=\"$(KEYMAP_PATH)\"
+CFLAGS      = @CFLAGS@ @X_CFLAGS@ @DEFS@ -DKEYMAP_PATH=\"$(KEYMAP_PATH)\" -DPIXMAPS_PATH=\"$(PIXMAPS_PATH)\"
 LDFLAGS     = @LDFLAGS@ @LIBS@ @X_LIBS@ @X_EXTRA_LIBS@
 STRIP       = @STRIP@
 
@@ -35,7 +36,7 @@ VNCOBJ   = vnc/rdp2vnc.o vnc/vnc.o vnc/x
 all: $(TARGETS)
 
 rdesktop: $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) $(SCARDOBJ)
-	$(CC) $(CFLAGS) -o rdesktop $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) $(SCARDOBJ) $(LDFLAGS) -lX11 -lXext
+	$(CC) $(CFLAGS) -o rdesktop $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) $(SCARDOBJ) $(LDFLAGS) -lX11 -lXext -lXpm
 
 rdp2vnc: $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ) $(SCARDOBJ) 
 	$(VNCLINK) $(CFLAGS) -o rdp2vnc $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ) $(SCARDOBJ) $(LDFLAGS) $(LDVNC)
diff -Npur rdesktop-1.6.0.old/xwin.c rdesktop-1.6.0.new/xwin.c
--- rdesktop-1.6.0.old/xwin.c	2010-02-26 14:47:06.000000000 +0800
+++ rdesktop-1.6.0.new/xwin.c	2010-02-26 15:41:48.000000000 +0800
@@ -24,6 +24,7 @@
 #include <X11/Xproto.h>
 #include <X11/Xatom.h>
 #include <X11/extensions/shape.h>
+#include <X11/xpm.h>
 #include <unistd.h>
 #include <sys/time.h>
 #include <time.h>
@@ -2056,6 +2057,9 @@ ui_create_window(void)
 	int wndx;
 	int wndy;
 	Atom protocols[2];
+        XWMHints *win_icon_hints;
+        Pixmap icon_pixmap, icon_mask_pixmap;
+	char rdesktop_icon [256];
 
 	wndx = 0;
 	wndy = 0;
@@ -2102,6 +2106,17 @@ ui_create_window(void)
 	XStoreName(g_display, g_wnd, g_title);
 	ewmh_set_wm_name(g_wnd, g_title);
 
+	snprintf (rdesktop_icon, 256, "%s%s", PIXMAPS_PATH, "rdesktop.xpm");
+        if (!XReadPixmapFile (g_display, g_wnd, rdesktop_icon, &icon_pixmap, &icon_mask_pixmap, NULL)) 
+	{
+        	win_icon_hints = XAllocWMHints();
+	        win_icon_hints->flags = IconPixmapHint | IconMaskHint;
+        	win_icon_hints->icon_pixmap = icon_pixmap;
+	        win_icon_hints->icon_mask = icon_mask_pixmap;
+	        XSetWMHints(g_display, g_wnd, win_icon_hints);
+		XFree (win_icon_hints);
+	}
+	
 	if (g_hide_decorations)
 		mwm_hide_decorations(g_wnd);
 
openSUSE Build Service is sponsored by