Howdy, all.

Many window managers use the "WM_CLASS" property to do various things
with programs (such as moving windows to their proper desktops
automatically or assigning icons, etc) - you can check the value of this
property using the X command "xprop."  The current version of Freeamp
doesn't set this value, so I put together a quick patch to enable this
behavior, which I've attached.  It applies cleanly to Freeamp 2.1.1.

It should remain consistent with the BRANDING attributes, so that
FreeAmp will report itself as "FreeAmp", whereas the Emusic version
will report itself as whatever the BRANDING string is set to in that
case.  As a result, I've had to include config.h in a few files that
previously didn't have it included.

Do with it what you will.  :)

Thanks for the great player,
CJ

-- 
WOW: Nyctitropic         |  "Let us rain some DOOM upon the filthy heads
apocalyptech.com/wow     |             of our DOOMED enemies!"
[EMAIL PROTECTED]     |                    - Zim
diff -r -u freeamp-2.1.1/ui/download/unix/src/gtkdownloadui.cpp 
freeamp-2.1.1-patched/ui/download/unix/src/gtkdownloadui.cpp
--- freeamp-2.1.1/ui/download/unix/src/gtkdownloadui.cpp        Thu Sep 28 03:08:02 
2000
+++ freeamp-2.1.1-patched/ui/download/unix/src/gtkdownloadui.cpp        Tue May 14 
+08:53:19 2002
@@ -368,6 +368,7 @@
 {
     m_downloadUI = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     gtk_window_set_title(GTK_WINDOW(m_downloadUI), BRANDING" - DownloadManager");
+    gtk_window_set_wmclass(GTK_WINDOW(m_downloadUI), BRANDING, "DownloadManager");
     gtk_signal_connect(GTK_OBJECT(m_downloadUI), "destroy",
                        GTK_SIGNAL_FUNC(toggle_vis_internal), this);
     gtk_container_set_border_width(GTK_CONTAINER(m_downloadUI), 5);
diff -r -u freeamp-2.1.1/ui/freeamp/unix/src/GTKMessageDialog.cpp 
freeamp-2.1.1-patched/ui/freeamp/unix/src/GTKMessageDialog.cpp
--- freeamp-2.1.1/ui/freeamp/unix/src/GTKMessageDialog.cpp      Fri Jun  2 10:30:29 
2000
+++ freeamp-2.1.1-patched/ui/freeamp/unix/src/GTKMessageDialog.cpp      Tue May 14 
+09:09:40 2002
@@ -21,6 +21,8 @@
    $Id: GTKMessageDialog.cpp,v 1.9 2000/06/02 15:30:29 ijr Exp $
 ____________________________________________________________________________*/ 
 
+#include "config.h"
+
 #include <gtk/gtk.h>
 #include <unistd.h>
 
@@ -104,6 +106,7 @@
     gtk_signal_connect(GTK_OBJECT(window), "delete_event",
                        GTK_SIGNAL_FUNC(kill_me), &iRet);
     gtk_window_set_title(GTK_WINDOW(window), oTitle.c_str());
+    gtk_window_set_wmclass(GTK_WINDOW(window), BRANDING, BRANDING);
     gtk_container_set_border_width(GTK_CONTAINER(window), 5);
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 
diff -r -u freeamp-2.1.1/ui/freeamp/unix/src/GTKPreferenceWindow.cpp 
freeamp-2.1.1-patched/ui/freeamp/unix/src/GTKPreferenceWindow.cpp
--- freeamp-2.1.1/ui/freeamp/unix/src/GTKPreferenceWindow.cpp   Tue Oct 16 00:03:41 
2001
+++ freeamp-2.1.1-patched/ui/freeamp/unix/src/GTKPreferenceWindow.cpp   Tue May 14 
+08:57:54 2002
@@ -204,6 +204,7 @@
     gtk_signal_connect(GTK_OBJECT(mainWindow), "destroy",
                        GTK_SIGNAL_FUNC(pref_destroy), this);
     gtk_window_set_title(GTK_WINDOW(mainWindow), BRANDING" - Preferences");
+    gtk_window_set_wmclass(GTK_WINDOW(mainWindow), BRANDING, "Preferences");
 
     GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
     gtk_container_add(GTK_CONTAINER(mainWindow), vbox);
diff -r -u freeamp-2.1.1/ui/freeamp/unix/src/GTKWindow.cpp 
freeamp-2.1.1-patched/ui/freeamp/unix/src/GTKWindow.cpp
--- freeamp-2.1.1/ui/freeamp/unix/src/GTKWindow.cpp     Mon Apr 16 20:51:14 2001
+++ freeamp-2.1.1-patched/ui/freeamp/unix/src/GTKWindow.cpp     Tue May 14 09:03:48 
+2002
@@ -21,6 +21,8 @@
    $Id: GTKWindow.cpp,v 1.39 2001/04/17 01:51:14 robert Exp $
 ____________________________________________________________________________*/ 
 
+#include "config.h"
+
 #include <stdio.h>
 #include <unistd.h>
 #include "facontext.h"
@@ -212,6 +214,7 @@
     mainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     gtk_widget_set_app_paintable(mainWindow, TRUE);
     gtk_window_set_title(GTK_WINDOW(mainWindow), BRANDING);
+    gtk_window_set_wmclass(GTK_WINDOW(mainWindow), BRANDING, BRANDING);
     gtk_window_set_policy(GTK_WINDOW(mainWindow), TRUE, TRUE, TRUE);
     gtk_widget_set_events(mainWindow, GDK_SUBSTRUCTURE_MASK | GDK_STRUCTURE_MASK
                           | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK |
diff -r -u freeamp-2.1.1/ui/musicbrowser/unix/src/gtkmessagedialog.cpp 
freeamp-2.1.1-patched/ui/musicbrowser/unix/src/gtkmessagedialog.cpp
--- freeamp-2.1.1/ui/musicbrowser/unix/src/gtkmessagedialog.cpp Thu Sep 14 06:00:22 
2000
+++ freeamp-2.1.1-patched/ui/musicbrowser/unix/src/gtkmessagedialog.cpp Tue May 14 
+09:08:04 2002
@@ -21,6 +21,8 @@
    $Id: gtkmessagedialog.cpp,v 1.7 2000/09/14 11:00:22 ijr Exp $
 ____________________________________________________________________________*/ 
 
+#include "config.h"
+
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 #include <unistd.h>
@@ -156,6 +158,7 @@
     gtk_signal_connect(GTK_OBJECT(window), "destroy",
                        GTK_SIGNAL_FUNC(message_destroy), (gpointer)inMain);
     gtk_window_set_title(GTK_WINDOW(window), oTitle.c_str());
+    gtk_window_set_wmclass(GTK_WINDOW(window), BRANDING, BRANDING);
     gtk_container_set_border_width(GTK_CONTAINER(window), 5);
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  
diff -r -u freeamp-2.1.1/ui/musicbrowser/unix/src/gtkmusicbrowser.cpp 
freeamp-2.1.1-patched/ui/musicbrowser/unix/src/gtkmusicbrowser.cpp
--- freeamp-2.1.1/ui/musicbrowser/unix/src/gtkmusicbrowser.cpp  Mon Dec 10 14:41:54 
2001
+++ freeamp-2.1.1-patched/ui/musicbrowser/unix/src/gtkmusicbrowser.cpp  Tue May 14 
+09:08:37 2002
@@ -559,6 +559,7 @@
     gtk_signal_connect(GTK_OBJECT(window), "delete_event",
                        GTK_SIGNAL_FUNC(add_new_kill), &iRet);
     gtk_window_set_title(GTK_WINDOW(window), "Add a New Stream");
+    gtk_window_set_wmclass(GTK_WINDOW(window), BRANDING, "NewStream");
     gtk_container_set_border_width(GTK_CONTAINER(window), 5);
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 
@@ -968,6 +969,7 @@
             titlestr += string("Editing playlist ") + m_currentListName;
     }
     gtk_window_set_title(GTK_WINDOW(musicBrowser), titlestr.c_str());
+    gtk_window_set_wmclass(GTK_WINDOW(musicBrowser), BRANDING, "Playlist");
     gtk_window_set_policy(GTK_WINDOW(musicBrowser), TRUE, TRUE, FALSE);
     gtk_signal_connect(GTK_OBJECT(musicBrowser), "delete_event",
                        GTK_SIGNAL_FUNC(toggle_vis_delete_event), this);
diff -r -u freeamp-2.1.1/ui/musicbrowser/unix/src/infoeditor.cpp 
freeamp-2.1.1-patched/ui/musicbrowser/unix/src/infoeditor.cpp
--- freeamp-2.1.1/ui/musicbrowser/unix/src/infoeditor.cpp       Thu Apr 12 21:28:10 
2001
+++ freeamp-2.1.1-patched/ui/musicbrowser/unix/src/infoeditor.cpp       Tue May 14 
+09:00:56 2002
@@ -264,6 +264,7 @@
 
    m_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(m_window), BRANDING" - Edit Track Info");
+   gtk_window_set_wmclass(GTK_WINDOW(m_window), BRANDING, "TrackInfo");
    gtk_signal_connect(GTK_OBJECT(m_window), "delete_event",
                       GTK_SIGNAL_FUNC(info_delete_event), this);
    gtk_container_set_border_width(GTK_CONTAINER(m_window), 5);
diff -r -u freeamp-2.1.1/ui/musicbrowser/unix/src/introwizard.cpp 
freeamp-2.1.1-patched/ui/musicbrowser/unix/src/introwizard.cpp
--- freeamp-2.1.1/ui/musicbrowser/unix/src/introwizard.cpp      Tue Aug 14 15:33:53 
2001
+++ freeamp-2.1.1-patched/ui/musicbrowser/unix/src/introwizard.cpp      Tue May 14 
+09:01:05 2002
@@ -731,6 +744,7 @@
 
    m_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(m_window), BRANDING" - Introduction");
+   gtk_window_set_wmclass(GTK_WINDOW(m_window), BRANDING, "Introduction");
    gtk_signal_connect(GTK_OBJECT(m_window), "destroy",
                       GTK_SIGNAL_FUNC(wiz_destroy), this);
    gtk_container_set_border_width(GTK_CONTAINER(m_window), 5);
diff -r -u freeamp-2.1.1/ui/musicbrowser/unix/src/missingfileui.cpp 
freeamp-2.1.1-patched/ui/musicbrowser/unix/src/missingfileui.cpp
--- freeamp-2.1.1/ui/musicbrowser/unix/src/missingfileui.cpp    Thu Oct 12 15:22:41 
2000
+++ freeamp-2.1.1-patched/ui/musicbrowser/unix/src/missingfileui.cpp    Tue May 14 
+08:59:47 2002
@@ -141,6 +141,7 @@
     gtk_signal_connect(GTK_OBJECT(window), "delete_event",
                        GTK_SIGNAL_FUNC(missing_kill), &iRet);
     gtk_window_set_title(GTK_WINDOW(window), "Missing File Error");
+    gtk_window_set_wmclass(GTK_WINDOW(window), BRANDING, "MissingFile");
     gtk_container_set_border_width(GTK_CONTAINER(window), 5);
     gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 
diff -r -u freeamp-2.1.1/ui/musicbrowser/unix/src/musicsearch.cpp 
freeamp-2.1.1-patched/ui/musicbrowser/unix/src/musicsearch.cpp
--- freeamp-2.1.1/ui/musicbrowser/unix/src/musicsearch.cpp      Wed Feb  7 11:13:42 
2001
+++ freeamp-2.1.1-patched/ui/musicbrowser/unix/src/musicsearch.cpp      Tue May 14 
+09:00:01 2002
@@ -158,6 +165,7 @@
 
    m_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(m_window), BRANDING" - Search For Music");
+   gtk_window_set_wmclass(GTK_WINDOW(m_window), BRANDING, "Search");
    gtk_signal_connect(GTK_OBJECT(m_window), "destroy",
                       GTK_SIGNAL_FUNC(search_destroy), this);
    gtk_container_set_border_width(GTK_CONTAINER(m_window), 5);

Reply via email to