Commit 5f56bd94 authored by Jiri (George) Lebl's avatar Jiri (George) Lebl Committed by George Lebl

made configuration syncing do partial saves instead of always dumping

Fri Jul 17 02:45:41 1998  George Lebl  <jirka@5z.com>

        * panel.c,main.c,applet-{lib,widget}.*,menu.c, panel_config_global.c:
          made configuration syncing do partial saves instead of always
          dumping everything, everything is dumped only on end or during
          applet add/remove

        * panel-widget.c,panel.c: made button 1 events work more sanely
parent 131005e7
Fri Jul 17 02:45:41 1998 George Lebl <jirka@5z.com>
* panel.c,main.c,applet-{lib,widget}.*,menu.c, panel_config_global.c:
made configuration syncing do partial saves instead of always
dumping everything, everything is dumped only on end or during
applet add/remove
* panel-widget.c,panel.c: made button 1 events work more sanely
1998-07-16 Raja R Harinath <harinath@cs.umn.edu>
* panel.h (GPOINTER_TO_INT,GINT_TO_POINTER):
......
Fri Jul 17 02:45:41 1998 George Lebl <jirka@5z.com>
* panel.c,main.c,applet-{lib,widget}.*,menu.c, panel_config_global.c:
made configuration syncing do partial saves instead of always
dumping everything, everything is dumped only on end or during
applet add/remove
* panel-widget.c,panel.c: made button 1 events work more sanely
1998-07-16 Raja R Harinath <harinath@cs.umn.edu>
* panel.h (GPOINTER_TO_INT,GINT_TO_POINTER):
......
......@@ -100,14 +100,6 @@ panel_SOURCES = \
panel_LDADD = $(GNOME_LIBDIR) $(MICO_LIBS) $(GNOMEUI_LIBS) $(INTLLIBS)
#launcher_applet_SOURCES = \
# launcher-lib.cc \
# launcher-lib.h \
# launcher.c
#launcher_applet_LDADD = libpanel_applet.la $(GNOME_LIBDIR) $(MICO_LIBS) \
# $(GNOMEUI_LIBS) $(INTLLIBS)
data_DATA = panelrc
## Why not just make this via configure? Because @datadir@ will be
......
......@@ -582,11 +582,11 @@ gnome_panel_applet_cleanup(int applet_id)
char *
gnome_panel_sync_config (void)
gnome_panel_sync_config (int applet_id)
{
char *result;
panel_client->sync_config (cookie);
panel_client->sync_config (cookie,applet_id);
return 0;
}
......
......@@ -25,7 +25,7 @@ char *gnome_panel_applet_remove_from_panel (int applet_id);
char *gnome_panel_applet_request_glob_cfg (char **globcfgpath);
int gnome_panel_applet_get_panel_orient (int applet_id);
char *gnome_panel_quit (void);
char *gnome_panel_sync_config (void);
char *gnome_panel_sync_config (int applet_id);
int gnome_panel_applet_init_corba (void);
int gnome_panel_applet_reinit_corba (void);
void gnome_panel_applet_register_callback (int applet_id,
......
......@@ -253,9 +253,9 @@ applet_widget_remove_from_panel(AppletWidget *applet)
}
void
applet_widget_sync_config(void)
applet_widget_sync_config(AppletWidget *applet)
{
gnome_panel_sync_config();
gnome_panel_sync_config(applet->applet_id);
}
void
......
......@@ -165,7 +165,7 @@ int applet_widget_get_applet_count (void);
this should be done when you change some of your config and want
the panel to save it's config, you should NOT call this in the
session_save handler as it will result in a locked panel*/
void applet_widget_sync_config (void);
void applet_widget_sync_config (AppletWidget *applet);
/* Get the oprientation the applet should use */
PanelOrientType applet_widget_get_panel_orient (AppletWidget *applet);
......
......@@ -45,7 +45,8 @@ module GNOME {
void applet_remove_tooltip (in string cookie,
in short applet_id);
short applet_in_drag (in string cookie);
void sync_config (in string cookie);
void sync_config (in string cookie,
in short applet_id);
void quit (in string cookie);
};
......
#include <config.h>
#include <mico/gtkmico.h>
#include <mico/naming.h>
#include <gnome.h>
#include <gdk/gdkx.h>
#include "panel.h"
#include "gnome-panel.h"
#include "applet-lib.h"
#include "launcher-lib.h"
#include "panel-widget.h"
#include "mico-parse.h"
#include "cookie.h"
extern CORBA::ORB_ptr orb_ptr;
extern CORBA::BOA_ptr boa_ptr;
char *cookie;
/*every launcher must implement these*/
BEGIN_GNOME_DECLS
void start_new_launcher(const char *path);
void restart_all_launchers(void);
END_GNOME_DECLS
class Launcher_impl : virtual public GNOME::Launcher_skel {
public:
void start_new_launcher (const char *ccookie, const char *path) {
/*avoid races*/
cookie = gnome_config_private_get_string (
"/panel/Secret/cookie=");
CHECK_COOKIE ();
::start_new_launcher(path);
}
void restart_all_launchers (const char *ccookie) {
/*avoid races*/
cookie = gnome_config_private_get_string (
"/panel/Secret/cookie=");
CHECK_COOKIE ();
::restart_all_launchers ();
}
};
void
launcher_corba_gtk_main (char *str)
{
GNOME::Launcher_ptr acc = new Launcher_impl ();
char hostname [4096];
char *name;
gethostname (hostname, sizeof (hostname));
if (hostname [0] == 0)
strcpy (hostname, "unknown-host");
name = g_copy_strings ("/CORBA-servers/Launcher-", hostname,
"/DISPLAY-", getenv ("DISPLAY"), NULL);
gnome_config_set_string (name, orb_ptr->object_to_string (acc));
gnome_config_sync ();
g_free (name);
panel_initialize_corba (&orb_ptr, &boa_ptr);
orb_ptr->dispatcher (new GtkDispatcher ());
boa_ptr->impl_is_ready (CORBA::ImplementationDef::_nil());
#ifdef HAVE_MICO_ORB_RUN
orb_ptr->run ();
#endif
}
#ifndef LAUNCHER_LIB_H
#define LAUNCHER_LIB_H
BEGIN_GNOME_DECLS
void launcher_corba_gtk_main (char *str);
END_GNOME_DECLS
#endif
......@@ -48,7 +48,10 @@ static int panel_dragged = 0;
int base_panels = 0;
int config_sync_timeout = 0;
int config_changed = FALSE;
GList *applets_to_sync = NULL;
int panels_to_sync = FALSE;
int globals_to_sync = FALSE;
int need_complete_save = FALSE;
GArray *applets;
int applet_count;
......@@ -656,6 +659,9 @@ load_default_applets(void)
PANEL_UNKNOWN_APPLET_POSITION,panels->data,NULL);
queue_load_applet(EXTERN_ID,"gen_util_applet","--clock",0,0,NULL,NULL,
PANEL_UNKNOWN_APPLET_POSITION,panels->data,NULL);
/*we laoded default applets, so we didn't find the config or
something else was wrong, so do complete save when next syncing*/
need_complete_save = TRUE;
}
static void
......@@ -666,8 +672,6 @@ init_user_applets(void)
g_snprintf(buf,256,"%spanel/Config/applet_count=0",old_panel_cfg_path);
count=gnome_config_get_int(buf);
if(count<=0)
load_default_applets();
for(num=1;num<=count;num++) {
char *applet_name;
char *applet_params;
......@@ -681,6 +685,11 @@ init_user_applets(void)
g_snprintf(buf,256,"%sApplet_%d/config/", old_panel_cfg_path, num);
gnome_config_push_prefix(buf);
applet_name = gnome_config_get_string("id=Unknown");
if(strcmp(applet_name,EMPTY_ID)==0) {
g_free(applet_name);
continue;
}
applet_path = gnome_config_get_string("execpath=");
applet_params = gnome_config_get_string("parameters=");
......@@ -793,7 +802,7 @@ panel_orient_change(GtkWidget *widget,
{
panel_widget_foreach(PANEL_WIDGET(widget),orient_change_foreach,
widget);
config_changed = TRUE;
panels_to_sync = TRUE;
/*update the configuration box if it is displayed*/
update_config_orient(gtk_object_get_data(GTK_OBJECT(widget),
PANEL_PARENT));
......@@ -807,7 +816,7 @@ snapped_pos_change(GtkWidget *widget,
panel_widget_foreach(PANEL_WIDGET(SNAPPED_WIDGET(widget)->panel),
orient_change_foreach,
SNAPPED_WIDGET(widget)->panel);
config_changed = TRUE;
panels_to_sync = TRUE;
/*update the configuration box if it is displayed*/
update_config_orient(widget);
}
......@@ -820,7 +829,7 @@ corner_pos_change(GtkWidget *widget,
panel_widget_foreach(PANEL_WIDGET(CORNER_WIDGET(widget)->panel),
orient_change_foreach,
CORNER_WIDGET(widget)->panel);
config_changed = TRUE;
panels_to_sync = TRUE;
/*update the configuration box if it is displayed*/
update_config_orient(widget);
}
......@@ -856,7 +865,7 @@ panel_back_change(GtkWidget *widget,
GdkColor *color)
{
panel_widget_foreach(PANEL_WIDGET(widget),back_change_foreach,widget);
config_changed = TRUE;
panels_to_sync = TRUE;
/*update the configuration box if it is displayed*/
update_config_back(widget);
}
......@@ -916,7 +925,7 @@ snapped_state_change(GtkWidget *widget,
state_hide_foreach,
(gpointer)widget);
config_changed = TRUE;
panels_to_sync = TRUE;
return TRUE;
}
......@@ -934,7 +943,7 @@ corner_state_change(GtkWidget *widget,
state_hide_foreach,
(gpointer)widget);
config_changed = TRUE;
panels_to_sync = TRUE;
return TRUE;
}
......@@ -952,7 +961,7 @@ drawer_state_change(GtkWidget *widget,
state_hide_foreach,
(gpointer)widget);
config_changed = TRUE;
panels_to_sync = TRUE;
return TRUE;
}
......@@ -968,7 +977,7 @@ panel_size_allocate(GtkWidget *widget, GtkAllocation *alloc, gpointer data)
if(DRAWER_WIDGET(widget)->state == DRAWER_SHOWN)
reposition_drawer(drawer);
config_changed = TRUE;
panels_to_sync = TRUE;
}
return FALSE;
}
......@@ -985,8 +994,6 @@ panel_applet_added_idle(gpointer data)
orientation_change(applet_id,panel);
config_changed = TRUE;
return FALSE;
}
......@@ -1020,6 +1027,8 @@ panel_applet_added(GtkWidget *widget, GtkWidget *applet, gpointer data)
}
gtk_idle_add(panel_applet_added_idle,GINT_TO_POINTER(applet_id));
need_complete_save = TRUE;
}
static void
......@@ -1048,7 +1057,7 @@ panel_applet_removed(GtkWidget *widget, GtkWidget *applet, gpointer data)
snapped_widget_queue_pop_down(SNAPPED_WIDGET(parentw));
}
config_changed = TRUE;
need_complete_save = TRUE;
}
static void
......@@ -1288,6 +1297,10 @@ applet_move_foreach(gpointer data, gpointer user_data)
{
int applet_id = GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(data)));
AppletInfo *info = get_applet_info(applet_id);
if(g_list_find(applets_to_sync, GINT_TO_POINTER(applet_id))==NULL)
applets_to_sync = g_list_prepend(applets_to_sync,
GINT_TO_POINTER(applet_id));
if(info->type == APPLET_DRAWER) {
Drawer *drawer = info->data;
......@@ -1303,7 +1316,6 @@ static void
panel_applet_move(GtkWidget *panel,GtkWidget *widget, gpointer data)
{
applet_move_foreach(widget,NULL);
config_changed = TRUE;
}
......@@ -1613,7 +1625,10 @@ init_user_panels(void)
g_snprintf(buf,256,"%spanel/Config/panel_count=0",old_panel_cfg_path);
count=gnome_config_get_int(buf);
/*load a default snapped panel on the bottom of the screen*/
/*load a default snapped panel on the bottom of the screen,
it is required to have at least one panel for this all
to work, so this is the way we find out if there was no
config from last time*/
if(count<=0) {
panel = snapped_widget_new(SNAPPED_BOTTOM,
SNAPPED_EXPLICIT_HIDE,
......@@ -1624,6 +1639,11 @@ init_user_panels(void)
NULL);
panel_setup(panel);
gtk_widget_show(panel);
/*load up default applets on the default panel*/
load_default_applets();
return;
}
for(num=1;num<=count;num++) {
......@@ -1866,9 +1886,7 @@ sigchld_handler(int type)
static int
try_config_sync(gpointer data)
{
if(config_changed)
panel_sync_config();
config_changed = FALSE;
panel_config_sync();
return TRUE;
}
......@@ -1900,7 +1918,8 @@ main(int argc, char **argv)
client= gnome_master_client ();
gtk_signal_connect (GTK_OBJECT (client), "save_yourself",
GTK_SIGNAL_FUNC (panel_session_save), argv[0]);
GTK_SIGNAL_FUNC (panel_session_save), NULL);
gtk_object_set_data(GTK_OBJECT(client),"argv0",g_strdup(argv[0]));
gtk_signal_connect (GTK_OBJECT (client), "die",
GTK_SIGNAL_FUNC (panel_session_die), NULL);
......
......@@ -40,6 +40,12 @@ int show_small_icons = TRUE;
extern GlobalConfig global_config;
extern int config_sync_timeout;
extern int panels_to_sync;
extern GList *applets_to_sync;
extern int globals_to_sync;
extern int need_complete_save;
typedef struct _FileInfo FileInfo;
struct _FileInfo {
char *name;
......@@ -785,6 +791,7 @@ create_new_panel(GtkWidget *w,gpointer data)
break;
default: break;
}
panels_to_sync = TRUE;
}
......
......@@ -14,6 +14,12 @@
extern char *panel_cfg_path;
extern char *old_panel_cfg_path;
extern int config_sync_timeout;
extern GList *panels_to_sync;
extern GList *applets_to_sync;
extern int globals_to_sync;
extern int need_complete_save;
/* This implements the server-side of the gnome-panel.idl
* specification Currently there is no way to create new CORBA
* "instances" of the panel, as there is only one panel running on the
......@@ -129,9 +135,13 @@ public:
CHECK_COOKIE_V (FALSE);
return panel_applet_in_drag;
}
void sync_config(const char *ccookie) {
void sync_config(const char *ccookie,
CORBA::Short applet_id) {
CHECK_COOKIE ();
::panel_sync_config();
if(g_list_find(applets_to_sync,GINT_TO_POINTER(applet_id))==NULL)
applets_to_sync = g_list_prepend(applets_to_sync,
GINT_TO_POINTER(applet_id));
panel_config_sync();
}
void quit(const char *ccookie) {
CHECK_COOKIE ();
......
......@@ -1712,11 +1712,14 @@ static int
panel_sub_event_handler(GtkWidget *widget, GdkEvent *event, gpointer data)
{
switch (event->type) {
GdkEventButton *bevent;
/*pass these to the parent!*/
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
return gtk_widget_event(
listening_parent(widget->parent), event);
bevent = (GdkEventButton *)event;
if(bevent->button != 1)
return gtk_widget_event(
listening_parent(widget->parent), event);
break;
......
......@@ -34,7 +34,11 @@
GDK_POINTER_MOTION_HINT_MASK)
extern int config_sync_timeout;
extern int config_changed;
extern int panels_to_sync;
extern GList *applets_to_sync;
extern int globals_to_sync;
extern int need_complete_save;
extern GArray *applets;
extern int applet_count;
......@@ -91,27 +95,37 @@ apply_global_config(void)
}
static void
save_applet_configuration(AppletInfo *info, int *num)
save_applet_configuration(int num)
{
char path[256];
int panel_num;
PanelWidget *panel;
AppletData *ad;
AppletInfo *info = get_applet_info(num);
g_return_if_fail(info!=NULL);
g_snprintf(path,256, "%sApplet_%d/", panel_cfg_path, num+1);
gnome_config_push_prefix(path);
/*obviously no need for saving*/
if(info->type==APPLET_EXTERN_PENDING ||
info->type==APPLET_EXTERN_RESERVED ||
info->type==APPLET_EMPTY)
info->type==APPLET_EMPTY) {
gnome_config_set_string("config/id", EMPTY_ID);
gnome_config_pop_prefix();
return;
}
panel = gtk_object_get_data(GTK_OBJECT(info->widget),
PANEL_APPLET_PARENT_KEY);
ad = gtk_object_get_data(GTK_OBJECT(info->widget),PANEL_APPLET_DATA);
if((panel_num = g_list_index(panels,panel)) == -1)
if((panel_num = g_list_index(panels,panel)) == -1) {
gnome_config_set_string("config/id", EMPTY_ID);
gnome_config_pop_prefix();
return;
g_snprintf(path,256, "%sApplet_%d/", panel_cfg_path, (*num)++);
}
if(info->type==APPLET_EXTERN) {
char *globalcfg;
......@@ -127,8 +141,6 @@ save_applet_configuration(AppletInfo *info, int *num)
if(send_applet_session_save(info->id_str,info->applet_id,path,
globalcfg)) {
gnome_config_push_prefix(path);
gnome_config_set_string("config/id", EXTERN_ID);
gnome_config_set_int("config/position", ad->pos);
gnome_config_set_int("config/panel", panel_num);
......@@ -138,14 +150,10 @@ save_applet_configuration(AppletInfo *info, int *num)
gnome_config_set_bool("config/right_stick",
panel_widget_is_applet_stuck(panel,
info->widget));
gnome_config_pop_prefix();
} else
(*num)--;
gnome_config_set_string("config/id", EMPTY_ID);
g_free(globalcfg);
} else {
gnome_config_push_prefix(path);
gnome_config_set_string("config/id", info->id_str);
gnome_config_set_int("config/position", ad->pos);
gnome_config_set_int("config/panel", panel_num);
......@@ -180,9 +188,8 @@ save_applet_configuration(AppletInfo *info, int *num)
gnome_config_set_string("config/parameters",
info->params);
}
gnome_config_pop_prefix();
}
gnome_config_pop_prefix();
}
static void
......@@ -235,20 +242,12 @@ save_panel_configuration(gpointer data, gpointer user_data)
gnome_config_pop_prefix ();
}
/* This is called when the session manager requests a shutdown. It
can also be run directly when we don't detect a session manager.
We assume no interaction is done by the applets. And we ignore the
other arguments for now. Yes, this is lame. */
/* update: some SM stuff implemented but we still ignore most of the
arguments now*/
int
panel_session_save (GnomeClient *client,
int phase,
GnomeSaveStyle save_style,
int is_shutdown,
GnomeInteractStyle interact_style,
int is_fast,
gpointer client_data)
static void
do_session_save(GnomeClient *client,
int complete_sync,
GList *sync_applets,
int sync_panels,
int sync_globals)
{
int num;
char *buf;
......@@ -263,7 +262,8 @@ panel_session_save (GnomeClient *client,
panel_cfg_path = g_copy_strings("/panel.d/Session-",session_id,
"/",NULL);
new_args[0] = (char *) client_data;
new_args[0] = (char *) gtk_object_get_data(GTK_OBJECT(client),
"argv0");
new_args[1] = "--discard-session";
new_args[2] = session_id;
gnome_client_set_discard_command (client, 3, new_args);
......@@ -280,47 +280,94 @@ panel_session_save (GnomeClient *client,
g_free(buf);
/*DEBUG*/printf("Saving session: 1"); fflush(stdout);
for(num=1,i=0;i<applet_count;i++)
save_applet_configuration(&g_array_index(applets,AppletInfo,i),
&num);
if(complete_sync) {
for(i=0;i<applet_count;i++)
save_applet_configuration(i);
} else {
while(sync_applets) {
save_applet_configuration(GPOINTER_TO_INT(sync_applets->data));
sync_applets = g_list_remove_link(sync_applets,
sync_applets);
}
}
/*DEBUG*/printf(" 2"); fflush(stdout);
buf = g_copy_strings(panel_cfg_path,"panel/Config/",NULL);
gnome_config_push_prefix (buf);
g_free(buf);
gnome_config_set_int ("applet_count", num-1);
num = 1;
if(complete_sync)
gnome_config_set_int ("applet_count", applet_count);
/*DEBUG*/printf(" 3"); fflush(stdout);
g_list_foreach(panel_list, save_panel_configuration,&num);
if(complete_sync || sync_panels) {
num = 1;
g_list_foreach(panel_list, save_panel_configuration,&num);
gnome_config_set_int("panel_count",num-1);
}
/*DEBUG*/printf(" 4"); fflush(stdout);
gnome_config_set_int("panel_count",num-1);
/*global options*/
gnome_config_set_int("auto_hide_step_size",
global_config.auto_hide_step_size);
gnome_config_set_int("explicit_hide_step_size",
global_config.explicit_hide_step_size);
gnome_config_set_int("drawer_step_size",
global_config.drawer_step_size);
gnome_config_set_int("minimized_size", global_config.minimized_size);
gnome_config_set_int("minimize_delay", global_config.minimize_delay);
gnome_config_set_int("movement_type",
(int)global_config.movement_type);
gnome_config_set_bool("tooltips_enabled",
global_config.tooltips_enabled);
gnome_config_set_bool("show_small_icons",
global_config.show_small_icons);
gnome_config_set_bool("prompt_for_logout",
global_config.prompt_for_logout);
gnome_config_set_bool("disable_animations",
global_config.disable_animations);
if(complete_sync || sync_globals) {
/*global options*/
gnome_config_set_int("auto_hide_step_size",
global_config.auto_hide_step_size);
gnome_config_set_int("explicit_hide_step_size",
global_config.explicit_hide_step_size);
gnome_config_set_int("drawer_step_size",
global_config.drawer_step_size);
gnome_config_set_int("minimized_size", global_config.minimized_size);
gnome_config_set_int("minimize_delay", global_config.minimize_delay);
gnome_config_set_int("movement_type",
(int)global_config.movement_type);
gnome_config_set_bool("tooltips_enabled",
global_config.tooltips_enabled);
gnome_config_set_bool("show_small_icons",
global_config.show_small_icons);
gnome_config_set_bool("prompt_for_logout",
global_config.prompt_for_logout);
gnome_config_set_bool("disable_animations",
global_config.disable_animations);
}
gnome_config_pop_prefix ();
gnome_config_sync();
/*DEBUG*/puts("");
}
void
panel_config_sync(void)
{
if(need_complete_save ||
applets_to_sync ||
panels_to_sync ||
globals_to_sync) {
do_session_save(client,need_complete_save,
applets_to_sync,panels_to_sync,globals_to_sync);
need_complete_save = FALSE;
g_list_free(applets_to_sync);
applets_to_sync = NULL;
panels_to_sync = FALSE;
globals_to_sync = FALSE;
}
}
/* This is called when the session manager requests a shutdown. It
can also be run directly when we don't detect a session manager.
We assume no interaction is done by the applets. And we ignore the
other arguments for now. Yes, this is lame. */
/* update: some SM stuff implemented but we still ignore most of the
arguments now*/
int
panel_session_save (GnomeClient *client,
int phase,
GnomeSaveStyle save_style,
int is_shutdown,
GnomeInteractStyle interact_style,
int is_fast,
gpointer client_data)
{
do_session_save(client,TRUE,NULL,FALSE,FALSE);
/* Always successful. */
return TRUE;
}
......@@ -355,19 +402,6 @@ panel_session_die (GnomeClient *client,
}
/*save ourselves*/
void
panel_sync_config(void)
{
if (! GNOME_CLIENT_CONNECTED (client)) {
panel_session_save (client, 1, GNOME_SAVE_BOTH, 0,
GNOME_INTERACT_NONE, 0, NULL);
} else {
gnome_client_request_save (client, GNOME_SAVE_BOTH, 0,
GNOME_INTERACT_NONE, 0, 0);
}
config_changed = FALSE;
}
static int
panel_really_logout(GtkWidget *w, int button, gpointer data)
{
......@@ -398,7 +432,7 @@ ask_next_time(GtkWidget *w,gpointer data)
{
global_config.prompt_for_logout = GTK_TOGGLE_BUTTON(w)->active!=FALSE;
config_changed = TRUE;
globals_to_sync = TRUE;
}
/* the logout function */
......@@ -898,9 +932,10 @@ applet_button_press(GtkWidget *widget,GdkEventButton *event, gpointer data)
if(event->button==3) {
if(!panel_applet_in_drag)
show_applet_menu(GPOINTER_TO_INT(data), event);
return TRUE;
}
return FALSE;
/*stop all button press events here so that they don't get to the
panel*/
return TRUE;
}
void
......
......@@ -6,6 +6,7 @@
BEGIN_GNOME_DECLS
#define EMPTY_ID "Empty" /*this applet should not be loaded*/
#define MENU_ID "Menu"
#define DRAWER_ID "Drawer"
#define LOGOUT_ID "Logout"
......@@ -105,7 +106,7 @@ int register_toy(GtkWidget *applet,
void panel_quit(void);
void panel_sync_config(void);
void panel_config_sync(void);
void apply_global_config(void);
......
......@@ -17,6 +17,11 @@
GlobalConfig temp_config;