#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
Panel *panel1 = 0;
int nb_panel;
-Imlib_Image default_icon;
+Imlib_Image default_icon = NULL;
+
void init_panel()
int i;
Panel *p;
- // load default icon
- char *path;
- const gchar * const *data_dirs;
- data_dirs = g_get_system_data_dirs ();
- for (i = 0; data_dirs[i] != NULL; i++) {
- path = g_build_filename(data_dirs[i], "tint2", "default_icon.png", NULL);
- if (g_file_test (path, G_FILE_TEST_EXISTS))
- default_icon = imlib_load_image(path);
- g_free(path);
- }
-
- //if (panel1)
- // free(panel1);
// alloc panels (one monitor or all monitors)
if (panel_config.monitor >= 0)
nb_panel = 1;
task_active = 0;
task_drag = 0;
task_urgent = 0;
- cleanup_systray();
cleanup_taskbar();
- if (default_icon) {
- imlib_context_set_image(default_icon);
- imlib_free_image();
- }
-
// font allocated once
if (panel1[0].g_task.font_desc) {
pango_font_description_free(panel1[0].g_task.font_desc);
p = &panel1[i];
free_area(&p->area);
- free_area(&p->g_task.area);
- free_area(&p->g_taskbar);
if (p->temp_pmap) {
XFreePixmap(server.dsp, p->temp_pmap);
if (panel1) free(panel1);
panel1 = 0;
-
- if (g_tooltip.window) {
- XDestroyWindow(server.dsp, g_tooltip.window);
- g_tooltip.window = 0;
- }
- if (g_tooltip.font_desc) {
- pango_font_description_free(g_tooltip.font_desc);
- g_tooltip.font_desc = 0;
- }
}
XSelectInput (server.dsp, server.root_win, PropertyChangeMask|StructureNotifyMask);
setlocale (LC_ALL, "");
+
+ // load default icon
+ int i;
+ char *path;
+ const gchar * const *data_dirs;
+ data_dirs = g_get_system_data_dirs ();
+ for (i = 0; data_dirs[i] != NULL; i++) {
+ path = g_build_filename(data_dirs[i], "tint2", "default_icon.png", NULL);
+ if (g_file_test (path, G_FILE_TEST_EXISTS))
+ default_icon = imlib_load_image(path);
+ g_free(path);
+ }
}
void cleanup()
{
+ cleanup_systray();
cleanup_panel();
+ if (default_icon) {
+ imlib_context_set_image(default_icon);
+ imlib_free_image();
+ }
+ if (g_tooltip.window) {
+ XDestroyWindow(server.dsp, g_tooltip.window);
+ g_tooltip.window = 0;
+ }
+ if (g_tooltip.font_desc) {
+ pango_font_description_free(g_tooltip.font_desc);
+ g_tooltip.font_desc = 0;
+ }
if (time1_font_desc) pango_font_description_free(time1_font_desc);
if (time2_font_desc) pango_font_description_free(time2_font_desc);
if (time1_format) g_free(time1_format);
{
// change in root window (xrandr)
if (win == server.root_win) {
- int i, old_monitor = server.nb_monitor;
+ int i, old_nb_panel = nb_panel;
get_monitors();
- if (old_monitor != server.nb_monitor) {
+ if (panel_config.monitor >= 0)
+ nb_panel = 1;
+ else
+ nb_panel = server.nb_monitor;
+
+ if (old_nb_panel != nb_panel) {
+ // changed number of panel
+ printf("changed number of panel\n");
+ //realloc(panel1, nb_panel * sizeof(Panel));
}
- for (i=0 ; i < nb_panel ; i++) {
+ for (i=0 ; i < nb_panel && i < old_nb_panel ; i++) {
Panel *panel = &panel1[i];
init_panel_size_and_position(panel);
GSList *it;
init (argc, argv);
-load_config:
+
i = 0;
init_config();
if (config_path)
switch (signal_pending) {
case SIGUSR1:
signal_pending = 0;
- goto load_config;
+ return 0;
case SIGINT:
case SIGTERM:
case SIGHUP: