keyboard-properties: Add a 'Preview' frame .
keyboard-properties: Add a 'Preview' frame . screensaver-properties: Make the usage of /usr/X11R6/lib/xscreensaver/ a bit more generic. Fix DPMS. Remove warnings. sound-properties: Make it apply when people click 'OK'. theme-switcher: Add a menubar & menu for people to see. Fix warnings ui-properties: Speed up startup, fix bugs (see ChangeLog). wm-properties: Work with 0 wm's listed.
This commit is contained in:
parent
b570b94516
commit
7ad35a1ed4
6 changed files with 131 additions and 72 deletions
|
@ -45,7 +45,7 @@ demo_main(int argc, char **argv, gint in_fd)
|
|||
gchar buf[256];
|
||||
Window window;
|
||||
GtkWidget *widget, *table, *hbox;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *scrolled_window, *menubar, *menu;
|
||||
GSList *group;
|
||||
gchar *titles[2] = {N_("One"),N_("Two")};
|
||||
/* just 8 short names that will serve as samples for titles in demo */
|
||||
|
@ -108,54 +108,71 @@ demo_main(int argc, char **argv, gint in_fd)
|
|||
|
||||
plug = gtk_plug_new(window);
|
||||
|
||||
table = gtk_table_new (4, 3, FALSE);
|
||||
table = gtk_table_new (5, 3, FALSE);
|
||||
gtk_container_add(GTK_CONTAINER(plug), table);
|
||||
|
||||
widget = gtk_label_new (_("Selected themes from above will be tested by previewing here."));
|
||||
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
|
||||
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
|
||||
menubar = gtk_menu_bar_new();
|
||||
gtk_table_attach (GTK_TABLE (table), menubar, 0, 3, 1, 2, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
|
||||
widget = gtk_menu_item_new_with_label(_("Submenu"));
|
||||
gtk_widget_show(widget);
|
||||
gtk_menu_bar_append(GTK_MENU_BAR(menubar), widget);
|
||||
gtk_widget_show(menubar);
|
||||
|
||||
menu = gtk_menu_new();
|
||||
gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), menu);
|
||||
widget = gtk_menu_item_new_with_label(_("Item 1"));
|
||||
gtk_widget_show(widget);
|
||||
gtk_menu_append(GTK_MENU(menu), widget);
|
||||
widget = gtk_menu_item_new_with_label(_("Another item"));
|
||||
gtk_widget_show(widget);
|
||||
gtk_menu_append(GTK_MENU(menu), widget);
|
||||
|
||||
/* column one */
|
||||
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
widget = gtk_button_new_with_label (_("Sample Button"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
widget = gtk_check_button_new_with_label (_("Sample Check Button"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
widget = gtk_entry_new_with_max_length (50);
|
||||
gtk_entry_set_text (GTK_ENTRY (widget), _("Sample Text Entry Field"));
|
||||
gtk_widget_set_usize (widget, 70, -1);
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
|
||||
/* column two */
|
||||
widget = gtk_radio_button_new_with_label (NULL, _("Radio Button 1"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
|
||||
|
||||
widget = gtk_radio_button_new_with_label (group, _("Radio Button 2"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
|
||||
widget = gtk_radio_button_new_with_label (group, _("Radio Button 3"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
|
||||
/* column three */
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
|
||||
|
||||
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 1, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 2, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
|
||||
widget = gtk_clist_new_with_titles (2, titles);
|
||||
gtk_clist_set_column_width (GTK_CLIST(widget), 0, 45);
|
||||
|
|
|
@ -45,7 +45,7 @@ demo_main(int argc, char **argv, gint in_fd)
|
|||
gchar buf[256];
|
||||
Window window;
|
||||
GtkWidget *widget, *table, *hbox;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *scrolled_window, *menubar, *menu;
|
||||
GSList *group;
|
||||
gchar *titles[2] = {N_("One"),N_("Two")};
|
||||
/* just 8 short names that will serve as samples for titles in demo */
|
||||
|
@ -108,54 +108,71 @@ demo_main(int argc, char **argv, gint in_fd)
|
|||
|
||||
plug = gtk_plug_new(window);
|
||||
|
||||
table = gtk_table_new (4, 3, FALSE);
|
||||
table = gtk_table_new (5, 3, FALSE);
|
||||
gtk_container_add(GTK_CONTAINER(plug), table);
|
||||
|
||||
widget = gtk_label_new (_("Selected themes from above will be tested by previewing here."));
|
||||
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
|
||||
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
|
||||
menubar = gtk_menu_bar_new();
|
||||
gtk_table_attach (GTK_TABLE (table), menubar, 0, 3, 1, 2, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
|
||||
widget = gtk_menu_item_new_with_label(_("Submenu"));
|
||||
gtk_widget_show(widget);
|
||||
gtk_menu_bar_append(GTK_MENU_BAR(menubar), widget);
|
||||
gtk_widget_show(menubar);
|
||||
|
||||
menu = gtk_menu_new();
|
||||
gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), menu);
|
||||
widget = gtk_menu_item_new_with_label(_("Item 1"));
|
||||
gtk_widget_show(widget);
|
||||
gtk_menu_append(GTK_MENU(menu), widget);
|
||||
widget = gtk_menu_item_new_with_label(_("Another item"));
|
||||
gtk_widget_show(widget);
|
||||
gtk_menu_append(GTK_MENU(menu), widget);
|
||||
|
||||
/* column one */
|
||||
gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
widget = gtk_button_new_with_label (_("Sample Button"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
widget = gtk_check_button_new_with_label (_("Sample Check Button"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
widget = gtk_entry_new_with_max_length (50);
|
||||
gtk_entry_set_text (GTK_ENTRY (widget), _("Sample Text Entry Field"));
|
||||
gtk_widget_set_usize (widget, 70, -1);
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL);
|
||||
|
||||
/* column two */
|
||||
widget = gtk_radio_button_new_with_label (NULL, _("Radio Button 1"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, GNOME_PAD_SMALL);
|
||||
|
||||
widget = gtk_radio_button_new_with_label (group, _("Radio Button 2"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
|
||||
widget = gtk_radio_button_new_with_label (group, _("Radio Button 3"));
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
|
||||
group = gtk_radio_button_group (GTK_RADIO_BUTTON (widget));
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
|
||||
/* column three */
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
|
||||
|
||||
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 1, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 2, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0);
|
||||
|
||||
widget = gtk_clist_new_with_titles (2, titles);
|
||||
gtk_clist_set_column_width (GTK_CLIST(widget), 0, 45);
|
||||
|
|
|
@ -164,7 +164,7 @@ install_theme_callback (GtkWidget *widget, gpointer data)
|
|||
|
||||
}
|
||||
|
||||
gint
|
||||
static gint
|
||||
delete_capplet (GtkWidget *widget, GdkEvent *event, gpointer data)
|
||||
{
|
||||
/* We don't want the toplevel window destroyed until
|
||||
|
@ -179,7 +179,7 @@ make_main(void)
|
|||
{
|
||||
void *sw, *label;
|
||||
GtkWidget *box, *hbox, *hbox2, *vbox;
|
||||
GtkWidget *text, *frame, *frame2, *button;
|
||||
GtkWidget *frame, *button;
|
||||
GtkWidget *button_vbox;
|
||||
gboolean default_used;
|
||||
|
||||
|
@ -362,7 +362,7 @@ static void
|
|||
click_try(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gchar *rc;
|
||||
gchar *dir, cmd[10240];
|
||||
gchar *dir;
|
||||
|
||||
/* if (current_theme == current_global_theme)
|
||||
return;*/
|
||||
|
@ -409,7 +409,7 @@ static void
|
|||
click_revert(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gchar *rc;
|
||||
gchar *dir, cmd[10240];
|
||||
gchar *dir;
|
||||
|
||||
widget = initial_theme;
|
||||
if (!widget)
|
||||
|
@ -460,9 +460,7 @@ click_revert(GtkWidget *widget, gpointer data)
|
|||
static void
|
||||
click_entry(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gchar *rc, *name, *new_readme, buf[1024];
|
||||
FILE *f;
|
||||
|
||||
gchar *rc, *name;
|
||||
|
||||
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
|
||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||
|
|
|
@ -164,7 +164,7 @@ install_theme_callback (GtkWidget *widget, gpointer data)
|
|||
|
||||
}
|
||||
|
||||
gint
|
||||
static gint
|
||||
delete_capplet (GtkWidget *widget, GdkEvent *event, gpointer data)
|
||||
{
|
||||
/* We don't want the toplevel window destroyed until
|
||||
|
@ -179,7 +179,7 @@ make_main(void)
|
|||
{
|
||||
void *sw, *label;
|
||||
GtkWidget *box, *hbox, *hbox2, *vbox;
|
||||
GtkWidget *text, *frame, *frame2, *button;
|
||||
GtkWidget *frame, *button;
|
||||
GtkWidget *button_vbox;
|
||||
gboolean default_used;
|
||||
|
||||
|
@ -362,7 +362,7 @@ static void
|
|||
click_try(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gchar *rc;
|
||||
gchar *dir, cmd[10240];
|
||||
gchar *dir;
|
||||
|
||||
/* if (current_theme == current_global_theme)
|
||||
return;*/
|
||||
|
@ -409,7 +409,7 @@ static void
|
|||
click_revert(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gchar *rc;
|
||||
gchar *dir, cmd[10240];
|
||||
gchar *dir;
|
||||
|
||||
widget = initial_theme;
|
||||
if (!widget)
|
||||
|
@ -460,9 +460,7 @@ click_revert(GtkWidget *widget, gpointer data)
|
|||
static void
|
||||
click_entry(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gchar *rc, *name, *new_readme, buf[1024];
|
||||
FILE *f;
|
||||
|
||||
gchar *rc, *name;
|
||||
|
||||
name = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "name");
|
||||
rc = (gchar *)gtk_object_get_data(GTK_OBJECT(widget), "rc");
|
||||
|
|
|
@ -18,10 +18,10 @@ GList *window_managers = NULL;
|
|||
static GList *window_managers_save = NULL;
|
||||
|
||||
/* Current window manager */
|
||||
static WindowManager *current_wm;
|
||||
static WindowManager *current_wm = NULL;
|
||||
|
||||
/* Window manager on startup */
|
||||
static WindowManager *current_wm_save;
|
||||
static WindowManager *current_wm_save = NULL;
|
||||
|
||||
gboolean
|
||||
is_blank (gchar *str)
|
||||
|
@ -270,10 +270,8 @@ wm_list_init (void)
|
|||
if (!current_wm && window_managers)
|
||||
current_wm = window_managers->data;
|
||||
|
||||
if (!current_wm)
|
||||
g_error ("No window manager desktops found!");
|
||||
|
||||
current_wm_save = wm_list_find (window_managers_save, current_wm->dentry->name);
|
||||
if(current_wm)
|
||||
current_wm_save = wm_list_find (window_managers_save, current_wm->dentry->name);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -282,7 +280,6 @@ wm_list_save (void)
|
|||
GList *old_files;
|
||||
GList *tmp_list;
|
||||
gchar *tempdir;
|
||||
gchar *filename;
|
||||
gchar *prefix;
|
||||
WindowManager *wm;
|
||||
|
||||
|
@ -332,9 +329,9 @@ wm_list_save (void)
|
|||
|
||||
/* Save the current window manager
|
||||
*/
|
||||
|
||||
gnome_config_set_string ("wm-properties/Config/Config/Current",
|
||||
current_wm->dentry->name);
|
||||
if(current_wm)
|
||||
gnome_config_set_string ("wm-properties/Config/Config/Current",
|
||||
current_wm->dentry->name);
|
||||
gnome_config_sync ();
|
||||
}
|
||||
|
||||
|
@ -342,7 +339,10 @@ void
|
|||
wm_list_revert (void)
|
||||
{
|
||||
GList *tmp_list;
|
||||
gchar *old_name = g_strdup (current_wm->dentry->name);
|
||||
gchar *old_name = NULL;
|
||||
|
||||
if(current_wm)
|
||||
old_name = g_strdup (current_wm->dentry->name);
|
||||
|
||||
g_list_foreach (window_managers, (GFunc)wm_free, NULL);
|
||||
g_list_free (window_managers);
|
||||
|
@ -399,6 +399,9 @@ wm_list_get_current (void)
|
|||
WindowManager *
|
||||
wm_list_get_revert (void)
|
||||
{
|
||||
return wm_list_find (window_managers, current_wm_save->dentry->name);
|
||||
if(current_wm_save)
|
||||
return wm_list_find (window_managers, current_wm_save->dentry->name);
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,10 +31,11 @@ typedef struct {
|
|||
/* vars. */
|
||||
static GtkWidget *capplet;
|
||||
static GtkWidget *delete_button;
|
||||
static GtkWidget *edit_button;
|
||||
static GtkWidget *config_button;
|
||||
static GtkWidget *clist;
|
||||
|
||||
static WindowManager *selected_wm;
|
||||
static WindowManager *selected_wm = NULL;
|
||||
|
||||
static GtkWidget *restart_dialog = NULL;
|
||||
static GtkWidget *restart_label = NULL;
|
||||
|
@ -284,7 +285,7 @@ update_gui (void)
|
|||
WindowManager *current_wm = wm_list_get_current();
|
||||
gint new_row;
|
||||
gchar *tmpstr;
|
||||
|
||||
|
||||
gtk_clist_clear (GTK_CLIST (clist));
|
||||
|
||||
in_fill = TRUE;
|
||||
|
@ -330,7 +331,18 @@ update_gui (void)
|
|||
|
||||
in_fill = FALSE;
|
||||
|
||||
gtk_widget_set_sensitive (delete_button, selected_wm->is_user);
|
||||
if(selected_wm) {
|
||||
gtk_widget_set_sensitive (edit_button, selected_wm->is_user);
|
||||
gtk_widget_set_sensitive (delete_button, selected_wm->is_user);
|
||||
} else {
|
||||
gtk_widget_set_sensitive (edit_button, FALSE);
|
||||
gtk_widget_set_sensitive (delete_button, FALSE);
|
||||
}
|
||||
|
||||
if (current_wm)
|
||||
gtk_widget_show(config_button);
|
||||
else
|
||||
gtk_widget_hide(config_button);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -428,8 +440,8 @@ restart_failure (WMResult reason)
|
|||
case STATE_CANCEL:
|
||||
msg = g_strdup_printf (_("Could not start '%s'.\n"
|
||||
"Falling back to previous window manager '%s'\n"),
|
||||
selected_wm->dentry->name,
|
||||
current_wm->dentry->name);
|
||||
selected_wm?selected_wm->dentry->name:"Unknown",
|
||||
current_wm?current_wm->dentry->name:"Unknown");
|
||||
selected_wm = current_wm;
|
||||
restart(TRUE);
|
||||
break;
|
||||
|
@ -533,14 +545,32 @@ destroy_callback (GtkWidget *widget, void *data)
|
|||
static void
|
||||
restart (gboolean force)
|
||||
{
|
||||
WindowManager *current_wm = wm_list_get_current();
|
||||
WindowManager *current_wm = wm_list_get_current(), *mywm;
|
||||
static gboolean last_try_was_twm = FALSE;
|
||||
const char *twm_argv[] = {"twm", NULL};
|
||||
const GnomeDesktopEntry twm_dentry = {"twm", "twm",
|
||||
1, (char **)twm_argv, NULL,
|
||||
NULL, NULL, 0, NULL,
|
||||
NULL, NULL, 0, 0};
|
||||
const WindowManager twm_fallback = {(GnomeDesktopEntry*)&twm_dentry, "twm", "twm", 0, 0, 1, 0};
|
||||
|
||||
if (force || current_wm != selected_wm) {
|
||||
show_restart_dialog (selected_wm->dentry->name);
|
||||
if(selected_wm) {
|
||||
last_try_was_twm = FALSE;
|
||||
mywm = selected_wm;
|
||||
} else if(!last_try_was_twm) {
|
||||
last_try_was_twm = TRUE;
|
||||
mywm = (WindowManager*)&twm_fallback;
|
||||
} else {
|
||||
restart_finalize();
|
||||
return;
|
||||
}
|
||||
|
||||
if (force || current_wm != mywm) {
|
||||
show_restart_dialog (mywm->dentry->name);
|
||||
if (state != STATE_OK && state != STATE_CANCEL)
|
||||
gtk_widget_set_sensitive (capplet, FALSE);
|
||||
restart_pending = TRUE;
|
||||
wm_restart (selected_wm,
|
||||
wm_restart (mywm,
|
||||
capplet->window,
|
||||
restart_callback,
|
||||
NULL);
|
||||
|
@ -600,16 +630,6 @@ ok_callback (void)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
do_revert (void)
|
||||
{
|
||||
wm_list_revert();
|
||||
selected_wm = wm_list_get_revert();
|
||||
if (state != STATE_CANCEL)
|
||||
update_gui();
|
||||
restart(FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
revert_callback (void)
|
||||
{
|
||||
|
@ -837,10 +857,15 @@ get_dialog_contents (WMDialog *dialog, WindowManager *wm)
|
|||
static void
|
||||
edit_dialog (void)
|
||||
{
|
||||
WMDialog *dialog = create_dialog (_("Add New Window Manager"));
|
||||
WMDialog *dialog;
|
||||
gchar *tmp;
|
||||
gint result;
|
||||
|
||||
if(!selected_wm)
|
||||
return;
|
||||
|
||||
dialog = create_dialog (_("Edit Window Manager"));
|
||||
|
||||
if (selected_wm->dentry->name)
|
||||
gtk_entry_set_text (GTK_ENTRY (dialog->name_entry), selected_wm->dentry->name);
|
||||
|
||||
|
@ -951,11 +976,13 @@ delete (void)
|
|||
|
||||
|
||||
static void
|
||||
run_config (void)
|
||||
run_config (GtkWidget *w)
|
||||
{
|
||||
WindowManager *current_wm = wm_list_get_current();
|
||||
if (current_wm->is_config_present &&
|
||||
current_wm->config_exec != NULL) {
|
||||
|
||||
if (current_wm
|
||||
&& current_wm->is_config_present
|
||||
&& current_wm->config_exec != NULL) {
|
||||
gchar *argv[4];
|
||||
|
||||
argv[0] = "/bin/sh";
|
||||
|
@ -973,7 +1000,6 @@ wm_setup (void)
|
|||
GtkWidget *hbox, *vbox, *bottom;
|
||||
GtkWidget *util_vbox;
|
||||
GtkWidget *add_button;
|
||||
GtkWidget *edit_button;
|
||||
GtkWidget *scrolled_window;
|
||||
|
||||
capplet = capplet_widget_new ();
|
||||
|
@ -1030,9 +1056,9 @@ wm_setup (void)
|
|||
|
||||
gtk_container_add (GTK_CONTAINER (capplet), vbox);
|
||||
|
||||
update_gui();
|
||||
|
||||
gtk_widget_show_all (capplet);
|
||||
|
||||
update_gui();
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue