summaryrefslogtreecommitdiff
path: root/openbox/dock.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-05-16 20:20:33 +0000
committerDana Jansens <danakj@orodu.net>2003-05-16 20:20:33 +0000
commitf17b225daadb483b8736dc0e57a9def68e770ae9 (patch)
treeb3c8a161e6aa370753e4f882a83cddc1aac351ad /openbox/dock.c
parent2efed807b39ec28b036315b3e34991bbb90b92ed (diff)
save the dock's class/name for future evil purposes!
also print names of windows being managed/unmanaged
Diffstat (limited to 'openbox/dock.c')
-rw-r--r--openbox/dock.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/openbox/dock.c b/openbox/dock.c
index 8215dcbf..e17c8913 100644
--- a/openbox/dock.c
+++ b/openbox/dock.c
@@ -1,5 +1,6 @@
#include "dock.h"
#include "screen.h"
+#include "prop.h"
#include "config.h"
#include "grab.h"
#include "openbox.h"
@@ -51,12 +52,25 @@ void dock_add(Window win, XWMHints *wmhints)
{
DockApp *app;
XWindowAttributes attrib;
+ char **data;
app = g_new0(DockApp, 1);
app->obwin.type = Window_DockApp;
app->win = win;
app->icon_win = (wmhints->flags & IconWindowHint) ?
wmhints->icon_window : win;
+
+ if (PROP_GETSS(app->win, wm_class, locale, &data)) {
+ if (data[0]) {
+ app->name = g_strdup(data[0]);
+ if (data[1])
+ app->class = g_strdup(data[1]);
+ }
+ g_strfreev(data);
+ }
+
+ if (app->name == NULL) app->name = g_strdup("");
+ if (app->class == NULL) app->class = g_strdup("");
if (XGetWindowAttributes(ob_display, app->icon_win, &attrib)) {
app->w = attrib.width;
@@ -98,7 +112,7 @@ void dock_add(Window win, XWMHints *wmhints)
g_hash_table_insert(window_map, &app->icon_win, app);
- g_message("Managed Dock App: 0x%lx", app->icon_win);
+ g_message("Managed Dock App: 0x%lx (%s)", app->icon_win, app->class);
}
void dock_remove_all()
@@ -123,8 +137,10 @@ void dock_remove(DockApp *app, gboolean reparent)
dock->dock_apps = g_list_remove(dock->dock_apps, app);
dock_configure();
- g_message("Unmanaged Dock App: 0x%lx", app->icon_win);
+ g_message("Unmanaged Dock App: 0x%lx (%s)", app->icon_win, app->class);
+ g_free(app->name);
+ g_free(app->class);
g_free(app);
}