X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Ftint.c;h=3696911387bbff9813b4dbb796905f8c70c47cf5;hb=30db8ea2ffb03b482043ce1f95c60470ea0b8597;hp=7e373a401351994cfd4ebdf40962bc5212383247;hpb=067e29cba8a299728e6e2d9c029a049c753ae4ad;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 7e373a4..3696911 100644 --- a/src/tint.c +++ b/src/tint.c @@ -125,35 +125,18 @@ void init (int argc, char *argv[]) void cleanup() { cleanup_systray(); + stop_net(); cleanup_panel(); + cleanup_tooltip(); + cleanup_clock(); +#ifdef ENABLE_BATTERY + cleanup_battery(); +#endif 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); - if (time2_format) g_free(time2_format); -#ifdef ENABLE_BATTERY - if (bat1_font_desc) pango_font_description_free(bat1_font_desc); - if (bat2_font_desc) pango_font_description_free(bat2_font_desc); - if (battery_low_cmd) g_free(battery_low_cmd); - if (path_energy_now) g_free(path_energy_now); - if (path_energy_full) g_free(path_energy_full); - if (path_current_now) g_free(path_current_now); - if (path_status) g_free(path_status); -#endif - if (clock_lclick_command) g_free(clock_lclick_command); - if (clock_rclick_command) g_free(clock_rclick_command); if (config_path) g_free(config_path); if (thumbnail_path) g_free(thumbnail_path); @@ -294,11 +277,7 @@ void event_button_press (XEvent *e) { Panel *panel = get_panel(e->xany.window); if (!panel) return; -/* - if (wm_menu && (e->xbutton.button != 1) ) { - task_drag = click_task(panel, e->xbutton.x, e->xbutton.y); - if (!task_drag && !click_clock(panel, e->xbutton.x, e->xbutton.y) ) { - */ + task_drag = click_task(panel, e->xbutton.x, e->xbutton.y); if (wm_menu && !task_drag && !click_clock(panel, e->xbutton.x, e->xbutton.y) && (e->xbutton.button != 1) ) { @@ -423,9 +402,9 @@ void event_property_notify (XEvent *e) if (panel_mode == MULTI_DESKTOP && panel->g_taskbar.use_active) { // redraw both taskbar panel->taskbar[old_desktop].area.is_active = 0; - panel->taskbar[old_desktop].area.redraw = 1; + panel->taskbar[old_desktop].area.resize = 1; panel->taskbar[server.desktop].area.is_active = 1; - panel->taskbar[server.desktop].area.redraw = 1; + panel->taskbar[server.desktop].area.resize = 1; panel_refresh = 1; } // check ALLDESKTOP task => resize taskbar @@ -608,7 +587,10 @@ void event_configure_notify (Window win) // change in root window (xrandr) if (win == server.root_win) { get_monitors(); + init_config(); + config_read_file (config_path); init_panel(); + cleanup_config(); return; } @@ -666,7 +648,7 @@ void event_timer() // update battery #ifdef ENABLE_BATTERY - if (panel1[0].battery.area.on_screen) { + if (battery_enabled) { update_battery(); for (i=0 ; i < nb_panel ; i++) panel1[i].battery.area.resize = 1; @@ -734,7 +716,8 @@ int main (int argc, char *argv[]) cleanup(); exit(1); } - config_finish(); + init_panel(); + cleanup_config(); if (thumbnail_path) { // usage: tint2 -j for internal use printf("file %s\n", thumbnail_path); @@ -770,6 +753,7 @@ int main (int argc, char *argv[]) break; case MotionNotify: { + if (!g_tooltip.enabled) break; Panel* panel = get_panel(e.xmotion.window); Task* task = click_task(panel, e.xmotion.x, e.xmotion.y); if (task) @@ -796,7 +780,7 @@ int main (int argc, char *argv[]) break; case ReparentNotify: - if (!systray.area.on_screen) + if (!systray_enabled) break; panel = (Panel*)systray.area.panel; if (e.xany.window == panel->main_win) // reparented to us