Size screen_physical_size;
gboolean screen_showing_desktop;
DesktopLayout screen_desktop_layout;
-char **screen_desktop_names;
+char **screen_desktop_names = NULL;
static Rect *area = NULL;
static Strut *strut = NULL;
XErrorHandler old;
pid_t pid;
int i, num_support;
- Atom *supported;
+ guint32 *supported;
running = FALSE;
old = XSetErrorHandler(another_running);
/* set the _NET_SUPPORTED_ATOMS hint */
num_support = 48;
i = 0;
- supported = g_new(Atom, num_support);
+ supported = g_new(guint32, num_support);
supported[i++] = prop_atoms.net_current_desktop;
supported[i++] = prop_atoms.net_number_of_desktops;
supported[i++] = prop_atoms.net_desktop_geometry;
g_slist_length(config_desktops_names) + 1);
for (i = 0, it = config_desktops_names; it; ++i, it = it->next)
screen_desktop_names[i] = it->data; /* dont strdup */
+ screen_desktop_names[i] = NULL;
PROP_SETSS(ob_root, net_desktop_names, screen_desktop_names);
g_free(screen_desktop_names); /* dont free the individual strings */
screen_desktop_names = NULL;
/* empty the array */
g_strfreev(screen_desktop_names);
+ screen_desktop_names = NULL;
- PROP_GETSS(ob_root, net_desktop_names, utf8, &screen_desktop_names);
-
- for (i = 0; screen_desktop_names[i] && i < screen_num_desktops; ++i);
- if (i < screen_num_desktops) {
+ if (PROP_GETSS(ob_root, net_desktop_names, utf8, &screen_desktop_names))
+ for (i = 0; screen_desktop_names[i] && i <= screen_num_desktops; ++i);
+ else
+ i = 0;
+ if (i <= screen_num_desktops) {
screen_desktop_names = g_renew(char*, screen_desktop_names,
screen_num_desktops + 1);
+ screen_desktop_names[screen_num_desktops] = NULL;
for (; i < screen_num_desktops; ++i)
screen_desktop_names[i] = g_strdup("Unnamed Desktop");
}