static gboolean cb_main_window_state_changed (GtkWidget *window, GdkEventWindowState *event, gpointer data) { GsmApplication *app = (GsmApplication *) data; auto current_page = app->settings->get_string (GSM_SETTING_CURRENT_TAB); if (event->new_window_state & GDK_WINDOW_STATE_BELOW || event->new_window_state & GDK_WINDOW_STATE_ICONIFIED || event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN) { if (current_page == "processes") { proctable_freeze (app); } else if (current_page == "resources") { load_graph_stop (app->cpu_graph); load_graph_stop (app->mem_graph); load_graph_stop (app->net_graph); } else if (current_page == "disks") { disks_freeze (app); } } else { if (current_page == "processes") { proctable_update (app); proctable_thaw (app); } else if (current_page == "resources") { load_graph_start (app->cpu_graph); load_graph_start (app->mem_graph); load_graph_start (app->net_graph); } else if (current_page == "disks") { disks_update (app); disks_thaw (app); } } return FALSE; }
gint cb_user_refresh (GtkAction*, gpointer data) { ProcData * const procdata = static_cast<ProcData*>(data); proctable_update (procdata); return FALSE; }
void update_page_activities (GsmApplication *app) { const char *current_page = gtk_stack_get_visible_child_name (app->stack); if (strcmp (current_page, "processes") == 0) { GAction *search_action = g_action_map_lookup_action (G_ACTION_MAP (app->main_window), "search"); proctable_update (app); proctable_thaw (app); gtk_widget_show (GTK_WIDGET (app->end_process_button)); gtk_widget_show (GTK_WIDGET (app->search_button)); gtk_widget_show (GTK_WIDGET (app->process_menu_button)); update_sensitivity (app); if (g_variant_get_boolean (g_action_get_state (search_action))) gtk_widget_grab_focus (GTK_WIDGET (app->search_entry)); else gtk_widget_grab_focus (GTK_WIDGET (app->tree)); } else { proctable_freeze (app); gtk_widget_hide (GTK_WIDGET (app->end_process_button)); gtk_widget_hide (GTK_WIDGET (app->search_button)); gtk_widget_hide (GTK_WIDGET (app->process_menu_button)); update_sensitivity (app); } if (strcmp (current_page, "resources") == 0) { load_graph_start (app->cpu_graph); load_graph_start (app->mem_graph); load_graph_start (app->net_graph); } else { load_graph_stop (app->cpu_graph); load_graph_stop (app->mem_graph); load_graph_stop (app->net_graph); } if (strcmp (current_page, "disks") == 0) { disks_update (app); disks_thaw (app); } else { disks_freeze (app); } }
gint cb_timeout (gpointer data) { ProcData * const procdata = static_cast<ProcData*>(data); guint new_interval; proctable_update (procdata); if (procdata->smooth_refresh->get(new_interval)) { procdata->timeout = g_timeout_add(new_interval, cb_timeout, procdata); return FALSE; } return TRUE; }
void sys__exit(int exitcode) { struct addrspace *as; struct proc *p = curproc; /* for now, just include this to keep the compiler from complaining about an unused variable */ //(void) exitcode; #if OPT_A2 proctable_update(proctable, curproc,_MKWAIT_EXIT (exitcode)); #endif DEBUG(DB_SYSCALL,"Syscall: _exit(%d)\n",exitcode); KASSERT(curproc->p_addrspace != NULL); as_deactivate(); /* * clear p_addrspace before calling as_destroy. Otherwise if * as_destroy sleeps (which is quite possible) when we :* come back we'll be calling as_activate on a * half-destroyed address space. This tends to be * messily fatal. */ as = curproc_setas(NULL); as_destroy(as); /* detach this thread from its process */ /* note: curproc cannot be used after this call */ proc_remthread(curthread); /* if this is the last user process in the system, proc_destroy() will wake up the kernel menu thread */ proc_destroy(p); thread_exit(); /* thread_exit() does not return, so we should never get here */ panic("return from thread_exit in sys_exit\n"); }
static void on_activate_refresh (GSimpleAction *, GVariant *, gpointer data) { GsmApplication *app = (GsmApplication *) data; proctable_update (app); }