SIGUSR1 does now a full restat of tint2

git-svn-id: http://tint2.googlecode.com/svn/trunk@424 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
thilor77
2010-04-18 14:28:45 +00:00
parent c298a39d00
commit 7ee42e8ca1
17 changed files with 108 additions and 136 deletions

View File

@@ -46,18 +46,18 @@ int mouse_tilt_right;
int panel_mode;
int wm_menu;
int panel_dock=0; // default not in the dock
int panel_layer=BOTTOM_LAYER; // default is bottom layer
int panel_dock;
int panel_layer;
int panel_position;
int panel_horizontal;
int panel_refresh;
int task_dragged=0;
int task_dragged;
int panel_autohide = 0;
int panel_autohide_show_timeout = 0;
int panel_autohide_hide_timeout = 0;
int panel_autohide_height = 5; // for vertical panels this is of course the width
int panel_strut_policy = STRUT_MINIMUM;
int panel_autohide;
int panel_autohide_show_timeout;
int panel_autohide_hide_timeout;
int panel_autohide_height;
int panel_strut_policy;
Task *task_active;
Task *task_drag;
@@ -66,18 +66,67 @@ int max_tick_urgent;
// panel's initial config
Panel panel_config;
// panels (one panel per monitor)
Panel *panel1 = 0;
int nb_panel = 0;
Panel *panel1;
int nb_panel;
GArray* backgrounds = 0;
GArray* backgrounds;
Imlib_Image default_icon = NULL;
Imlib_Image default_icon;
void autohide_hide(void* p);
void autohide_show(void* p);
void default_panel()
{
panel1 = 0;
nb_panel = 0;
default_icon = NULL;
task_active = 0;
task_drag = 0;
task_dragged = 0;
panel_autohide = 0;
panel_autohide_show_timeout = 0;
panel_autohide_hide_timeout = 0;
panel_autohide_height; // for vertical panels this is of course the width
panel_strut_policy = STRUT_MINIMUM;
panel_dock = 0; // default not in the dock
panel_layer = BOTTOM_LAYER; // default is bottom layer
wm_menu = 0;
max_tick_urgent = 7;
memset(&panel_config, 0, sizeof(Panel));
backgrounds = g_array_new(0, 0, sizeof(Background));
// append full transparency background
Background transparent_bg;
memset(&transparent_bg, 0, sizeof(Background));
g_array_append_val(backgrounds, transparent_bg);
}
void cleanup_panel()
{
if (!panel1) return;
printf("*** cleanup_panel()\n");
cleanup_taskbar();
int i;
Panel *p;
for (i=0 ; i < nb_panel ; i++) {
p = &panel1[i];
free_area(&p->area);
if (p->temp_pmap) XFreePixmap(server.dsp, p->temp_pmap);
if (p->hidden_pixmap) XFreePixmap(server.dsp, p->hidden_pixmap);
if (p->main_win) XDestroyWindow(server.dsp, p->main_win);
}
if (panel1) free(panel1);
if (backgrounds) g_array_free(backgrounds, 1);
if (panel_config.g_task.font_desc) pango_font_description_free(panel_config.g_task.font_desc);
}
void init_panel()
{
int i, old_nb_panel;
@@ -284,54 +333,6 @@ void init_panel_size_and_position(Panel *panel)
}
void cleanup_panel()
{
if (!panel1) return;
printf("*** cleanup_panel()\n");
task_active = 0;
task_drag = 0;
cleanup_taskbar();
int i;
Panel *p;
for (i=0 ; i < nb_panel ; i++) {
p = &panel1[i];
free_area(&p->area);
if (p->temp_pmap) {
XFreePixmap(server.dsp, p->temp_pmap);
p->temp_pmap = 0;
}
if (p->hidden_pixmap)
XFreePixmap(server.dsp, p->hidden_pixmap);
p->hidden_pixmap = 0;
if (p->main_win) {
XDestroyWindow(server.dsp, p->main_win);
p->main_win = 0;
}
}
if (panel1) {
free(panel1);
panel1 = 0;
nb_panel = 0;
}
if (panel_config.g_task.font_desc) {
pango_font_description_free(panel_config.g_task.font_desc);
panel_config.g_task.font_desc = 0;
}
if (backgrounds) {
g_array_free(backgrounds, 1);
backgrounds = 0;
}
}
void resize_panel(void *obj)
{
Panel *panel = (Panel*)obj;