diff options
Diffstat (limited to 'capplets/wm-properties')
-rw-r--r-- | capplets/wm-properties/ChangeLog | 138 | ||||
-rw-r--r-- | capplets/wm-properties/Makefile.am | 33 | ||||
-rw-r--r-- | capplets/wm-properties/wm-capplet.png | bin | 3047 -> 0 bytes | |||
-rw-r--r-- | capplets/wm-properties/wm-desktops/Enlightenment.desktop.in.in | 9 | ||||
-rw-r--r-- | capplets/wm-properties/wm-desktops/IceWM.desktop.in.in | 7 | ||||
-rw-r--r-- | capplets/wm-properties/wm-desktops/Makefile.am | 21 | ||||
-rw-r--r-- | capplets/wm-properties/wm-desktops/Scwm.desktop.in.in | 7 | ||||
-rw-r--r-- | capplets/wm-properties/wm-desktops/WindowMaker.desktop.in.in | 8 | ||||
-rw-r--r-- | capplets/wm-properties/wm-desktops/twm.desktop.in.in | 7 | ||||
-rw-r--r-- | capplets/wm-properties/wm-exec.c | 331 | ||||
-rw-r--r-- | capplets/wm-properties/wm-list.c | 574 | ||||
-rw-r--r-- | capplets/wm-properties/wm-properties-capplet.c | 1260 | ||||
-rw-r--r-- | capplets/wm-properties/wm-properties.glade | 0 | ||||
-rw-r--r-- | capplets/wm-properties/wm-properties.h | 63 | ||||
-rw-r--r-- | capplets/wm-properties/wm.desktop.in.in | 61 |
15 files changed, 0 insertions, 2519 deletions
diff --git a/capplets/wm-properties/ChangeLog b/capplets/wm-properties/ChangeLog deleted file mode 100644 index 607eb7e1f..000000000 --- a/capplets/wm-properties/ChangeLog +++ /dev/null @@ -1,138 +0,0 @@ -2004-10-14 Jody Goldberg <jody@gnome.org> - - * Release 2.8.1 - -2004-04-15 Jody Goldberg <jody@gnome.org> - - * Release 2.6.1 - -2004-04-01 Jody Goldberg <jody@gnome.org> - - * Release 2.6.0.3 - -2004-03-30 Jody Goldberg <jody@gnome.org> - - * Release 2.6.0.1 - -2004-03-23 Jody Goldberg <jody@gnome.org> - - * Release 2.6.0 - -2004-03-11 Jody Goldberg <jody@gnome.org> - - * Release 2.5.4 - -2004-02-13 Jody Goldberg <jody@gnome.org> - - * Release 2.5.3 - -2004-01-14 Jody Goldberg <jody@gnome.org> - - * Release 2.5.2 - -2003-12-30 Jody Goldberg <jody@gnome.org> - - * Release 2.5.1.1 - -2003-12-30 Jody Goldberg <jody@gnome.org> - - * Release 2.5.1 - -2003-10-28 Jody Goldberg <jody@gnome.org> - - * Release 2.5.0 - -2003-07-07 Jody Goldberg <jody@gnome.org> - - * Release 2.3.4 - -2003-06-24 Jody Goldberg <jody@gnome.org> - - * Release 2.3.3 - -2003-05-07 Jody Goldberg <jody@gnome.org> - - * Release 2.3.1 - -Tue Feb 4 17:09:18 2003 Jonathan Blandford <jrb@redhat.com> - - * Release 2.2.0.1 - -Tue Jan 21 01:15:14 2003 Jonathan Blandford <jrb@gnome.org> - - * Release 2.2.0 - -Thu Jan 16 02:41:09 2003 Jonathan Blandford <jrb@gnome.org> - - * Release 2.1.7 - -2003-01-10 Jody Goldberg <jody@gnome.org> - - * Release 2.1.6 - -2002-12-18 Jody Goldberg <jody@gnome.org> - - * Release 2.1.5 - -2002-11-23 Jody Goldberg <jody@gnome.org> - - * Release 2.1.3 - -2002-11-02 Jody Goldberg <jody@gnome.org> - - * Release 2.1.2 - -2002-10-21 Jody Goldberg <jody@gnome.org> - - * Release 2.1.1 - -2002-10-01 Jody Goldberg <jody@gnome.org> - - * Release 2.1.0.1 - -2002-08-21 Jody Goldberg <jody@gnome.org> - - * Release 2.1.0 - -2002-06-17 Jody Goldberg <jody@gnome.org> - - * Release 2.0.0 - -2001-12-08 Richard Hestilow <hestilow@ximian.com> - - * Port to GConf, away from libcapplet. - -2001-09-29 Richard Hestilow <hestilow@ximian.com> - - * wm-properties-capplet.c: Applied patch from drk@sgi.com - to fix bug #60822. - -2001-09-29 Richard Hestilow <hestilow@ximian.com> - - * wm-list.c (wm_list_read_dir): Check if config_tryexec is blank, - and if it is, free it and set it to NULL. - (wm_check_present): If there is no config_tryexec, fall back - on checking the path of the config_exec. Fix for bug #58306. - -2001-09-05 Abel Cheung <maddog@linux.org.hk> - - * wm.desktop.in.in: Rename zh_TW.Big5 to zh_TW . -2001-07-27 Bradford Hovinen <hovinen@ximian.com> - - * RELEASE : 1.5.2 - -2001-07-24 Chema Celorio <chema@celorio.com> - - * wm-properties-capplet.c (wm_setup): add a label and set the usize - -2001-07-20 Chema Celorio <chema@celorio.com> - - * RELEASE : 1.5.0 - -2001-07-19 Chema Celorio <chema@celorio.com> - - * wm-desktops/Makefile.am (wms): distcheck fixes - -2001-07-19 Carlos Perelló Marín <carlos@gnome-db.org> - - * wm-desktops/*.desktop: Adapted to use xml-i18n-tools diff --git a/capplets/wm-properties/Makefile.am b/capplets/wm-properties/Makefile.am deleted file mode 100644 index 43510617c..000000000 --- a/capplets/wm-properties/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -SUBDIRS = wm-desktops - -cappletname = wm -cappletgroup = "Advanced/" -bin_PROGRAMS = wm-properties-capplet - -wm_properties_capplet_LDADD = $(GNOMECC_CAPPLETS_LIBS) -wm_properties_capplet_SOURCES = \ - wm-properties.h \ - wm-properties-capplet.c \ - wm-list.c \ - wm-exec.c \ - gnome-startup.c \ - gnome-startup.h - -pixmap_DATA = - -## -## You should not need to modify anything below this line -## -@INTLTOOL_DESKTOP_RULE@ -@GNOMECC_CAPPLETS_DESKTOP_IN_RULE@ - -INCLUDES = $(GNOMECC_CAPPLETS_CFLAGS) -CLEANFILES = $(GNOMECC_CAPPLETS_CLEANFILES) -EXTRA_DIST = $(GNOMECC_CAPPLETS_EXTRA_DIST) -iconsdir = $(GNOMECC_ICONS_DIR) -Gladedir = $(GNOMECC_GLADE_DIR) -pixmapdir = $(GNOMECC_PIXMAPS_DIR) -Glade_DATA = $(cappletname)-properties.glade -icons_DATA = $(cappletname)-capplet.png -desktop = $(cappletname).desktop -all-local: $(desktop) diff --git a/capplets/wm-properties/wm-capplet.png b/capplets/wm-properties/wm-capplet.png Binary files differdeleted file mode 100644 index ef95bcd47..000000000 --- a/capplets/wm-properties/wm-capplet.png +++ /dev/null diff --git a/capplets/wm-properties/wm-desktops/Enlightenment.desktop.in.in b/capplets/wm-properties/wm-desktops/Enlightenment.desktop.in.in deleted file mode 100644 index 1d9d0a199..000000000 --- a/capplets/wm-properties/wm-desktops/Enlightenment.desktop.in.in +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -_Name=Enlightenment -Exec=enlightenment -TryExec=enlightenment - -[Window Manager] -ConfigExec=e-conf -ConfigTryExec=e-conf -SessionManaged=true diff --git a/capplets/wm-properties/wm-desktops/IceWM.desktop.in.in b/capplets/wm-properties/wm-desktops/IceWM.desktop.in.in deleted file mode 100644 index e12d1a9c0..000000000 --- a/capplets/wm-properties/wm-desktops/IceWM.desktop.in.in +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -_Name=Ice WM -Exec=icewm -TryExec=icewm - -[Window Manager] -SessionManaged=true diff --git a/capplets/wm-properties/wm-desktops/Makefile.am b/capplets/wm-properties/wm-desktops/Makefile.am deleted file mode 100644 index 18bf50b46..000000000 --- a/capplets/wm-properties/wm-desktops/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -wms = \ - Enlightenment \ - IceWM \ - Scwm \ - WindowMaker \ - twm - -desktop_files = $(wms:=.desktop) -desktop_in_files = $(desktop_files:.desktop=.desktop.in) -desktop_in_in_files = $(desktop_files:.desktop=.desktop.in.in) - -wmdatadir = $(datadir)/gnome/wm-properties -wmdata_DATA = $(desktop_files) - -EXTRA_DIST = $(desktop_in_in_files) - -$(desktop_in_files): %.desktop.in: %.desktop.in.in - sed s#Icon=#Icon=$(GNOMECC_ICONS_DIR)/# < $< > $@ - -$(desktop_files): %.desktop: %.desktop.in - $(top_builddir)/intltool-merge -d $(top_srcdir)/po $< $@ diff --git a/capplets/wm-properties/wm-desktops/Scwm.desktop.in.in b/capplets/wm-properties/wm-desktops/Scwm.desktop.in.in deleted file mode 100644 index 88e0a8c30..000000000 --- a/capplets/wm-properties/wm-desktops/Scwm.desktop.in.in +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -_Name=Scwm -Exec=scwm -TryExec=scwm - -[Window Manager] -SessionManaged=true diff --git a/capplets/wm-properties/wm-desktops/WindowMaker.desktop.in.in b/capplets/wm-properties/wm-desktops/WindowMaker.desktop.in.in deleted file mode 100644 index 7e1cde50e..000000000 --- a/capplets/wm-properties/wm-desktops/WindowMaker.desktop.in.in +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -_Name=Window Maker -Exec=wmaker -TryExec=wmaker - -[Window Manager] -SessionManaged=false -ConfigExec=/usr/X11R6/lib/GNUstep/Apps/WPrefs.app/WPrefs diff --git a/capplets/wm-properties/wm-desktops/twm.desktop.in.in b/capplets/wm-properties/wm-desktops/twm.desktop.in.in deleted file mode 100644 index 45aef35a9..000000000 --- a/capplets/wm-properties/wm-desktops/twm.desktop.in.in +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -_Name=twm -Exec=twm -TryExec=twm - -[Window Manager] -SessionManaged=false diff --git a/capplets/wm-properties/wm-exec.c b/capplets/wm-properties/wm-exec.c deleted file mode 100644 index f24fdf362..000000000 --- a/capplets/wm-properties/wm-exec.c +++ /dev/null @@ -1,331 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ -/* Copyright (C) 1998 Redhat Software Inc. - * Code available under the Gnu GPL. - * Authors: Owen Taylor <otaylor@redhat.com> - */ - -#include <gtk/gtk.h> -#include <gdk/gdkx.h> -#include <libgnome/libgnome.h> -#include "wm-properties.h" - -typedef struct _RestartInfo RestartInfo; - -struct _RestartInfo { - GnomeDesktopItem *dentry; - gint retries; - WMResultFunc callback; - gpointer data; -}; - -gboolean -wm_is_running (void) -{ - gboolean result; - guint old_mask; - XWindowAttributes attrs; - - gdk_error_trap_push (); - - XGetWindowAttributes (GDK_DISPLAY(), GDK_ROOT_WINDOW(), &attrs); - - XSelectInput (GDK_DISPLAY(), GDK_ROOT_WINDOW(), - SubstructureRedirectMask); - XSync (GDK_DISPLAY(), False); - if (gdk_error_trap_pop () == 0) { - result = FALSE; - XSelectInput (GDK_DISPLAY(), GDK_ROOT_WINDOW(), - attrs.your_event_mask); - } else - result = TRUE; - - - return result; -} - -/* Cut and paste from gnome-libs/gnome_win_hints_wm_exists, except that we - * return the xid instead of a window - */ -static Window -find_gnome_wm_window(void) -{ - Atom r_type; - int r_format; - unsigned long count; - unsigned long bytes_remain; - unsigned char *prop, *prop2; - GdkAtom cardinal_atom = gdk_atom_intern ("CARDINAL", FALSE); - - gdk_error_trap_push (); - if (XGetWindowProperty(GDK_DISPLAY(), GDK_ROOT_WINDOW(), - gdk_x11_atom_to_xatom (gdk_atom_intern ("_WIN_SUPPORTING_WM_CHECK", FALSE)), - 0, 1, False, gdk_x11_atom_to_xatom (cardinal_atom), - &r_type, &r_format, - &count, &bytes_remain, &prop) == Success && prop) - { - if (r_type == gdk_x11_atom_to_xatom (cardinal_atom) && r_format == 32 && count == 1) - { - Window n = *(long *)prop; - if (XGetWindowProperty(GDK_DISPLAY(), n, - gdk_x11_atom_to_xatom (gdk_atom_intern ("_WIN_SUPPORTING_WM_CHECK", FALSE)), - 0, 1, False, gdk_x11_atom_to_xatom (cardinal_atom), - &r_type, &r_format, &count, &bytes_remain, - &prop2) == Success && prop) - { - if (r_type == gdk_x11_atom_to_xatom (cardinal_atom) && r_format == 32 && count == 1) - { - XFree(prop); - XFree(prop2); - gdk_error_trap_pop (); - return n; - } - XFree(prop2); - } - } - XFree(prop); - } - gdk_error_trap_pop (); - return None; -} - -static Window -find_wm_window_from_client (GdkWindow *client) -{ - Window window, frame, parent, root; - Window *children; - unsigned int nchildren; - gboolean needs_pop = TRUE; - - if (!client) - return None; - - frame = None; - window = GDK_WINDOW_XWINDOW (client); - - gdk_error_trap_push (); - - while (XQueryTree (GDK_DISPLAY(), window, - &root, &parent, &children, &nchildren)) - { - if (gdk_error_trap_pop != 0) - { - needs_pop = FALSE; - break; - } - - gdk_error_trap_push (); - - if (children) - XFree(children); - - if (window == root) - break; - - if (root == parent) { - frame = window; - break; - } - window = parent; - } - - if (needs_pop) - gdk_error_trap_pop (); - - return frame; -} - -static gboolean -window_has_wm_state (Window window) -{ - Atom r_type; - int r_format; - unsigned long count; - unsigned long bytes_remain; - unsigned char *prop; - - if (XGetWindowProperty(GDK_DISPLAY(), window, - gdk_x11_atom_to_xatom (gdk_atom_intern ("WM_STATE", FALSE)), - 0, 0, False, AnyPropertyType, - &r_type, &r_format, - &count, &bytes_remain, &prop) == Success) { - - if (r_type != None) { - XFree(prop); - return TRUE; - } - } - return FALSE; -} - -static gboolean -descendent_has_wm_state (Window window) -{ - gboolean result = FALSE; - Window parent, root; - Window *children; - unsigned int nchildren; - gint i; - - if (!XQueryTree (GDK_DISPLAY(), window, - &root, &parent, &children, &nchildren)) - return FALSE; - - for (i=0; i<nchildren; i++) { - if (window_has_wm_state (children[i]) || - descendent_has_wm_state (children[i])) { - result = TRUE; - break; - } - } - - if (children) - XFree (children); - - return result; -} - -/* This function tries to find a window manager frame by - * hunting all the children of the root window - */ -static Window -find_wm_window_from_hunt (void) -{ - Window parent, root, frame; - Window *children; - unsigned int nchildren; - gint i; - - frame = None; - - gdk_error_trap_push (); - - XQueryTree (GDK_DISPLAY(), GDK_ROOT_WINDOW (), - &root, &parent, &children, &nchildren); - - /* We are looking for a window that doesn't have WIN_STATE - * set on it, but does have a child with WIN_STATE set - */ - for (i=0; i<nchildren; i++) { - if (!window_has_wm_state (children[i]) && - descendent_has_wm_state (children[i])) { - frame = children[i]; - break; - } - } - - if (children) - XFree (children); - - gdk_error_trap_pop (); - - return frame; -} - -static Window -find_wm_window (GdkWindow *client) -{ - Window wm_window = None; - - /* First, try to find a GNOME compliant WM */ - - wm_window = find_gnome_wm_window(); - - if (!wm_window) { - wm_window = find_wm_window_from_client (client); - } - - if (!wm_window) { - wm_window = find_wm_window_from_hunt (); - } - - return wm_window; -} - -static gboolean -start_timeout (gpointer data) -{ - RestartInfo *info = data; - if (wm_is_running ()) { - info->callback(WM_SUCCESS, info->data); - gnome_desktop_item_unref (info->dentry); - g_free (info); - return FALSE; - } else { - info->retries--; - if (info->retries > 0) - return TRUE; - else { - info->callback(WM_CANT_START, info->data); - gnome_desktop_item_unref (info->dentry); - g_free (info); - return FALSE; - } - } -} - -static void -start_do (RestartInfo *info) -{ - gnome_desktop_item_launch (info->dentry, 0, NULL, NULL); - - info->retries = 10; - gtk_timeout_add (1000, start_timeout, info); -} - -static gboolean -kill_timeout (gpointer data) -{ - RestartInfo *info = data; - if (!wm_is_running ()) { - start_do (info); - return FALSE; - } else { - info->retries--; - if (info->retries > 0) - return TRUE; - else { - info->callback(WM_ALREADY_RUNNING, info->data); - gnome_desktop_item_unref (info->dentry); - g_free (info); - return FALSE; - } - } -} - -void -wm_restart (WindowManager *new, - GdkWindow *client, - WMResultFunc callback, - gpointer data) -{ - Window wm_window; - RestartInfo *info; - - g_return_if_fail (new->is_present); - - info = g_new (RestartInfo, 1); - info->dentry = gnome_desktop_item_copy (new->dentry); - info->callback = callback; - info->data = data; - info->retries = 10; - - if (wm_is_running ()) { - wm_window = find_wm_window (client); - if (!wm_window) { - (*callback) (WM_ALREADY_RUNNING, data); - gnome_desktop_item_unref (info->dentry); - g_free (info); - } else { - XKillClient (GDK_DISPLAY(), wm_window); - gtk_timeout_add (1000, kill_timeout, info); - } - } else { - start_do (info); - } -} - -WindowManager * -wm_guess_current (void) -{ - return NULL; -} diff --git a/capplets/wm-properties/wm-list.c b/capplets/wm-properties/wm-list.c deleted file mode 100644 index 022971359..000000000 --- a/capplets/wm-properties/wm-list.c +++ /dev/null @@ -1,574 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ -/* Copyright (C) 1998 Redhat Software Inc. - * Code available under the Gnu GPL. - * Authors: Owen Taylor <otaylor@redhat.com>, - * Bradford Hovinen <hovinen@helixcode.com> - */ - -#include <sys/types.h> -#include <dirent.h> -#include <unistd.h> -#include <ctype.h> -#include <libgnome/libgnome.h> -#include <gconf/gconf-client.h> -#include "wm-properties.h" - -#define CONFIG_PREFIX "/desktop/gnome/applications/window_manager" - -/* Current list of window managers */ -GList *window_managers = NULL; - -/* List on startup */ -static GList *window_managers_save = NULL; - -/* Current window manager */ -static WindowManager *current_wm = NULL; - -/* Window manager on startup */ -static WindowManager *current_wm_save = NULL; - -static gboolean xml_read_bool (xmlNodePtr node); -static xmlNodePtr xml_write_bool (gchar *name, - gboolean value); - -gboolean -is_blank (gchar *str) -{ - while (*str) { - if (!isspace(*str)) - return FALSE; - str++; - } - return TRUE; -} - -static gint -wm_compare (gconstpointer a, gconstpointer b) -{ - const WindowManager *wm_a = (const WindowManager *)a; - const WindowManager *wm_b = (const WindowManager *)b; - - return g_strcasecmp (gnome_desktop_item_get_string (wm_a->dentry, GNOME_DESKTOP_ITEM_NAME), gnome_desktop_item_get_string (wm_b->dentry, GNOME_DESKTOP_ITEM_NAME)); -} - -static void -wm_free (WindowManager *wm) -{ - gnome_desktop_item_unref (wm->dentry); - g_free (wm->config_exec); - g_free (wm->config_tryexec);; - g_free (wm); -} - -void -wm_check_present (WindowManager *wm) -{ - gchar *path; - - if (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_EXEC)) { - if (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_TRY_EXEC)) { - path = gnome_is_program_in_path (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_TRY_EXEC)); - wm->is_present = (path != NULL); - if (path) - g_free (path); - } else - wm->is_present = TRUE; - } else - wm->is_present = FALSE; - - if (wm->config_exec) { - if (wm->config_tryexec) { - path = gnome_is_program_in_path (wm->config_tryexec); - wm->is_config_present = (path != NULL); - if (path) - g_free (path); - } else { - path = gnome_is_program_in_path (wm->config_exec); - wm->is_config_present = (path != NULL); - if (path) - g_free (path); - } - } else - wm->is_config_present = FALSE; - -} - -static WindowManager * -wm_copy (WindowManager *wm) -{ - WindowManager *result = g_new (WindowManager, 1); - - result->dentry = gnome_desktop_item_copy (wm->dentry); - result->config_exec = g_strdup (wm->config_exec); - result->config_tryexec = g_strdup (wm->config_tryexec); - - result->session_managed = wm->session_managed; - result->is_user = wm->is_user; - result->is_present = wm->is_present; - result->is_config_present = wm->is_config_present; - - return result; -} - - -static WindowManager * -wm_list_find (GList *list, gchar *name) -{ - GList *tmp_list = list; - while (tmp_list) { - WindowManager *wm = tmp_list->data; - if (strcmp (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_EXEC), name) == 0) - return wm; - - tmp_list = tmp_list->next; - } - - return NULL; -} - -static WindowManager * -wm_list_find_exec (GList *list, gchar *name) -{ - GList *tmp_list = list; - while (tmp_list) { - WindowManager *wm = tmp_list->data; - if (!gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_EXEC)) - continue; - if (strcmp (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_EXEC), name) == 0) - return wm; - - tmp_list = tmp_list->next; - } - - return NULL; -} - -static GList * -wm_list_find_files (gchar *directory) -{ - DIR *dir; - struct dirent *child; - GList *result = NULL; - gchar *suffix; - - dir = opendir (directory); - if (dir == NULL) - return NULL; - - while ((child = readdir (dir)) != NULL) { - /* Ignore files without .desktop suffix, and ignore - * .desktop files with no prefix - */ - suffix = child->d_name + strlen (child->d_name) - 8; - /* strlen(".desktop") == 8 */ - - if (suffix <= child->d_name || - strcmp (suffix, ".desktop") != 0) - continue; - - result = g_list_prepend (result, - g_concat_dir_and_file (directory, - child->d_name)); - } - closedir (dir); - - return result; -} - -static void -wm_list_read_dir (gchar *directory, gboolean is_user) -{ - WindowManager *wm; - GList *tmp_list; - GList *files; - gchar *prefix; - - files = wm_list_find_files (directory); - - tmp_list = files; - while (tmp_list) { - wm = g_new (WindowManager, 1); - - wm->dentry = gnome_desktop_item_new_from_file (tmp_list->data, GNOME_DESKTOP_ITEM_TYPE_APPLICATION, NULL); - gnome_desktop_item_set_entry_type (wm->dentry, GNOME_DESKTOP_ITEM_TYPE_APPLICATION); - - if (!wm->dentry) { - g_free (wm); - tmp_list = tmp_list->next; - continue; - } - - prefix = g_strconcat ("=", gnome_desktop_item_get_location (wm->dentry), "=/Window Manager/", NULL); - gnome_config_push_prefix (prefix); - g_free (prefix); - - wm->config_exec = gnome_config_get_string ("ConfigExec"); - wm->config_tryexec = gnome_config_get_string ("ConfigTryExec"); - wm->session_managed = gnome_config_get_bool ("SessionManaged=0"); - wm->is_user = is_user; - - if (wm->config_exec && is_blank (wm->config_exec)) { - g_free (wm->config_exec); - wm->config_exec = NULL; - } - - if (wm->config_tryexec && is_blank (wm->config_tryexec)) { - g_free (wm->config_tryexec); - wm->config_tryexec = NULL; - } - - gnome_config_pop_prefix (); - - wm_check_present (wm); - - if (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME) && gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_EXEC) && - (wm->is_user || wm->is_present)) { - window_managers = - g_list_insert_sorted (window_managers, - wm, - wm_compare); - window_managers_save = - g_list_insert_sorted (window_managers_save, - wm_copy (wm), - wm_compare); - } else { - wm_free (wm); - } - - - tmp_list = tmp_list->next; - } - g_list_free (files); -} - -void -wm_list_init (void) -{ - gchar *tempdir; - gchar *name; - GConfClient *client; - - tempdir = gnome_unconditional_datadir_file ("gnome/wm-properties/"); - wm_list_read_dir (tempdir, FALSE); - g_free (tempdir); - - tempdir = gnome_util_home_file("wm-properties/"); - wm_list_read_dir (tempdir, TRUE); - g_free (tempdir); - - client = gconf_client_get_default (); - name = gconf_client_get_string (client, CONFIG_PREFIX "/current", NULL); - if (name) { - current_wm = wm_list_find (window_managers, name); - g_free (name); - } - - if (!current_wm) { - name = gconf_client_get_string (client, CONFIG_PREFIX "/default", NULL); - - if (name) { - current_wm = wm_list_find_exec (window_managers, name); - g_free (name); - } - } - - if (!current_wm) { - gchar *wmfile, *prefix; - - wmfile = gnome_unconditional_datadir_file ("default.wm"); - prefix = g_strconcat ("=", wmfile, "=/Default/WM", NULL); - name = gnome_config_get_string (prefix); - - g_free (wmfile); - g_free (prefix); - - if (name) { - current_wm = wm_list_find_exec (window_managers, name); - g_free (name); - } - } - - if (!current_wm && window_managers) - current_wm = window_managers->data; - - if(current_wm) - current_wm_save = wm_list_find (window_managers_save, gnome_desktop_item_get_string (current_wm->dentry, GNOME_DESKTOP_ITEM_NAME)); - - g_object_unref (G_OBJECT (client)); -} - -void -wm_list_save (void) -{ - GList *old_files; - GList *tmp_list; - gchar *tempdir; - gchar *prefix; - WindowManager *wm; - - /* Clean out the current contents of .gnome/wm-desktops - */ - - tempdir = gnome_util_home_file("wm-properties/"); - old_files = wm_list_find_files (tempdir); - g_free (tempdir); - - tmp_list = old_files; - while (tmp_list) { - prefix = g_strconcat ("=", tmp_list->data, "=", NULL); - gnome_config_clean_file (prefix); - gnome_config_sync_file (prefix); - g_free (prefix); - - tmp_list = tmp_list->next; - } - g_list_free (old_files); - - - /* Save the user's desktops - */ - - tmp_list = window_managers; - while (tmp_list) { - wm = tmp_list->data; - - if (wm->is_user) { - gnome_desktop_item_save (wm->dentry, NULL, TRUE, NULL); - - prefix = g_strconcat ("=", gnome_desktop_item_get_location (wm->dentry), "=/Window Manager/", NULL); - gnome_config_push_prefix (prefix); - g_free (prefix); - - if (wm->config_exec) - gnome_config_set_string ("ConfigExec", wm->config_exec); - if (wm->config_tryexec) - gnome_config_set_string ("ConfigTryExec", wm->config_tryexec); - gnome_config_set_bool ("SessionManaged=0", wm->session_managed); - gnome_config_pop_prefix (); - - } - tmp_list = tmp_list->next; - } - - /* Save the current window manager - */ - if(current_wm) - { - GConfClient *client = gconf_client_get_default (); - gconf_client_set_string (client, CONFIG_PREFIX "/current", - gnome_desktop_item_get_string (current_wm->dentry, GNOME_DESKTOP_ITEM_EXEC), - NULL); - g_object_unref (G_OBJECT (client)); - } - - gnome_config_sync (); -} - -void -wm_list_revert (void) -{ - GList *tmp_list; - gchar *old_name = NULL; - - if(current_wm) - old_name = g_strdup (gnome_desktop_item_get_string (current_wm->dentry, GNOME_DESKTOP_ITEM_NAME)); - - g_list_foreach (window_managers, (GFunc)wm_free, NULL); - g_list_free (window_managers); - window_managers = NULL; - - tmp_list = window_managers_save; - while (tmp_list) { - window_managers = g_list_prepend (window_managers, - wm_copy (tmp_list->data)); - tmp_list = tmp_list->next; - } - window_managers = g_list_reverse (window_managers); - current_wm = wm_list_find (window_managers, old_name); - g_free (old_name); -} - -void -wm_list_add (WindowManager *wm) -{ - g_return_if_fail (wm != NULL); - - window_managers = g_list_insert_sorted (window_managers, wm, - wm_compare); -} - -void -wm_list_delete (WindowManager *wm) -{ - GList *node; - - g_return_if_fail (wm != NULL); - g_return_if_fail (wm != current_wm); - - node = g_list_find (window_managers, wm); - g_return_if_fail (node != NULL); - - window_managers = g_list_remove_link (window_managers, node); - g_list_free_1 (node); - wm_free (wm); -} - -void -wm_list_set_current (WindowManager *wm) -{ - current_wm = wm; -} - -WindowManager * -wm_list_get_current (void) -{ - return current_wm; -} - -WindowManager * -wm_list_get_revert (void) -{ - if(current_wm_save) - return wm_list_find (window_managers, gnome_desktop_item_get_string (current_wm_save->dentry, GNOME_DESKTOP_ITEM_NAME)); - else - return NULL; -} - -static WindowManager * -wm_read_from_xml (xmlNodePtr wm_node) -{ - xmlNodePtr node; - WindowManager *wm; - gboolean is_current = FALSE; - - if (strcmp (wm_node->name, "window-manager")) return NULL; - - wm = g_new0 (WindowManager, 1); - - wm->dentry = gnome_desktop_item_new_from_file - (xmlGetProp (wm_node, "desktop-entry"), - GNOME_DESKTOP_ITEM_TYPE_APPLICATION, NULL); - gnome_desktop_item_set_entry_type (wm->dentry, GNOME_DESKTOP_ITEM_TYPE_APPLICATION); - - for (node = wm_node->children; node; node = node->next) { - if (!strcmp (node->name, "config-exec")) - wm->config_exec = xmlNodeGetContent (node); - else if (!strcmp (node->name, "config-tryexec")) - wm->config_tryexec = xmlNodeGetContent (node); - else if (!strcmp (node->name, "session-managed")) - wm->session_managed = xml_read_bool (node); - else if (!strcmp (node->name, "is-user")) - wm->is_user = xml_read_bool (node); - else if (!strcmp (node->name, "is-current")) - is_current = xml_read_bool (node); /* FIXME: sanity check */ - } - - wm_check_present (wm); - - if (wm->dentry == NULL || - (wm->config_exec != NULL && is_blank (wm->config_exec)) || - gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME) == NULL || gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_EXEC) == NULL || - !(wm->is_user || wm->is_present)) - { - g_free (wm); - return NULL; - } - - if (is_current) current_wm = wm; - - return wm; -} - -void -wm_list_read_from_xml (xmlDocPtr doc) -{ - xmlNodePtr root_node, node; - WindowManager *wm; - - root_node = xmlDocGetRootElement (doc); - if (strcmp (root_node->name, "wm-prefs")) return; - - for (node = root_node; node; node = node->next) { - if (!strcmp (node->name, "window-manager")) { - wm = wm_read_from_xml (node); - if (wm) window_managers = - g_list_insert_sorted - (window_managers, wm, wm_compare); - } - } -} - -static xmlNodePtr -wm_write_to_xml (WindowManager *wm) -{ - xmlNodePtr node; - - node = xmlNewNode (NULL, "window-manager"); - - xmlNewProp (node, "desktop-entry", gnome_desktop_item_get_location (wm->dentry)); - - if (wm->config_exec != NULL) - xmlNewChild (node, NULL, "config-exec", wm->config_exec); - - xmlAddChild (node, xml_write_bool ("session-managed", - wm->session_managed)); - - xmlAddChild (node, xml_write_bool ("is-user", wm->is_user)); - xmlAddChild (node, xml_write_bool ("is-current", wm == current_wm)); - - return node; -} - -xmlDocPtr -wm_list_write_to_xml (void) -{ - xmlDocPtr doc; - xmlNodePtr root_node, node; - GList *wm_node; - - doc = xmlNewDoc ("1.0"); - root_node = xmlNewDocNode (doc, NULL, "wm-prefs", NULL); - - for (wm_node = window_managers; wm_node; wm_node = wm_node->next) { - node = wm_write_to_xml ((WindowManager *) wm_node->data); - if (node) xmlAddChild (root_node, node); - } - - xmlDocSetRootElement (doc, root_node); - - return doc; -} - -/* Read a boolean value from a node */ - -static gboolean -xml_read_bool (xmlNodePtr node) -{ - char *text; - - text = xmlNodeGetContent (node); - - if (!g_strcasecmp (text, "true")) - return TRUE; - else - return FALSE; -} - -/* Write out a boolean value in a node */ - -static xmlNodePtr -xml_write_bool (gchar *name, gboolean value) -{ - xmlNodePtr node; - - g_return_val_if_fail (name != NULL, NULL); - - node = xmlNewNode (NULL, name); - - if (value) - xmlNodeSetContent (node, "true"); - else - xmlNodeSetContent (node, "false"); - - return node; -} diff --git a/capplets/wm-properties/wm-properties-capplet.c b/capplets/wm-properties/wm-properties-capplet.c deleted file mode 100644 index ee21f2417..000000000 --- a/capplets/wm-properties/wm-properties-capplet.c +++ /dev/null @@ -1,1260 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ -/* Copyright (C) 1998-1999 Redhat Software Inc. - * Code available under the Gnu GPL. - * Authors: Jonathan Blandford <jrb@redhat.com> - * Owen Taylor <otaylor@redhat.com> - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <ctype.h> -#include <libxml/parser.h> -#include "wm-properties.h" -#include "gnome.h" - -#ifdef HAVE_XIMIAN_ARCHIVER -# include <ximian-archiver/archive.h> -# include <ximian-archiver/location.h> -#endif /* HAVE_XIMIAN_ARCHIVER */ - -#include "gnome-startup.h" - -/* prototypes */ -static void restart (gboolean force); -static void try_callback (void); -static void help_callback (void); -static void ok_callback (void); -static void revert_callback (void); -static void cancel_callback (void); - -/* structures */ - -typedef struct { - GtkWidget *dialog; - GtkWidget *name_entry; - GtkWidget *exec_entry; - GtkWidget *config_entry; - GtkWidget *sm_toggle; -} WMDialog; - -/* vars. */ -static GtkWidget *capplet; -static GtkWidget *delete_button; -static GtkWidget *edit_button; -static GtkWidget *config_button; -static GtkWidget *clist; - -static WindowManager *selected_wm = NULL; - -static GtkWidget *restart_dialog = NULL; -static GtkWidget *restart_label = NULL; -guint restart_dialog_timeout; -gchar *restart_name = NULL; - -/* Time until dialog times out */ -gdouble restart_remaining_time; -gint restart_displayed_time; - -GnomeClient *client = NULL; -gchar *argv0; - -/* Enumeration describing the current state of the capplet. - * in any other state than idle, all controls are !sensitive. - */ -typedef enum { - STATE_IDLE, - STATE_TRY, - STATE_REVERT, - STATE_OK, - STATE_CANCEL, - STATE_TRY_REVERT, /* Currently trying, revert afterwards */ - STATE_TRY_CANCEL /* Currently trying, cancel afterwards */ -} StateType; - -/* The possible transitions between states are described below. - * - - * operation | try revert ok cancel finish - * ===========+================================================= - * IDLE | TRY REVERT OK CANCEL - * TRY | TRY_REVERT OK TRY_CANCEL IDLE - * REVERT | CANCEL CANCEL IDLE - * OK | (quit) - * CANCEL | (quit) - * TRY_REVERT | TRY_CANCEL TRY_CANCEL REVERT - * TRY_CANCEL | CANCEL - * - * When a restart fails, there are three cases - * - * (1) The failure was because the current window manager didn't - * die. We inform the user of the situation, and then - * abort the operation. - * - * (2) The window manager didn't start, and we don't have a - * a fallback. We pop up a error dialog, tell the user - * to start a new window manager, and abort the operation. - * - * (3) The window manager didn't start, and we previously had a - * window manager runnning. We pop up a warning dialog, - * then try to go back to the old window manager. - * - * operation | (1) (2) (3) - * ===========+================================================= - * IDLE | - * TRY | IDLE IDLE TRY - * REVERT | IDLE IDLE REVERT - * OK | (quit) (quit) OK - * CANCEL | (quit) (quit) CANCEL - * TRY_REVERT | REVERT REVERT REVERT - * TRY_CANCEL | CANCEL CANCEL CANCEL - */ - - - -/* Current state - */ -StateType state = STATE_IDLE; - -/* Set TRUE when we've exited the main loop, but restart_pending - */ -gboolean quit_pending = FALSE; - -/* Set TRUE when we're waiting for the WM to restart - */ -gboolean restart_pending = FALSE; - -/* Set TRUE while we are filling in the list - */ -gboolean in_fill = FALSE; - -static gint cap_session_init = 0; -static struct poptOption cap_options[] = { - {"init-session-settings", '\0', POPT_ARG_NONE, &cap_session_init, 0, - N_("Initialize session settings"), NULL}, - {NULL, '\0', 0, NULL, 0} -}; - -#ifdef HAVE_XIMIAN_ARCHIVER - -static void -store_archive_data (void) -{ - Archive *archive; - Location *location; - xmlDocPtr xml_doc; - - archive = ARCHIVE (archive_load (FALSE)); - location = archive_get_current_location (archive); - xml_doc = wm_list_write_to_xml (); - location_store_xml (location, "wm-properties-capplet", - xml_doc, STORE_MASK_PREVIOUS); - xmlFreeDoc (xml_doc); - archive_close (archive); -} - -#endif /* HAVE_XIMIAN_ARCHIVER */ - -static void -response_cb (GtkDialog *dialog, gint response_id, gpointer data) -{ - int old_state = state; - - switch (response_id) - { - case GTK_RESPONSE_NONE: - case GTK_RESPONSE_CLOSE: - gtk_main_quit (); - break; - case GTK_RESPONSE_APPLY: - state = STATE_TRY; - restart(FALSE); - wm_list_set_current (selected_wm); - wm_list_save (); - update_session (); - break; - } -} - -static void -state_changed (void) -{ - gtk_dialog_set_response_sensitive (GTK_DIALOG (capplet), GTK_RESPONSE_APPLY, - TRUE); -} - -static GtkWidget * -left_aligned_button (gchar *label) -{ - GtkWidget *button = gtk_button_new_with_label (label); - gtk_misc_set_alignment (GTK_MISC (GTK_BIN (button)->child), - 0.0, 0.5); - gtk_misc_set_padding (GTK_MISC (GTK_BIN (button)->child), - GNOME_PAD_SMALL, 0); - - return button; -} -static void -restart_label_update (void) -{ - gchar *tmp; - - if ((gint)restart_remaining_time != restart_displayed_time) { - restart_displayed_time = restart_remaining_time; - - tmp = g_strdup_printf (_("Starting %s\n" - "(%d seconds left before operation times out)"), - restart_name, - restart_displayed_time); - gtk_label_set_text (GTK_LABEL (restart_label), tmp); - g_free (tmp); - } -} - -static gboolean -restart_dialog_raise (gpointer data) -{ - if (restart_dialog && GTK_WIDGET_REALIZED (restart_dialog)) { - restart_remaining_time -= 0.25; - restart_label_update(); - gdk_window_raise (restart_dialog->window); - } - return TRUE; -} - -static void -restart_dialog_destroyed (GtkWidget *widget) -{ - if (restart_dialog_timeout) { - gtk_timeout_remove (restart_dialog_timeout); - restart_dialog_timeout = 0; - } - - restart_dialog = NULL; -} - -static void -show_restart_dialog (gchar *name) -{ - GtkWidget *hbox; - GtkWidget *frame; - GtkWidget *pixmap; - gchar *tmp; - - if (!restart_dialog) { - restart_dialog = gtk_window_new (GTK_WINDOW_POPUP); - gtk_window_set_position (GTK_WINDOW (restart_dialog), - GTK_WIN_POS_CENTER); - - gtk_signal_connect (GTK_OBJECT (restart_dialog), "destroy", - GTK_SIGNAL_FUNC (restart_dialog_destroyed), - &restart_dialog); - frame = gtk_frame_new (NULL); - gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); - gtk_container_add (GTK_CONTAINER (restart_dialog), frame); - - hbox = gtk_hbox_new (FALSE, GNOME_PAD); - gtk_container_set_border_width (GTK_CONTAINER (hbox), GNOME_PAD); - gtk_container_add (GTK_CONTAINER (frame), hbox); - - tmp = gnome_unconditional_pixmap_file("gnome-info.png"); - if (tmp) { - pixmap = gnome_pixmap_new_from_file(tmp); - g_free(tmp); - gtk_box_pack_start (GTK_BOX (hbox), pixmap, FALSE, FALSE, 0); - } - - restart_label = gtk_label_new (""); - gtk_box_pack_start (GTK_BOX (hbox), restart_label, FALSE, FALSE, GNOME_PAD); - } - - if (!restart_dialog_timeout) { - restart_dialog_timeout = gtk_timeout_add (250, restart_dialog_raise, NULL); - } - - restart_remaining_time = 10.0; - restart_displayed_time = -1; - if (restart_name) - g_free (restart_name); - - restart_name = g_strdup (name); - restart_label_update (); - - gtk_widget_show_all (restart_dialog); -} - -static void -hide_restart_dialog (void) -{ - if (restart_dialog) - gtk_widget_destroy (restart_dialog); -} - -static void -update_session (void) -{ - WindowManager *current_wm = wm_list_get_current(); - gchar *session_args[3]; - - if (!current_wm) - return; - - if (current_wm->session_managed) { - gnome_client_set_restart_style (client, - GNOME_RESTART_NEVER); - - } else { - session_args[0] = argv0; - session_args[1] = "--init-session-settings"; - session_args[2] = NULL; - /* We use a priority of 15 so that we start after - * session-managed WM's (priority 10), for safety. - */ - gnome_client_set_priority (client, 15); - gnome_client_set_restart_style (client, - GNOME_RESTART_ANYWAY); - gnome_client_set_restart_command (client, 2, - session_args); - } - - gnome_client_flush (client); -} - -static void -init_session (void) -{ - GnomeClientFlags flags; - gint token; - - client = gnome_master_client (); - flags = gnome_client_get_flags (client); - - if (flags & GNOME_CLIENT_IS_CONNECTED) { - token = gnome_startup_acquire_token("GNOME_WM_PROPERTIES", - gnome_client_get_id(client)); - - if (token) - update_session(); - else { - gnome_client_set_restart_style (client, - GNOME_RESTART_NEVER); - gnome_client_flush (client); - } - } -} - -static void -update_gui (void) -{ - GList *tmp_list; - WindowManager *current_wm = wm_list_get_current(); - gint new_row; - gchar *tmpstr; - - gtk_clist_clear (GTK_CLIST (clist)); - - in_fill = TRUE; - - tmp_list = window_managers; - while (tmp_list) { - gchar *row_text; - WindowManager *wm; - - wm = tmp_list->data; - - if (wm == current_wm) { - row_text = g_strdup_printf (_("%s (Current)"), - gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME)); - - tmpstr = g_strdup_printf (_("Run Configuration Tool for %s"), - gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME)); - - gtk_label_set_text (GTK_LABEL (GTK_BIN (config_button)->child), - tmpstr); - gtk_widget_set_sensitive (config_button, - wm->is_config_present); - - g_free (tmpstr); - } else if (wm->is_user && !wm->is_present) { - row_text = g_strconcat (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME), - _(" (Not found)"), NULL); - } else { - row_text = g_strdup (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME)); - } - - new_row = gtk_clist_append (GTK_CLIST (clist), &row_text); - gtk_clist_set_row_data (GTK_CLIST (clist), new_row, wm); - - if (wm == selected_wm) - gtk_clist_select_row (GTK_CLIST (clist), new_row, 0); - - g_free (row_text); - - tmp_list = tmp_list->next; - } - - in_fill = FALSE; - - 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 -init_callback (WMResult result, gpointer data) -{ - switch (result) { - case WM_SUCCESS: - break; - case WM_ALREADY_RUNNING: - g_warning (_("wm-properties-capplet: Unable to initialize window manager.\n" - "\tAnother window manager is already running and could not be killed\n")); - break; - case WM_CANT_START: - g_warning (_("wm-properties-capplet: Unable to initialize window manager.\n" - "\t'%s' didn't start\n"), (gchar *)data); - break; - } - - g_free (data); - gtk_main_quit (); -} - -static void -restart_finalize () -{ - wm_list_set_current (selected_wm); - hide_restart_dialog(); - - switch (state) { - case STATE_TRY: - case STATE_REVERT: - gtk_widget_set_sensitive (capplet, TRUE); - update_gui(); - state = STATE_IDLE; - break; - - case STATE_OK: - case STATE_CANCEL: - if (quit_pending) - gtk_main_quit(); - break; - default: - g_warning ("Finalize in state %d!!!\n", state); - return; - } - - restart_pending = FALSE; -} - -static void -restart_failure (WMResult reason) -{ - GtkWidget *msgbox; - WindowManager *current_wm; - gchar *msg = NULL; - gboolean modal = FALSE; - - current_wm = wm_list_get_current (); - - /* Did the previous window manager not die? - */ - if (reason == WM_ALREADY_RUNNING) { - msg = g_strdup (_("Previous window manager did not die\n")); - - switch (state) { - case STATE_TRY: - case STATE_REVERT: - case STATE_OK: - case STATE_CANCEL: - selected_wm = current_wm; - restart_finalize (); - break; - - case STATE_TRY_REVERT: - revert_callback (); - break; - - case STATE_TRY_CANCEL: - cancel_callback (); - break; - - default: - g_warning ("Failure in state %d!!!\n", state); - return; - } - } - /* Is there something reasonable to try to fall back to? - */ - else if (current_wm != selected_wm) { - - switch (state) { - case STATE_TRY: - case STATE_REVERT: - case STATE_OK: - case STATE_CANCEL: - msg = g_strdup_printf (_("Could not start '%s'.\n" - "Falling back to previous window manager '%s'\n"), - selected_wm?gnome_desktop_item_get_string (selected_wm->dentry, GNOME_DESKTOP_ITEM_NAME):"Unknown", - current_wm?gnome_desktop_item_get_string (current_wm->dentry, GNOME_DESKTOP_ITEM_NAME):"Unknown"); - selected_wm = current_wm; - restart(TRUE); - break; - - case STATE_TRY_REVERT: - revert_callback (); - break; - - case STATE_TRY_CANCEL: - cancel_callback (); - break; - - default: - g_warning ("Failure in state %d!!!\n", state); - return; - } - - /* Give up */ - } else { - - switch (state) { - case STATE_OK: - case STATE_CANCEL: - modal = TRUE; /* prevent an immediate exit */ - /* Fall through */ - case STATE_TRY: - case STATE_REVERT: - msg = g_strdup (_("Could not start fallback window manager.\n" - "Please run a window manager manually. You can\n" - "do this by selecting \"Run Program\" in the\n" - "foot menu\n")); - - restart_finalize(); - break; - - case STATE_TRY_REVERT: - revert_callback (); - break; - - case STATE_TRY_CANCEL: - cancel_callback (); - break; - - default: - g_warning ("Failure in state %d!!!\n", state); - return; - } - } - - if (msg) { - msgbox = gnome_message_box_new (msg, - GNOME_MESSAGE_BOX_ERROR, - _("OK"), NULL); - if (modal) - gnome_dialog_run (GNOME_DIALOG (msgbox)); - else - gtk_widget_show (msgbox); - g_free (msg); - } -} - -static void -show_restart_info (void) -{ - gchar *save_session; - GtkWidget *dialog; - - save_session = gnome_is_program_in_path ("save-session"); - if (save_session) { - dialog = gnome_message_box_new ( - _("Your current window manager has been changed. In order for\n" - "this change to be saved, you will need to save your current\n" - "session. You can do so immediately by selecting the \"Save session\n" - "now\" below, or you can save your session later. This can be\n" - "done either selecting \"Save Current Session\" under \"Settings\"\n" - "in the main menu, or by turning on \"Save Current Setup\" when\n" - "you log out.\n"), - GNOME_MESSAGE_BOX_INFO, _("Save Session Later"), _("Save Session Now"), NULL); - } else { - dialog = gnome_message_box_new ( - _("Your current window manager has been changed. In order for\n" - "this change to be saved, you will need to save your current\n" - "session. This can be done by either selecting \"Save Current Session\"\n" - "under \"Settings\" in the main menu, or by turning on\n" - "\"Save Current Setup\" when you log out.\n"), - GNOME_MESSAGE_BOX_INFO, GNOME_STOCK_BUTTON_CLOSE, NULL); - } - if ((gnome_dialog_run_and_close (GNOME_DIALOG (dialog)) == 1) && save_session) { - system (save_session); - } - g_free (save_session); -} - -static void -restart_finish (void) -{ - switch (state) { - case STATE_TRY: - case STATE_REVERT: - case STATE_OK: - case STATE_CANCEL: - hide_restart_dialog(); - show_restart_info(); - restart_finalize(); - break; - - case STATE_TRY_REVERT: - revert_callback (); - break; - - case STATE_TRY_CANCEL: - cancel_callback (); - break; - - default: - g_warning ("Finished in state %d!!!\n", state); - return; - } -} - -static void -restart_callback (WMResult result, gpointer data) -{ - if (result == WM_SUCCESS) - restart_finish (); - else - restart_failure (result); -} - -static void -destroy_callback (GtkWidget *widget, void *data) -{ -} - -static void -restart (gboolean force) -{ - WindowManager *current_wm = wm_list_get_current(), *mywm; - static gboolean last_try_was_twm = FALSE; - GnomeDesktopItem *twm_dentry = gnome_desktop_item_new (); - WindowManager twm_fallback = {twm_dentry, "twm", "twm", 0, 0, 1, 0}; - - gnome_desktop_item_set_entry_type (twm_dentry, GNOME_DESKTOP_ITEM_TYPE_APPLICATION); - gnome_desktop_item_set_string (twm_dentry, - GNOME_DESKTOP_ITEM_NAME, "twm"); - gnome_desktop_item_set_string (twm_dentry, - GNOME_DESKTOP_ITEM_COMMENT, "twm"); - gnome_desktop_item_set_string (twm_dentry, - GNOME_DESKTOP_ITEM_EXEC, "twm"); - - 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(); - gnome_desktop_item_unref (twm_dentry); - return; - } - - if (force || current_wm != mywm) { - show_restart_dialog (gnome_desktop_item_get_string (mywm->dentry, GNOME_DESKTOP_ITEM_NAME)); - if (state != STATE_OK && state != STATE_CANCEL) - gtk_widget_set_sensitive (capplet, FALSE); - restart_pending = TRUE; - wm_restart (mywm, - capplet->window, - restart_callback, - NULL); - } else { - restart_finalize (); - } - - gnome_desktop_item_unref (twm_dentry); -} - -static void -try_callback (void) -{ - if (state != STATE_IDLE) { - g_warning ("try_callback in state %d!!!\n", state); - return; - } - - state = STATE_TRY; - restart(FALSE); -} - -static void -help_callback (void) -{ - gchar *tmp; - - gnome_help_display_with_doc_id (gnome_program_get (), "users-guide", "gccdesktop.html", "#GCCWM", NULL); -} - -static void -ok_callback (void) -{ - switch (state) { - case STATE_IDLE: - state = STATE_OK; - restart(FALSE); - break; - - case STATE_TRY: - state = STATE_OK; - break; - - case STATE_REVERT: - state = STATE_CANCEL; - break; - - case STATE_TRY_REVERT: - state = STATE_TRY_CANCEL; - break; - - default: - g_warning ("ok callback in state %d!!!\n", state); - return; - } - - wm_list_save (); -#ifdef HAVE_XIMIAN_ARCHIVER - store_archive_data (); -#endif /* HAVE_XIMIAN_ARCHIVER */ -} - -static void -revert_callback (void) -{ - StateType old_state = state; - - switch (state) { - case STATE_IDLE: - case STATE_TRY_REVERT: - wm_list_revert(); - selected_wm = wm_list_get_revert(); - state = STATE_REVERT; - - restart (old_state == STATE_TRY_REVERT); - update_gui(); - - break; - - case STATE_TRY: - state = STATE_TRY_REVERT; - break; - - default: - g_warning ("revert callback in state %d!!!\n", state); - return; - } -} - -static void -cancel_callback (void) -{ - StateType old_state = state; - - switch (state) { - case STATE_IDLE: - case STATE_TRY_CANCEL: - wm_list_revert(); - selected_wm = wm_list_get_revert(); - state = STATE_CANCEL; - - restart (old_state == STATE_TRY_CANCEL); - - break; - - case STATE_TRY: - state = STATE_TRY_CANCEL; - break; - - case STATE_REVERT: - state = STATE_CANCEL; - break; - - case STATE_TRY_REVERT: - state = STATE_TRY_CANCEL; - break; - - default: - g_warning ("ok callback in state %d!!!\n", state); - return; - } -} - -static WMDialog * -create_dialog (gchar *title) -{ - GtkWidget *label; - GtkWidget *alignment; - GtkWidget *table; - WMDialog *dialog; - - dialog = g_new (WMDialog, 1); - - dialog->dialog = gnome_dialog_new (_("Add New Window Manager"), - _("OK"), _("Cancel"), NULL); - - gnome_dialog_set_default (GNOME_DIALOG (dialog->dialog), 0); - gnome_dialog_close_hides (GNOME_DIALOG (dialog->dialog), TRUE); - - table = gtk_table_new (4, 2, FALSE); - - gtk_table_set_row_spacings (GTK_TABLE (table), GNOME_PAD_SMALL); - gtk_table_set_col_spacings (GTK_TABLE (table), GNOME_PAD_SMALL); - gtk_container_add (GTK_CONTAINER (GNOME_DIALOG (dialog->dialog)->vbox), - table); - - label = gtk_label_new (_("Name:")); - gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); - gtk_table_attach (GTK_TABLE (table), label, - 0, 1, 0, 1, - GTK_FILL, 0, - 0, 0); - - dialog->name_entry = gtk_entry_new (); - gtk_table_attach (GTK_TABLE (table), dialog->name_entry, - 1, 2, 0, 1, - GTK_FILL | GTK_EXPAND, 0, - 0, 0); - - label = gtk_label_new (_("Command:")); - gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); - gtk_table_attach (GTK_TABLE (table), label, - 0, 1, 1, 2, - GTK_FILL, 0, - 0, 0); - - dialog->exec_entry = gtk_entry_new (); - gtk_table_attach (GTK_TABLE (table), dialog->exec_entry, - 1, 2, 1, 2, - GTK_FILL | GTK_EXPAND, 0, - 0, 0); - - label = gtk_label_new (_("Configuration Command:")); - gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); - gtk_table_attach (GTK_TABLE (table), label, - 0, 1, 2, 3, - GTK_FILL, 0, - 0, 0); - - dialog->config_entry = gtk_entry_new (); - gtk_table_attach (GTK_TABLE (table), dialog->config_entry, - 1, 2, 2, 3, - GTK_FILL | GTK_EXPAND, 0, - 0, 0); - - alignment = gtk_alignment_new (0.0, 0.5, 0.0, 0.0); - gtk_table_attach (GTK_TABLE (table), alignment, - 0, 2, 3, 4, - GTK_FILL | GTK_EXPAND, 0, - 0, 0); - - dialog->sm_toggle = gtk_check_button_new_with_label (_("Window manager is session managed")); - gtk_container_add (GTK_CONTAINER (alignment), dialog->sm_toggle); - - gtk_window_set_default_size (GTK_WINDOW (dialog->dialog), 400, -1); - gtk_window_set_policy (GTK_WINDOW (dialog->dialog), FALSE, TRUE, FALSE); - gtk_widget_show_all (dialog->dialog); - - return dialog; -} - -static gchar * -extract_entry (GtkWidget *widget) -{ - gchar *tmp; - - g_return_val_if_fail (GTK_IS_ENTRY (widget), NULL); - - tmp = gtk_entry_get_text (GTK_ENTRY (widget)); - if (is_blank (tmp)) - return NULL; - else - return g_strdup (tmp); -} - -static gchar * -make_filename (gchar *name) -{ - gchar *tempname = g_strconcat (name, ".desktop", NULL); - gchar *tempdir = gnome_util_home_file("wm-properties/"); - gchar *tmp = tempname; - gchar *result; - - while (*tmp) { - if (isspace (*tmp) || (*tmp == '/')) - *tmp = '_'; - tmp++; - } - result = g_concat_dir_and_file (tempdir, tempname); - g_free (tempname); - g_free (tempdir); - - return result; -} - -static gboolean -check_dialog (WMDialog *dialog) -{ - GtkWidget *msgbox; - - if (is_blank (gtk_entry_get_text (GTK_ENTRY (dialog->name_entry)))) { - msgbox = gnome_message_box_new (_("Name cannot be empty"), - GNOME_MESSAGE_BOX_ERROR, - _("OK"), NULL); - gnome_dialog_run (GNOME_DIALOG (msgbox)); - return FALSE; - } - if (is_blank (gtk_entry_get_text (GTK_ENTRY (dialog->exec_entry)))) { - msgbox = gnome_message_box_new (_("Command cannot be empty"), - GNOME_MESSAGE_BOX_ERROR, - _("OK"), NULL); - gnome_dialog_run (GNOME_DIALOG (msgbox)); - return FALSE; - } - - return TRUE; -} - -static void -get_dialog_contents (WMDialog *dialog, WindowManager *wm) -{ - gchar *tmp; - - tmp = extract_entry (dialog->name_entry); - gnome_desktop_item_set_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME, - tmp); - g_free (tmp); - - tmp = extract_entry (dialog->exec_entry); - gnome_desktop_item_set_string (wm->dentry, GNOME_DESKTOP_ITEM_EXEC, - tmp); - g_free (tmp); - - if (wm->config_exec) - g_free (wm->config_exec); - wm->config_exec = extract_entry (dialog->config_entry); - - tmp = make_filename (gnome_desktop_item_get_string (wm->dentry, GNOME_DESKTOP_ITEM_NAME)); - gnome_desktop_item_set_location (wm->dentry, tmp); - g_free (tmp); - - wm->session_managed = !!GTK_TOGGLE_BUTTON (dialog->sm_toggle)->active; - - wm_check_present (wm); -} - -static void -edit_dialog (void) -{ - WMDialog *dialog; - gchar *tmp; - gint result; - - if(!selected_wm) - return; - - dialog = create_dialog (_("Edit Window Manager")); - - if (gnome_desktop_item_get_string (selected_wm->dentry, GNOME_DESKTOP_ITEM_NAME)) - gtk_entry_set_text (GTK_ENTRY (dialog->name_entry), gnome_desktop_item_get_string (selected_wm->dentry, GNOME_DESKTOP_ITEM_NAME)); - - if (gnome_desktop_item_get_string (selected_wm->dentry, GNOME_DESKTOP_ITEM_EXEC)) - gtk_entry_set_text (GTK_ENTRY (dialog->exec_entry), gnome_desktop_item_get_string (selected_wm->dentry, GNOME_DESKTOP_ITEM_EXEC)); - - if (selected_wm->config_exec) - gtk_entry_set_text (GTK_ENTRY (dialog->config_entry), selected_wm->config_exec); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->sm_toggle), - selected_wm->session_managed); - - if (!selected_wm->is_user) { - gtk_widget_set_sensitive (dialog->name_entry, FALSE); - gtk_widget_set_sensitive (dialog->exec_entry, FALSE); - gtk_widget_set_sensitive (dialog->config_entry, FALSE); - gtk_widget_set_sensitive (dialog->sm_toggle, FALSE); - } - - do { - gtk_widget_show (dialog->dialog); - result = gnome_dialog_run (GNOME_DIALOG (dialog->dialog)); - } while (result == 0 && !check_dialog (dialog)); - - if (selected_wm->is_user && (result == 0)) { - get_dialog_contents (dialog, selected_wm); - update_gui(); - state_changed (); - } - - gtk_widget_destroy (dialog->dialog); - g_free (dialog); -} - -static void -add_dialog (void) -{ - WMDialog *dialog = create_dialog (_("Edit Window Manager")); - WindowManager *wm; - gint result; - - do { - result = gnome_dialog_run (GNOME_DIALOG (dialog->dialog)); - } while (result == 0 && !check_dialog (dialog)); - - if (result == 0) { - wm = g_new0 (WindowManager, 1); - wm->dentry = gnome_desktop_item_new (); - gnome_desktop_item_set_entry_type (wm->dentry, GNOME_DESKTOP_ITEM_TYPE_APPLICATION); - get_dialog_contents (dialog, wm); - - wm->is_user = TRUE; - - wm_list_add (wm); - - selected_wm = wm; - update_gui(); - - state_changed (); - } - - gtk_widget_destroy (dialog->dialog); - g_free (dialog); -} - -static void -select_row (GtkCList *the_clist, - gint row, - gint column, - GdkEvent *event, - gpointer data) -{ - WindowManager *wm; - - if (!in_fill) { - wm = gtk_clist_get_row_data (GTK_CLIST (clist), row); - gtk_widget_set_sensitive (edit_button, wm->is_user); - gtk_widget_set_sensitive (delete_button, wm->is_user); - - if (wm != selected_wm) { - selected_wm = wm; - state_changed (); - } - } -} - -static void -delete (void) -{ - WindowManager *current_wm = wm_list_get_current(); - GtkWidget *msgbox; - - if (current_wm == selected_wm) { - msgbox = gnome_message_box_new ( - _("You cannot delete the current Window Manager"), - GNOME_MESSAGE_BOX_ERROR, _("OK"), NULL); - - gnome_dialog_run (GNOME_DIALOG (msgbox)); - return; - } - - wm_list_delete (selected_wm); - selected_wm = current_wm; - update_gui(); - state_changed (); -} - - -static void -run_config (GtkWidget *w) -{ - WindowManager *current_wm = wm_list_get_current(); - - if (current_wm - && current_wm->is_config_present - && current_wm->config_exec != NULL) { - gchar *argv[4]; - - argv[0] = "/bin/sh"; - argv[1] = "-c"; - argv[2] = current_wm->config_exec; - argv[3] = NULL; - - gnome_execute_async (NULL, 4, argv); - } -} - -static void -wm_setup (void) -{ - GtkWidget *hbox, *vbox, *bottom; - GtkWidget *util_vbox; - GtkWidget *add_button; - GtkWidget *scrolled_window; - GtkWidget *label; - - capplet = gtk_dialog_new_with_buttons (_("Window Manager Selector"), - NULL, - -1, - GTK_STOCK_HELP, GTK_RESPONSE_HELP, - GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, - GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, - NULL); - gtk_dialog_set_response_sensitive (GTK_DIALOG (capplet), GTK_RESPONSE_APPLY, FALSE); - gtk_widget_set_usize (capplet, 360, 200); - - vbox = gtk_vbox_new (FALSE, 0); - - label = gtk_label_new (_("Window Manager Selector")); - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, FALSE, 10); - - hbox = gtk_hbox_new (FALSE, GNOME_PAD); - - gtk_container_set_border_width (GTK_CONTAINER (hbox), GNOME_PAD_SMALL); - bottom = gtk_hbox_new (FALSE, GNOME_PAD_SMALL); - gtk_container_set_border_width (GTK_CONTAINER (bottom), GNOME_PAD_SMALL); - scrolled_window = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - - clist = gtk_clist_new (1); - gtk_clist_column_titles_hide (GTK_CLIST (clist)); - gtk_clist_set_column_auto_resize (GTK_CLIST (clist), 0, TRUE); - gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_BROWSE); - - gtk_signal_connect (GTK_OBJECT (clist), "select_row", - GTK_SIGNAL_FUNC (select_row), NULL); - - gtk_container_add (GTK_CONTAINER (scrolled_window), clist); - - gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0); - - util_vbox = gtk_vbox_new (FALSE, GNOME_PAD_SMALL); - gtk_box_pack_start (GTK_BOX (hbox), util_vbox, FALSE, FALSE, 0); - - add_button = left_aligned_button (_("Add...")); - gtk_signal_connect (GTK_OBJECT (add_button), "clicked", - GTK_SIGNAL_FUNC (add_dialog), NULL); - gtk_box_pack_start (GTK_BOX (util_vbox), add_button, FALSE, FALSE, 0); - - edit_button = left_aligned_button (_("Edit...")); - gtk_signal_connect (GTK_OBJECT (edit_button), "clicked", - GTK_SIGNAL_FUNC (edit_dialog), NULL); - gtk_box_pack_start (GTK_BOX (util_vbox), edit_button, FALSE, FALSE, 0); - - delete_button = left_aligned_button (_("Delete")); - gtk_signal_connect (GTK_OBJECT (delete_button), "clicked", - GTK_SIGNAL_FUNC (delete), NULL); - gtk_box_pack_start (GTK_BOX (util_vbox), delete_button, FALSE, FALSE, 0); - config_button = gtk_button_new_with_label (""); - - gtk_misc_set_padding (GTK_MISC (GTK_BIN (config_button)->child), - GNOME_PAD_SMALL, 0); - gtk_signal_connect (GTK_OBJECT (config_button), "clicked", - GTK_SIGNAL_FUNC (run_config), NULL); - gtk_box_pack_start (GTK_BOX (bottom), config_button, FALSE, FALSE, 0); - - gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); - gtk_box_pack_end (GTK_BOX (vbox), bottom, FALSE, FALSE, 0); - - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (capplet)->vbox), vbox, - TRUE, TRUE, 0); - - gtk_widget_show_all (capplet); - - update_gui(); -} - -static void do_get_xml (void) -{ - xmlDocPtr doc; - - doc = wm_list_write_to_xml (); - xmlDocDump (stdout, doc); -} - -static void do_set_xml (void) -{ - xmlDocPtr doc; - char *buffer; - int len = 0; - - while (!feof (stdin)) { - if (!len) buffer = g_new (char, 16384); - else buffer = g_renew (char, buffer, len + 16384); - fread (buffer + len, 1, 16384, stdin); - len += 16384; - } - - doc = xmlParseMemory (buffer, strlen (buffer)); - - init_session (); - wm_list_read_from_xml (doc); - wm_list_save (); - update_session (); -} - -int -main (int argc, char **argv) -{ - bindtextdomain (PACKAGE, GNOMELOCALEDIR); - textdomain (PACKAGE); - - argv0 = g_strdup (argv[0]); - gnome_program_init ("wm-properties", VERSION, - LIBGNOMEUI_MODULE, argc, argv, - GNOME_PARAM_POPT_TABLE, &cap_options, - NULL); - - /* Read in the list of window managers, and the current - * window manager - */ - wm_list_init(); - selected_wm = wm_list_get_current(); - - if (!cap_session_init) - { - init_session(); - wm_setup(); - g_signal_connect (G_OBJECT (capplet), "response", - response_cb, NULL); - - gtk_main (); - - if (restart_pending) { - quit_pending = TRUE; - gtk_main(); - } - } - else { - if (selected_wm && - !selected_wm->session_managed && - !wm_is_running()) { - - wm_restart (selected_wm, NULL, init_callback, - g_strdup (gnome_desktop_item_get_string (selected_wm->dentry, GNOME_DESKTOP_ITEM_NAME))); - gtk_main (); - } - - init_session(); - } - - return 0; -} - diff --git a/capplets/wm-properties/wm-properties.glade b/capplets/wm-properties/wm-properties.glade deleted file mode 100644 index e69de29bb..000000000 --- a/capplets/wm-properties/wm-properties.glade +++ /dev/null diff --git a/capplets/wm-properties/wm-properties.h b/capplets/wm-properties/wm-properties.h deleted file mode 100644 index f14dc4ea5..000000000 --- a/capplets/wm-properties/wm-properties.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ -/* Copyright (C) 1998 Redhat Software Inc. - * Code available under the Gnu GPL. - * Authors: Owen Taylor <otaylor@redhat.com>, - * Bradford Hovinen <hovinen@helixcode.com> - */ - -#include <gdk/gdk.h> -#include <libgnome/libgnome.h> -#include <libgnome/gnome-desktop-item.h> - -#include <libxml/tree.h> - -typedef struct _WindowManager WindowManager; - -struct _WindowManager { - GnomeDesktopItem *dentry; - gchar *config_exec; - gchar *config_tryexec; - gboolean session_managed : 1; - gboolean is_user : 1; - gboolean is_present : 1; - gboolean is_config_present : 1; -}; - -/* Utility functions */ -gboolean is_blank (gchar *str); - -/* Fill in the is_present and is_config_present fields */ -void wm_check_present (WindowManager *wm); - -/* Management of window manager list */ - -void wm_list_init (void); -void wm_list_save (void); -void wm_list_revert (void); -void wm_list_add (WindowManager *window_manager); -void wm_list_delete (WindowManager *window_manager); -void wm_list_set_current (WindowManager *window_manager); -WindowManager *wm_list_get_current (void); -WindowManager *wm_list_get_revert (void); - -void wm_list_read_from_xml (xmlDocPtr doc); -xmlDocPtr wm_list_write_to_xml (void); - -extern GList *window_managers; - -/* Management of current window manager */ - -typedef enum { - WM_SUCCESS, - WM_ALREADY_RUNNING, - WM_CANT_START -} WMResult; - -typedef void (*WMResultFunc) (WMResult result, gpointer data); - -void wm_restart (WindowManager *new, - GdkWindow *client, - WMResultFunc callback, - gpointer data); -gboolean wm_is_running (void); -WindowManager *wm_guess_current (void); diff --git a/capplets/wm-properties/wm.desktop.in.in b/capplets/wm-properties/wm.desktop.in.in deleted file mode 100644 index e4268c52b..000000000 --- a/capplets/wm-properties/wm.desktop.in.in +++ /dev/null @@ -1,61 +0,0 @@ -[Desktop Entry] -Name=Window Manager Selector -Name[pt_BR]=Gerenciador de Janelas -Name[ca]=Gestor de finestres -Name[cs]=Správce oken -Name[da]=Vindueshåndtering -Name[de]=Fenstermanager -Name[el]=Äéá÷åéñéóôÞò Ðáñáèýñùí -Name[es]=Gestor de ventanas -Name[et]=Aknahaldur -Name[fi]=Ikkunointiohjelma -Name[fr]=Gestionnaire de fenêtres -Name[gl]=Xestor de fiestras -Name[hu]=Ablakkezelõ -Name[it]=Window manager -Name[ja]=¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã -Name[ko]=â °ü¸®ÀÚ -Name[lt]=Langø tvarkyklë -Name[no]=Vindushåndterer -Name[pl]=Mened¿er okien -Name[pt]=Gestor de Janelas -Name[ro]=Manager de ferestre -Name[sl]=Upravljalnik oken -Name[sv]=Fönsterhanterare -Name[tr]=Pencere yöneticisi -Name[uk]=÷¦ËÏÎÎÉÊ ÍÅÎÅÄÖÅÒ -Name[wa]=Manaedjeu di purneas -Name[zh_TW]=µøµ¡ºÞ²zµ{¦¡ -Name[zh_CN.GB2312]=ÊÓ´°¹ÜÀí³Ìʽ -Comment=Choose a window manager -Comment[pt_BR]=Selecionar um gerenciador de janelas -Comment[ca]=Permet escollir el gestor de finestres. -Comment[cs]=Volba správce oken -Comment[da]=Vælg en vindueshåndterer. -Comment[de]=Einen Fenstermanager auswählen -Comment[es]=ÅðéëïãÞ äéá÷åéñéóôÞò ðáñáèýñùí -Comment[es]=Permite elegir gestor de ventanas a usar con GNOME -Comment[et]=Määrab aknahalduri -Comment[fi]=Valitse ikkunointiohjelma -Comment[fr]=Configuration du gestionnaire de fenêtres à utiliser avec GNOME -Comment[gl]=Excoller un xestor de fiestras para usar con GNOME -Comment[hu]=Ablakkezelõ választása -Comment[it]=Selezione del Window Manager usato in GNOME -Comment[ja]=¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¤òÁª¤ó¤Ç²¼¤µ¤¤ -Comment[ko]=â °ü¸®ÀÚ ¼±Åà -Comment[lt]=Pasirinkti langø tvarkyklæ -Comment[no]=Velg en vindushåndterer -Comment[pl]=Wybór mened¿era okien -Comment[pt]=Escolha o seu gestor de janelas -Comment[ro]=Alegeþi un manager de ferestre -Comment[sl]=Izberite upravljalca oken -Comment[sv]=Välj en fönsterhanterare -Comment[tr]=Bir pencere yöneticisini seç -Comment[uk]=÷ÉÂ¦Ò ×¦ËÏÎÎÏÇÏ ÍÅÎÅÄÖÅÒÁ -Comment[wa]=Tchwezixhoz li manaedjeu di purneas a eployî avou GNOME -Comment[zh_TW]=¿ï¾Ü±z©Ò¨Ï¥Îªºµøµ¡ºÞ²zµ{¦¡ -Comment[zh_CN.GB2312]=Ñ¡ÔñÄúËùʹÓõÄÊÓ´°¹ÜÀí³Ìʽ -Exec=wm-properties-capplet --sync -Icon=gnome-ccwindowmanager.png -Terminal=0 -Type=Application |