static void windowck_construct(XfcePanelPlugin *plugin) { WindowckPlugin *wckp; GtkWidget *refresh; /* setup transation domain */ xfce_textdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8"); /* create the plugin */ wckp = windowck_new(plugin); /* add the ebox to the panel */ gtk_container_add(GTK_CONTAINER (plugin), wckp->ebox); /* show the panel's right-click menu on this ebox */ xfce_panel_plugin_add_action_widget(plugin, wckp->ebox); // Set event handling (icon & title clicks) g_signal_connect(G_OBJECT (wckp->ebox), "button-press-event", G_CALLBACK (on_title_pressed), wckp); g_signal_connect(G_OBJECT (wckp->ebox), "button-release-event", G_CALLBACK (on_title_released), wckp); g_signal_connect(G_OBJECT (wckp->icon->eventbox), "button-release-event", G_CALLBACK (on_icon_released), wckp); /* connect plugin signals */ g_signal_connect(G_OBJECT (plugin), "free-data", G_CALLBACK (windowck_free), wckp); g_signal_connect(G_OBJECT (plugin), "save", G_CALLBACK (windowck_save), wckp); g_signal_connect(G_OBJECT (plugin), "size-changed", G_CALLBACK (windowck_size_changed), wckp); g_signal_connect(G_OBJECT (plugin), "screen-position-changed", G_CALLBACK (windowck_screen_position_changed), wckp); g_signal_connect(G_OBJECT (plugin), "orientation-changed", G_CALLBACK (windowck_orientation_changed), wckp); /* show the configure menu item and connect signal */ xfce_panel_plugin_menu_show_configure(plugin); g_signal_connect(G_OBJECT (plugin), "configure-plugin", G_CALLBACK (windowck_configure), wckp); /* show the about menu item and connect signal */ xfce_panel_plugin_menu_show_about(plugin); g_signal_connect (G_OBJECT (plugin), "about", G_CALLBACK (wck_about), "windowck-plugin"); /* add custom menu items */ refresh = show_refresh_item (plugin); g_signal_connect (G_OBJECT (refresh), "activate", G_CALLBACK (on_refresh_item_activated), wckp); /* start tracking title size */ init_title(wckp); /* start tracking title text */ wckp->win = g_slice_new0 (WckUtils); init_wnck(wckp->win, wckp->prefs->only_maximized, wckp); }
void reload_wnck (WckUtils *win, gboolean only_maximized, gpointer data) { /* disconnect all signal handlers */ wck_signal_handler_disconnect (G_OBJECT(win->controlwindow), win->ash); wck_signal_handler_disconnect (G_OBJECT(win->controlwindow), win->msh); wck_signal_handler_disconnect (G_OBJECT(win->controlwindow), win->mwh); wck_signal_handler_disconnect (G_OBJECT(win->activescreen), win->sch); wck_signal_handler_disconnect (G_OBJECT(win->activescreen), win->soh); wck_signal_handler_disconnect (G_OBJECT(win->activescreen), win->svh); wck_signal_handler_disconnect (G_OBJECT(win->activescreen), win->swh); init_wnck (win, only_maximized, data); }