summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2001-12-09 22:41:12 +0000
committerHavoc Pennington <hp@src.gnome.org>2001-12-09 22:41:12 +0000
commit6981a8198bdce947fa2f43a28babe427e740282b (patch)
treee247cdeeb2810c60ea00e7620e903fd82eca7668 /src
parentb3778e4470e08dab6017d0134c81607920110e74 (diff)
downloadmetacity-6981a8198bdce947fa2f43a28babe427e740282b.tar.gz
metacity-6981a8198bdce947fa2f43a28babe427e740282b.tar.bz2
move SM init a bit later in the process, and init prefs
2001-12-09 Havoc Pennington <hp@pobox.com> * src/main.c (main): move SM init a bit later in the process, and init prefs * src/session.c: fix no SM case (though I hardly know why I'm bothering) * src/main.c (main): call bindtextdomain * src/util.h (_): actually call gettext * configure.in: put in AM_GLIB_GNU_GETTEXT and gconf stuff * src/prefs.c: Preferences - this marks the beginning of our doom. None of them are actually implemented yet, but we monitor some stuff from gconf.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am12
-rw-r--r--src/common.h7
-rw-r--r--src/display.c1
-rw-r--r--src/errors.c1
-rw-r--r--src/frames.c1
-rw-r--r--src/keybindings.c1
-rw-r--r--src/main.c17
-rw-r--r--src/menu.c1
-rw-r--r--src/metacity.schemas23
-rw-r--r--src/prefs.c441
-rw-r--r--src/prefs.h58
-rw-r--r--src/screen.c1
-rw-r--r--src/session.c14
-rw-r--r--src/util.h5
-rw-r--r--src/window.c1
15 files changed, 567 insertions, 17 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 08f5280..0e2f9cf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,7 @@
SUBDIRS=wm-tester tools
-INCLUDES=@METACITY_CFLAGS@ -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\"
+INCLUDES=@METACITY_CFLAGS@ -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(datadir)/locale\"
metacity_SOURCES= \
common.h \
@@ -30,6 +30,8 @@ metacity_SOURCES= \
menu.h \
place.c \
place.h \
+ prefs.c \
+ prefs.h \
screen.c \
screen.h \
session.c \
@@ -54,6 +56,12 @@ metacity_LDADD= @METACITY_LIBS@
desktopfilesdir=$(datadir)/gnome/wm-properties
desktopfiles_DATA=metacity.desktop
+schemadir = @GCONF_SCHEMA_FILE_DIR@
+schema_DATA = metacity.schemas
+
+install-data-local:
+ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$(schema_DATA)
+
IMAGES=default_icon.png
VARIABLES=default_icon_data $(srcdir)/default_icon.png
@@ -63,4 +71,4 @@ CLEANFILES += inlinepixbufs.h
inlinepixbufs.h: $(IMAGES)
$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
-EXTRA_DIST=$(desktopfiles_DATA) $(IMAGES)
+EXTRA_DIST=$(desktopfiles_DATA) $(IMAGES) $(schema_DATA)
diff --git a/src/common.h b/src/common.h
index f9c75a3..9ee8042 100644
--- a/src/common.h
+++ b/src/common.h
@@ -123,6 +123,13 @@ typedef enum
} MetaCursor;
+typedef enum
+{
+ META_FOCUS_MODE_CLICK,
+ META_FOCUS_MODE_SLOPPY,
+ META_FOCUS_MODE_MOUSE
+} MetaFocusMode;
+
/* should investigate changing these to whatever most apps use */
#define META_ICON_WIDTH 32
#define META_ICON_HEIGHT 32
diff --git a/src/display.c b/src/display.c
index e51542c..2145aa1 100644
--- a/src/display.c
+++ b/src/display.c
@@ -19,6 +19,7 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "display.h"
#include "util.h"
#include "main.h"
diff --git a/src/errors.c b/src/errors.c
index 10fdc11..3bf480f 100644
--- a/src/errors.c
+++ b/src/errors.c
@@ -20,6 +20,7 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "errors.h"
#include <errno.h>
#include <stdlib.h>
diff --git a/src/frames.c b/src/frames.c
index cc48045..91becc1 100644
--- a/src/frames.c
+++ b/src/frames.c
@@ -19,6 +19,7 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "frames.h"
#include "util.h"
#include "core.h"
diff --git a/src/keybindings.c b/src/keybindings.c
index b1aac40..9d00f6e 100644
--- a/src/keybindings.c
+++ b/src/keybindings.c
@@ -19,6 +19,7 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "keybindings.h"
#include "workspace.h"
#include "errors.h"
diff --git a/src/main.c b/src/main.c
index 9d0d402..f00d87e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -19,12 +19,14 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "main.h"
#include "util.h"
#include "display.h"
#include "errors.h"
#include "ui.h"
#include "session.h"
+#include "prefs.h"
#include <glib-object.h>
@@ -74,7 +76,9 @@ main (int argc, char **argv)
act.sa_flags = 0;
sigaction (SIGPIPE, &act, 0);
- g_set_prgname (PACKAGE);
+ g_set_prgname (argv[0]);
+
+ bindtextdomain (GETTEXT_PACKAGE, METACITY_LOCALEDIR);
meta_set_verbose (TRUE);
meta_set_debugging (TRUE);
@@ -169,8 +173,8 @@ main (int argc, char **argv)
g_type_init ();
- if (!disable_sm)
- meta_session_init (client_id); /* client_id == NULL is fine */
+ /* Load prefs */
+ meta_prefs_init ();
meta_ui_init (&argc, &argv);
@@ -181,6 +185,13 @@ main (int argc, char **argv)
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_always_fatal (G_LOG_LEVEL_MASK);
+
+ /* Connect to SM as late as possible - but before managing display,
+ * or we might try to manage a window before we have the session
+ * info
+ */
+ if (!disable_sm)
+ meta_session_init (client_id); /* client_id == NULL is fine */
if (!meta_display_open (NULL))
meta_exit (META_EXIT_ERROR);
diff --git a/src/menu.c b/src/menu.c
index 72c1c86..aea8942 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -19,6 +19,7 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "menu.h"
#include "main.h"
#include "util.h"
diff --git a/src/metacity.schemas b/src/metacity.schemas
index 109c900..e8caa56 100644
--- a/src/metacity.schemas
+++ b/src/metacity.schemas
@@ -4,7 +4,8 @@
<!-- General preferences -->
<schema>
- <key>/apps/metacity/general/focus_mode</key>
+ <key>/schemas/apps/metacity/general/focus_mode</key>
+ <applyto>/apps/metacity/general/focus_mode</applyto>
<owner>metacity</owner>
<type>string</type>
<default>click</default>
@@ -22,7 +23,8 @@
</schema>
<schema>
- <key>/apps/metacity/general/titlebar_uses_desktop_font</key>
+ <key>/schemas/apps/metacity/general/titlebar_uses_desktop_font</key>
+ <applyto>/apps/metacity/general/titlebar_uses_desktop_font</applyto>
<owner>metacity</owner>
<type>bool</type>
<default>true</default>
@@ -37,7 +39,8 @@
</schema>
<schema>
- <key>/apps/metacity/general/titlebar_font</key>
+ <key>/schemas/apps/metacity/general/titlebar_font</key>
+ <applyto>/apps/metacity/general/titlebar_font</applyto>
<owner>metacity</owner>
<type>string</type>
<!-- no default is deliberate - we want to be unset by default -->
@@ -57,7 +60,8 @@
</schema>
<schema>
- <key>/apps/metacity/general/titlebar_font_size</key>
+ <key>/schemas/apps/metacity/general/titlebar_font_size</key>
+ <applyto>/apps/metacity/general/titlebar_font_size</applyto>
<owner>metacity</owner>
<type>int</type>
<default>0</default>
@@ -75,18 +79,19 @@
<!-- Keybindings -->
<schema>
- <key>/apps/metacity/keybindings/activate_window_menu</key>
+ <key>/schemas/apps/metacity/keybindings/activate_window_menu</key>
+ <applyto>/apps/metacity/keybindings/activate_window_menu</applyto>
<owner>metacity</owner>
<type>string</type>
- <default>
+ <default>&lt;Alt&gt;space</default>
<locale name="C">
<short>Activate window menu</short>
<long>
The keybinding used to activate the window menu.
- The format looks like "<Control>a" or "<Shift><Alt>F1" or
- "<Release>z" (the last one is for key release). The parser is
+ The format looks like "&lt;Control&gt;a" or "&lt;Shift&gt;&lt;Alt&gt;F1" or
+ "&lt;Release&gt;z" (the last one is for key release). The parser is
fairly liberal and allows lower or upper case, and also
- abbreviations such as "<Ctl>" and "<Ctrl>". This option can be
+ abbreviations such as "&lt;Ctl&gt;" and "&lt;Ctrl&gt;". This option can be
set to a single string, or a list of strings; if a list,
all of the given keybindings will be present. If you set
the option to the special string "disabled", then there
diff --git a/src/prefs.c b/src/prefs.c
new file mode 100644
index 0000000..a82d69a
--- /dev/null
+++ b/src/prefs.c
@@ -0,0 +1,441 @@
+/* Metacity preferences */
+
+/*
+ * Copyright (C) 2001 Havoc Pennington
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <config.h>
+#include "prefs.h"
+#include "util.h"
+#include <gconf/gconf-client.h>
+#include <string.h>
+
+/* If you add a key, it needs updating in init() and in the gconf
+ * notify listener and of course in the .schemas file
+ */
+#define KEY_FOCUS_MODE "/apps/metacity/general/focus_mode"
+#define KEY_USE_DESKTOP_FONT "/apps/metacity/general/titlebar_uses_desktop_font"
+#define KEY_TITLEBAR_FONT "/apps/metacity/general/titlebar_font"
+#define KEY_TITLEBAR_FONT_SIZE "/apps/metacity/general/titlebar_font_size"
+
+static GConfClient *client = NULL;
+static GList *listeners = NULL;
+static GList *changes = NULL;
+static guint changed_idle;
+static gboolean use_desktop_font = TRUE;
+static PangoFontDescription *titlebar_font = NULL;
+static int titlebar_font_size = 0;
+static MetaFocusMode focus_mode = META_FOCUS_MODE_CLICK;
+
+static gboolean update_use_desktop_font (gboolean value);
+static gboolean update_titlebar_font (const char *value);
+static gboolean update_titlebar_font_size (int value);
+static gboolean update_focus_mode (const char *value);
+
+static void queue_changed (MetaPreference pref);
+static void change_notify (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data);
+
+
+
+
+typedef struct
+{
+ MetaPrefsChangedFunc func;
+ gpointer data;
+} MetaPrefsListener;
+
+void
+meta_prefs_add_listener (MetaPrefsChangedFunc func,
+ gpointer data)
+{
+ MetaPrefsListener *l;
+
+ l = g_new (MetaPrefsListener, 1);
+ l->func = func;
+ l->data = data;
+
+ listeners = g_list_prepend (listeners, l);
+}
+
+void
+meta_prefs_remove_listener (MetaPrefsChangedFunc func,
+ gpointer data)
+{
+ GList *tmp;
+
+ tmp = listeners;
+ while (tmp != NULL)
+ {
+ MetaPrefsListener *l = tmp->data;
+
+ if (l->func == func &&
+ l->data == data)
+ {
+ g_free (l);
+ listeners = g_list_delete_link (listeners, tmp);
+
+ return;
+ }
+
+ tmp = tmp->next;
+ }
+
+ meta_bug ("Did not find listener to remove\n");
+}
+
+static void
+emit_changed (MetaPreference pref)
+{
+ GList *tmp;
+ GList *copy;
+
+ meta_verbose ("Notifying listeners that pref %s changed\n",
+ meta_preference_to_string (pref));
+
+ copy = g_list_copy (listeners);
+
+ tmp = copy;
+ while (tmp != NULL)
+ {
+ MetaPrefsListener *l = tmp->data;
+
+ (* l->func) (pref, l->data);
+
+ tmp = tmp->next;
+ }
+
+ g_list_free (copy);
+}
+
+static gboolean
+changed_idle_handler (gpointer data)
+{
+ GList *tmp;
+ GList *copy;
+
+ changed_idle = 0;
+
+ copy = g_list_copy (changes); /* reentrancy paranoia */
+
+ g_list_free (changes);
+ changes = NULL;
+
+ tmp = copy;
+ while (tmp != NULL)
+ {
+ MetaPreference pref = GPOINTER_TO_INT (tmp->data);
+
+ emit_changed (pref);
+
+ tmp = tmp->next;
+ }
+
+ g_list_free (copy);
+
+ return FALSE;
+}
+
+static void
+queue_changed (MetaPreference pref)
+{
+ meta_verbose ("Queueing change of pref %s\n",
+ meta_preference_to_string (pref));
+
+ if (g_list_find (changes, GINT_TO_POINTER (pref)) == NULL)
+ changes = g_list_prepend (changes, GINT_TO_POINTER (pref));
+ else
+ meta_verbose ("Change of pref %s was already pending\n",
+ meta_preference_to_string (pref));
+
+ if (changed_idle == 0)
+ changed_idle = g_idle_add (changed_idle_handler, NULL);
+}
+
+static void
+cleanup_error (GError **error)
+{
+ if (*error)
+ {
+ meta_warning ("%s", (*error)->message);
+
+ g_error_free (*error);
+ *error = NULL;
+ }
+}
+
+void
+meta_prefs_init (void)
+{
+ GError *err = NULL;
+ char *str_val;
+ int int_val;
+ gboolean bool_val;
+
+ if (client != NULL)
+ return;
+
+ /* returns a reference which we hold forever */
+ client = gconf_client_get_default ();
+
+ gconf_client_add_dir (client, "/apps/metacity",
+ GCONF_CLIENT_PRELOAD_RECURSIVE,
+ &err);
+ cleanup_error (&err);
+
+ str_val = gconf_client_get_string (client, KEY_FOCUS_MODE,
+ &err);
+ cleanup_error (&err);
+ update_focus_mode (str_val);
+ g_free (str_val);
+
+ bool_val = gconf_client_get_bool (client, KEY_USE_DESKTOP_FONT,
+ &err);
+ cleanup_error (&err);
+ update_use_desktop_font (bool_val);
+
+ int_val = gconf_client_get_int (client, KEY_TITLEBAR_FONT_SIZE,
+ &err);
+ cleanup_error (&err);
+ update_titlebar_font_size (int_val);
+
+ str_val = gconf_client_get_string (client, KEY_TITLEBAR_FONT,
+ &err);
+ cleanup_error (&err);
+ update_titlebar_font (str_val);
+ g_free (str_val);
+
+ gconf_client_notify_add (client, "/apps/metacity",
+ change_notify,
+ NULL,
+ NULL,
+ &err);
+ cleanup_error (&err);
+}
+
+static void
+change_notify (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+{
+ const char *key;
+ GConfValue *value;
+
+ key = gconf_entry_get_key (entry);
+ value = gconf_entry_get_value (entry);
+
+ if (strcmp (key, KEY_FOCUS_MODE) == 0)
+ {
+ const char *str;
+
+ if (value && value->type != GCONF_VALUE_STRING)
+ {
+ meta_warning (_("GConf key \"%s\" is set to an invalid type\n"),
+ KEY_FOCUS_MODE);
+ goto out;
+ }
+
+ str = value ? gconf_value_get_string (value) : NULL;
+
+ if (update_focus_mode (str))
+ queue_changed (META_PREF_FOCUS_MODE);
+ }
+ else if (strcmp (key, KEY_TITLEBAR_FONT) == 0)
+ {
+ const char *str;
+
+ if (value && value->type != GCONF_VALUE_STRING)
+ {
+ meta_warning (_("GConf key \"%s\" is set to an invalid type\n"),
+ KEY_TITLEBAR_FONT);
+ goto out;
+ }
+
+ str = value ? gconf_value_get_string (value) : NULL;
+
+ if (update_titlebar_font (str))
+ queue_changed (META_PREF_TITLEBAR_FONT);
+ }
+ else if (strcmp (key, KEY_TITLEBAR_FONT_SIZE) == 0)
+ {
+ int d;
+
+ if (value && value->type != GCONF_VALUE_INT)
+ {
+ meta_warning (_("GConf key \"%s\" is set to an invalid type\n"),
+ KEY_TITLEBAR_FONT_SIZE);
+ goto out;
+ }
+
+ d = value ? gconf_value_get_int (value) : 0;
+
+ if (update_titlebar_font_size (d))
+ queue_changed (META_PREF_TITLEBAR_FONT_SIZE);
+ }
+ else if (strcmp (key, KEY_USE_DESKTOP_FONT) == 0)
+ {
+ gboolean b;
+
+ if (value && value->type != GCONF_VALUE_BOOL)
+ {
+ meta_warning (_("GConf key \"%s\" is set to an invalid type\n"),
+ KEY_USE_DESKTOP_FONT);
+ goto out;
+ }
+
+ b = value ? gconf_value_get_bool (value) : TRUE;
+
+ /* There's no external pref for this, it just affects whether
+ * get_titlebar_font returns NULL, so that's what we queue
+ * the change on
+ */
+ if (update_use_desktop_font (b))
+ queue_changed (META_PREF_TITLEBAR_FONT);
+ }
+ else
+ meta_verbose ("Key %s doesn't mean anything to Metacity\n",
+ key);
+
+ out:
+ /* nothing */
+}
+
+static gboolean
+update_focus_mode (const char *value)
+{
+ MetaFocusMode old_mode = focus_mode;
+
+ if (value != NULL)
+ {
+ if (g_ascii_strcasecmp (value, "click") == 0)
+ focus_mode = META_FOCUS_MODE_CLICK;
+ else if (g_ascii_strcasecmp (value, "sloppy") == 0)
+ focus_mode = META_FOCUS_MODE_SLOPPY;
+ else if (g_ascii_strcasecmp (value, "mouse") == 0)
+ focus_mode = META_FOCUS_MODE_MOUSE;
+ else
+ meta_warning (_("GConf key '%s' is set to an invalid value"),
+ KEY_FOCUS_MODE);
+ }
+
+ return (old_mode != focus_mode);
+}
+
+MetaFocusMode
+meta_prefs_get_focus_mode (void)
+{
+ return focus_mode;
+}
+
+static gboolean
+update_use_desktop_font (gboolean value)
+{
+ gboolean old = use_desktop_font;
+
+ use_desktop_font = value;
+
+ return old != value;
+}
+
+static gboolean
+update_titlebar_font (const char *value)
+{
+ PangoFontDescription *new_desc;
+
+ new_desc = NULL;
+
+ if (value)
+ {
+ new_desc = pango_font_description_from_string (value);
+ if (new_desc == NULL)
+ meta_warning (_("Could not parse font description \"%s\" from GConf key %s\n"),
+ value, KEY_TITLEBAR_FONT);
+ }
+
+ if (new_desc && titlebar_font &&
+ pango_font_description_equal (new_desc, titlebar_font))
+ {
+ pango_font_description_free (new_desc);
+ return FALSE;
+ }
+ else
+ {
+ if (titlebar_font)
+ pango_font_description_free (titlebar_font);
+
+ titlebar_font = new_desc;
+
+ return TRUE;
+ }
+}
+
+const PangoFontDescription*
+meta_prefs_get_titlebar_font (void)
+{
+ if (use_desktop_font)
+ return NULL;
+ else
+ return titlebar_font;
+}
+
+static gboolean
+update_titlebar_font_size (int value)
+{
+ int old = titlebar_font_size;
+
+ if (value < 0)
+ {
+ meta_warning (_("%d stored in GConf key %s is not a valid font size\n"),
+ value, KEY_TITLEBAR_FONT_SIZE);
+ value = 0;
+ }
+
+ titlebar_font_size = value;
+
+ return old != titlebar_font_size;
+}
+
+int
+meta_prefs_get_titlebar_font_size (void)
+{
+ return titlebar_font_size;
+}
+
+const char*
+meta_preference_to_string (MetaPreference pref)
+{
+ switch (pref)
+ {
+ case META_PREF_FOCUS_MODE:
+ return "FOCUS_MODE";
+ break;
+
+ case META_PREF_TITLEBAR_FONT:
+ return "TITLEBAR_FONT";
+ break;
+
+ case META_PREF_TITLEBAR_FONT_SIZE:
+ return "TITLEBAR_FONT_SIZE";
+ break;
+ }
+
+ return "(unknown)";
+}
diff --git a/src/prefs.h b/src/prefs.h
new file mode 100644
index 0000000..3b45a61
--- /dev/null
+++ b/src/prefs.h
@@ -0,0 +1,58 @@
+/* Metacity preferences */
+
+/*
+ * Copyright (C) 2001 Havoc Pennington
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#ifndef META_PREFS_H
+#define META_PREFS_H
+
+/* This header is a "common" one between the UI and core side */
+#include "common.h"
+#include <pango/pango-font.h>
+
+typedef enum
+{
+ META_PREF_FOCUS_MODE,
+ META_PREF_TITLEBAR_FONT,
+ META_PREF_TITLEBAR_FONT_SIZE
+
+} MetaPreference;
+
+typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
+ gpointer data);
+
+void meta_prefs_add_listener (MetaPrefsChangedFunc func,
+ gpointer data);
+void meta_prefs_remove_listener (MetaPrefsChangedFunc func,
+ gpointer data);
+
+void meta_prefs_init (void);
+const char* meta_preference_to_string (MetaPreference pref);
+
+MetaFocusMode meta_prefs_get_focus_mode (void);
+/* returns NULL if GTK default should be used */
+const PangoFontDescription* meta_prefs_get_titlebar_font (void);
+/* returns 0 if default should be used */
+int meta_prefs_get_titlebar_font_size (void);
+
+#endif
+
+
+
+
diff --git a/src/screen.c b/src/screen.c
index 85212f9..970751b 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -19,6 +19,7 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "screen.h"
#include "util.h"
#include "errors.h"
diff --git a/src/session.c b/src/session.c
index c27208d..e3a49ac 100644
--- a/src/session.c
+++ b/src/session.c
@@ -19,6 +19,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA. */
+#include <config.h>
+
#include "session.h"
#ifndef HAVE_SM
@@ -27,6 +29,18 @@ meta_session_init (const char *previous_id)
{
meta_verbose ("Compiled without session management support\n");
}
+
+const MetaWindowSessionInfo*
+meta_window_lookup_saved_state (MetaWindow *window)
+{
+ return NULL;
+}
+
+void
+meta_window_release_saved_state (const MetaWindowSessionInfo *info)
+{
+ ;
+}
#else /* HAVE_SM */
#include <X11/ICE/ICElib.h>
diff --git a/src/util.h b/src/util.h
index 8892730..f56b5f1 100644
--- a/src/util.h
+++ b/src/util.h
@@ -46,9 +46,8 @@ void meta_fatal (const char *format,
void meta_push_no_msg_prefix (void);
void meta_pop_no_msg_prefix (void);
-/* FIXME */
-#include <config.h>
-#define _(x) x
+#include <libintl.h>
+#define _(x) dgettext (GETTEXT_PACKAGE, x)
#define N_(x) x
#endif
diff --git a/src/window.c b/src/window.c
index 99c5e16..b7b47cd 100644
--- a/src/window.c
+++ b/src/window.c
@@ -19,6 +19,7 @@
* 02111-1307, USA.
*/
+#include <config.h>
#include "window.h"
#include "util.h"
#include "frame.h"