Allow overriding WM_CLASS from the command line

Even when the program itself calls gdk_set_program_class(). There's
currently no way for this function to be called without breaking gdk's
--class command line option, because you cannot call it before
gtk_init().

https://bugzilla.gnome.org/show_bug.cgi?id=747634
This commit is contained in:
Lars Uebernickel 2015-04-10 17:18:50 +02:00 committed by Matthias Clasen
parent 9d921ec148
commit a8e5cacb91

View File

@ -130,6 +130,7 @@ static int gdk_initialized = 0; /* 1 if the library is initi
*/
static gchar *gdk_progclass = NULL;
static gboolean gdk_progclass_overridden;
static GMutex gdk_threads_mutex;
@ -208,6 +209,7 @@ static gboolean
gdk_arg_class_cb (const char *key, const char *value, gpointer user_data, GError **error)
{
gdk_set_program_class (value);
gdk_progclass_overridden = TRUE;
return TRUE;
}
@ -1025,10 +1027,16 @@ gdk_get_program_class (void)
* Sets the program class. The X11 backend uses the program class to set
* the class name part of the `WM_CLASS` property on
* toplevel windows; see the ICCCM.
*
* The program class can still be overridden with the --class command
* line option.
*/
void
gdk_set_program_class (const char *program_class)
{
if (gdk_progclass_overridden)
return;
g_free (gdk_progclass);
gdk_progclass = g_strdup (program_class);