[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freeamp-dev
Subject:    WM_CLASS and Freeamp
From:       CJ Kucera <pez () apocalyptech ! com>
Date:       2002-05-14 14:26:46
[Download RAW message or body]

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!"
pez@apocalyptech.com     |                    - Zim

["freeamp-2.1.1-wmclass.patch" (text/plain)]

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);


_______________________________________________
FreeAmp-dev@freeamp.org
http://www.freeamp.org/mailman/listinfo/freeamp-dev

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic