summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-bell-increase-bell-rate-limit-from-1-s-to-1-100ms.patch34
-rw-r--r--0001-sound-ask-libcanberra-to-cache-alert-desktop-switch-.patch42
-rw-r--r--0001-tooltip-set-window-type-hint-for-self-drawn-tooltips.patch30
-rw-r--r--Add-XFCE-Terminal-as-a-terminal.patch28
-rw-r--r--cm-selection-timestamp.patch43
-rw-r--r--default-theme.patch12
-rw-r--r--metacity-2.28-IceCloseConnection.patch46
-rw-r--r--metacity-2.28-visual-bell.patch41
-rw-r--r--metacity-canberra.patch172
-rw-r--r--metacity-dont-do-bad-stuff-on-sigterm.patch64
-rw-r--r--metacity-dont-force-bell.patch11
-rw-r--r--metacity-option-to-force-fullscreen.patch142
-rw-r--r--metacity-struts.patch109
-rw-r--r--metacity.spec32
14 files changed, 5 insertions, 801 deletions
diff --git a/0001-bell-increase-bell-rate-limit-from-1-s-to-1-100ms.patch b/0001-bell-increase-bell-rate-limit-from-1-s-to-1-100ms.patch
deleted file mode 100644
index 93fbd71..0000000
--- a/0001-bell-increase-bell-rate-limit-from-1-s-to-1-100ms.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 6558e661d22d9c2a70df8ce4bddcea083e61c328 Mon Sep 17 00:00:00 2001
-From: Lennart Poettering <lennart@poettering.net>
-Date: Fri, 28 Aug 2009 05:43:14 +0200
-Subject: [PATCH] bell: increase bell rate limit from 1/s to 1/100ms
-
-Right now metacity issues only 1 bell event per second. This is
-feels buggy when triggering multiple alarm sounds in a terminal.
-
-This patch simple increases the limit to 1/100ms. 100ms is probably a
-good choice since the HIG recommends that all user reaction should
-happen within 100ms. With this applied pressing 'Left' in gnome-terminal
-feels much more responsive.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=498608
----
- src/core/display.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/core/display.c b/src/core/display.c
-index b1661e3..bf22a9e 100644
---- a/src/core/display.c
-+++ b/src/core/display.c
-@@ -2385,7 +2385,7 @@ event_callback (XEvent *event,
- {
- case XkbBellNotify:
- if (XSERVER_TIME_IS_BEFORE(display->last_bell_time,
-- xkb_ev->time - 1000))
-+ xkb_ev->time - 100))
- {
- display->last_bell_time = xkb_ev->time;
- meta_bell_notify (display, xkb_ev);
---
-1.6.4
-
diff --git a/0001-sound-ask-libcanberra-to-cache-alert-desktop-switch-.patch b/0001-sound-ask-libcanberra-to-cache-alert-desktop-switch-.patch
deleted file mode 100644
index c74b202..0000000
--- a/0001-sound-ask-libcanberra-to-cache-alert-desktop-switch-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 84e14cd8587c470e925e2fbf1a5a13c63686bcd4 Mon Sep 17 00:00:00 2001
-From: Lennart Poettering <lennart@poettering.net>
-Date: Fri, 28 Aug 2009 05:38:17 +0200
-Subject: [PATCH] sound: ask libcanberra to cache alert/desktop switch sounds
-
-These sounds are good candidates for caching in the sound server, to
-save a bit of CPU and make reaction faster. Hence, tell libcanberra to
-cache them.
----
- src/core/bell.c | 1 +
- src/core/workspace.c | 1 +
- 2 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/src/core/bell.c b/src/core/bell.c
-index 92d1dbd..676ebac 100644
---- a/src/core/bell.c
-+++ b/src/core/bell.c
-@@ -292,6 +292,7 @@ meta_bell_notify (MetaDisplay *display,
- ca_proplist_create (&p);
- ca_proplist_sets (p, CA_PROP_EVENT_ID, "bell-window-system");
- ca_proplist_sets (p, CA_PROP_EVENT_DESCRIPTION, _("Bell event"));
-+ ca_proplist_sets (p, CA_PROP_CANBERRA_CACHE_CONTROL, "permanent");
-
- window = meta_display_lookup_x_window (display, xkb_bell_event->window);
- if (!window && (display->focus_window) && (display->focus_window->frame))
-diff --git a/src/core/display.c b/src/core/display.c
-index 55c374a..b1661e3 100644
-diff --git a/src/core/workspace.c b/src/core/workspace.c
-index a0170a6..063f867 100644
---- a/src/core/workspace.c
-+++ b/src/core/workspace.c
-@@ -358,6 +358,7 @@ static void workspace_switch_sound(MetaWorkspace *from,
- ca_context_play(ca_gtk_context_get(), 1,
- CA_PROP_EVENT_ID, e,
- CA_PROP_EVENT_DESCRIPTION, "Desktop switched",
-+ CA_PROP_CANBERRA_CACHE_CONTROL, "permanent",
- NULL);
-
- finish:
---
-1.6.4
-
diff --git a/0001-tooltip-set-window-type-hint-for-self-drawn-tooltips.patch b/0001-tooltip-set-window-type-hint-for-self-drawn-tooltips.patch
deleted file mode 100644
index 716a263..0000000
--- a/0001-tooltip-set-window-type-hint-for-self-drawn-tooltips.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8132127a749b150d188631e03d36462838620a82 Mon Sep 17 00:00:00 2001
-From: Lennart Poettering <lennart@poettering.net>
-Date: Fri, 28 Aug 2009 07:29:11 +0200
-Subject: [PATCH] tooltip: set window type hint for self-drawn tooltips to GDK_WINDOW_TYPE_HINT_TOOLTIP
-
-libcanberra generates specific tooltip popup sounds and for that
-recognizes the tooltip windows by the GtkWindowTypeHint set for them.
-
-This trivial patch simply sets the hint for the self-drawn tooltips
-metacity uses.
----
- src/ui/fixedtip.c | 2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/src/ui/fixedtip.c b/src/ui/fixedtip.c
-index d2b95f2..31a6082 100644
---- a/src/ui/fixedtip.c
-+++ b/src/ui/fixedtip.c
-@@ -71,6 +71,8 @@ meta_fixed_tip_show (Display *xdisplay, int screen_number,
- if (tip == NULL)
- {
- tip = gtk_window_new (GTK_WINDOW_POPUP);
-+ gtk_window_set_type_hint (GTK_WINDOW(tip), GDK_WINDOW_TYPE_HINT_TOOLTIP);
-+
- {
- GdkScreen *gdk_screen;
- GdkRectangle monitor;
---
-1.6.4
-
diff --git a/Add-XFCE-Terminal-as-a-terminal.patch b/Add-XFCE-Terminal-as-a-terminal.patch
deleted file mode 100644
index 8a544d1..0000000
--- a/Add-XFCE-Terminal-as-a-terminal.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From bf7327acb41a43b2bdeee9f0855455ebaef8b816 Mon Sep 17 00:00:00 2001
-From: Owen W. Taylor <otaylor@fishsoup.net>
-Date: Wed, 21 Oct 2009 21:11:46 -0400
-Subject: [PATCH] Add XFCE Terminal as a terminal
-
-Include the XFCE terminal program 'Terminal' in the list of terminals.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=599262
----
- src/core/window.c | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/src/core/window.c b/src/core/window.c
-index 0ae6a01..b481ccf 100644
---- a/src/core/window.c
-+++ b/src/core/window.c
-@@ -1951,6 +1951,9 @@ __window_is_terminal (MetaWindow *window)
- /* mlterm ("multi lingual terminal emulator on X") */
- else if (strcmp (window->res_class, "mlterm") == 0)
- return TRUE;
-+ /* Terminal -- XFCE Terminal */
-+ else if (strcmp (window->res_class, "Terminal") == 0)
-+ return TRUE;
-
- return FALSE;
- }
---
-1.6.5.rc2 \ No newline at end of file
diff --git a/cm-selection-timestamp.patch b/cm-selection-timestamp.patch
deleted file mode 100644
index 93da6dd..0000000
--- a/cm-selection-timestamp.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Patch from Travis Watkins
-https://bugzilla.gnome.org/show_bug.cgi?id=530702
-
-diff -ru metacity-2.27.0/src/core/screen.c metacity-2.27.0.new/src/core/screen.c
---- metacity-2.27.0/src/core/screen.c 2008-10-19 16:15:38.000000000 -0500
-+++ metacity-2.27.0.new/src/core/screen.c 2009-08-24 04:56:26.929023537 -0500
-@@ -2782,11 +2782,14 @@
- char selection[32];
- Atom a;
-
-+ screen->wm_cm_timestamp = meta_display_get_current_time_roundtrip (
-+ screen->display);
-+
- g_snprintf (selection, sizeof(selection), "_NET_WM_CM_S%d", screen->number);
- meta_verbose ("Setting selection: %s\n", selection);
- a = XInternAtom (screen->display->xdisplay, selection, FALSE);
- XSetSelectionOwner (screen->display->xdisplay, a,
-- screen->wm_cm_selection_window, CurrentTime);
-+ screen->wm_cm_selection_window, screen->wm_cm_timestamp);
- }
-
- void
-@@ -2797,6 +2800,7 @@
-
- g_snprintf (selection, sizeof(selection), "_NET_WM_CM_S%d", screen->number);
- a = XInternAtom (screen->display->xdisplay, selection, FALSE);
-- XSetSelectionOwner (screen->display->xdisplay, a, None, CurrentTime);
-+ XSetSelectionOwner (screen->display->xdisplay, a,
-+ None, screen->wm_cm_timestamp);
- }
- #endif /* HAVE_COMPOSITE_EXTENSIONS */
-diff -ru metacity-2.27.0/src/core/screen-private.h metacity-2.27.0.new/src/core/screen-private.h
---- metacity-2.27.0/src/core/screen-private.h 2008-10-19 16:15:38.000000000 -0500
-+++ metacity-2.27.0.new/src/core/screen-private.h 2009-08-24 04:50:41.469785283 -0500
-@@ -113,6 +113,7 @@
-
- #ifdef HAVE_COMPOSITE_EXTENSIONS
- Window wm_cm_selection_window;
-+ guint32 wm_cm_timestamp;
- #endif
-
- guint work_area_idle;
-
diff --git a/default-theme.patch b/default-theme.patch
deleted file mode 100644
index e2a8e3a..0000000
--- a/default-theme.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up metacity-2.19.55/src/metacity.schemas.in.in.default-theme metacity-2.19.55/src/metacity.schemas.in.in
---- metacity-2.19.55/src/metacity.schemas.in.in.default-theme 2007-08-12 00:19:23.000000000 -0400
-+++ metacity-2.19.55/src/metacity.schemas.in.in 2007-08-12 00:19:35.000000000 -0400
-@@ -212,7 +212,7 @@
- <applyto>/apps/metacity/general/theme</applyto>
- <owner>metacity</owner>
- <type>string</type>
-- <default>Clearlooks</default>
-+ <default>Nodoka</default>
- <locale name="C">
- <short>Current theme</short>
- <long>
diff --git a/metacity-2.28-IceCloseConnection.patch b/metacity-2.28-IceCloseConnection.patch
deleted file mode 100644
index e05fc18..0000000
--- a/metacity-2.28-IceCloseConnection.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 13f6daee4752ae5b1fb61447deaca43161d5b0bc Mon Sep 17 00:00:00 2001
-From: Owen W. Taylor <otaylor@fishsoup.net>
-Date: Thu, 17 Dec 2009 16:20:18 -0500
-Subject: [PATCH] Don't call IceCloseConnection() behind libSM's back
-
-The ICE connection is opened by libSM; we can't just close it when
-we get an IOError on the ICE connection; instead call SmcCloseConnection()
-and mark the connection as closed. This will prevent a segfault if we
-exit out of the metacity main loop and get to meta_finalize().
-
-https://bugzilla.gnome.org/show_bug.cgi?id=604867
----
- src/core/session.c | 10 +++++++---
- 1 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/src/core/session.c b/src/core/session.c
-index 96d8d71..2ca15c9 100644
---- a/src/core/session.c
-+++ b/src/core/session.c
-@@ -84,6 +84,7 @@ static char* load_state (const char *previous_save_file);
- static void regenerate_save_file (void);
- static const char* full_save_file (void);
- static void warn_about_lame_clients_and_finish_interact (gboolean shutdown);
-+static void disconnect (void);
-
- /* This is called when data is available on an ICE connection. */
- static gboolean
-@@ -106,9 +107,12 @@ process_ice_messages (GIOChannel *channel,
- IcePointer context = IceGetConnectionContext (connection);
- #endif
-
-- /* We were disconnected */
-- IceSetShutdownNegotiation (connection, False);
-- IceCloseConnection (connection);
-+ /* We were disconnected; close our connection to the
-+ * session manager, this will result in the ICE connection
-+ * being cleaned up, since it is owned by libSM.
-+ */
-+ disconnect ();
-+ meta_quit (META_EXIT_SUCCESS);
-
- return FALSE;
- }
---
-1.6.5.2
-
diff --git a/metacity-2.28-visual-bell.patch b/metacity-2.28-visual-bell.patch
deleted file mode 100644
index bdc410c..0000000
--- a/metacity-2.28-visual-bell.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 80bd3db7b6711c90af19c7ee17e86aea0b804d7c Mon Sep 17 00:00:00 2001
-From: Owen W. Taylor <otaylor@fishsoup.net>
-Date: Fri, 20 Nov 2009 10:08:20 -0500
-Subject: [PATCH] Don't crash for visual bell on undecorated window
-
-When an XKB bell is sent on a undecorated window, flash the
-entire screen rather than crashing trying to flash the frame.
-
-Based on patch by Daniel Erat
-https://bugzilla.gnome.org/show_bug.cgi?id=598231
----
- src/core/bell.c | 7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/src/core/bell.c b/src/core/bell.c
-index 1e01cd6..9904f97 100644
---- a/src/core/bell.c
-+++ b/src/core/bell.c
-@@ -231,15 +231,16 @@ bell_flash_frame (MetaDisplay *display,
-
- g_assert (xkb_ev->xkb_type == XkbBellNotify);
- window = meta_display_lookup_x_window (display, xkb_bell_event->window);
-- if (!window && (display->focus_window) && (display->focus_window->frame))
-+ if (!window)
- {
- window = display->focus_window;
- }
-- if (window)
-+ if (window && window->frame)
- {
- bell_flash_window_frame (window);
- }
-- else /* revert to fullscreen flash if there's no focussed window */
-+ else /* revert to fullscreen flash if there's no focused window or if it
-+ has no frame */
- {
- bell_flash_fullscreen (display, xkb_ev);
- }
---
-1.6.5.2
-
diff --git a/metacity-canberra.patch b/metacity-canberra.patch
deleted file mode 100644
index 53f1441..0000000
--- a/metacity-canberra.patch
+++ /dev/null
@@ -1,172 +0,0 @@
---- metacity-2.25.144/configure.in 2009-02-01 15:33:42.000000000 -0500
-+++ hacked/configure.in 2009-02-09 21:15:32.000000000 -0500
-@@ -107,7 +107,7 @@
- fi
- changequote([,])dnl
-
--METACITY_PC_MODULES='gtk+-2.0 >= 2.10.0 pango >= 1.2.0'
-+METACITY_PC_MODULES='gtk+-2.0 >= 2.10.0 pango >= 1.2.0 libcanberra-gtk'
-
- AC_ARG_ENABLE(gconf,
- AC_HELP_STRING([--disable-gconf],
---- metacity-2.25.144/src/core/bell.c 2009-02-01 15:33:15.000000000 -0500
-+++ hacked/src/core/bell.c 2009-02-09 23:50:43.000000000 -0500
-@@ -52,6 +52,7 @@
- #include "bell.h"
- #include "screen-private.h"
- #include "prefs.h"
-+#include <canberra-gtk.h>
-
- /**
- * Flashes one entire screen. This is done by making a window the size of the
-@@ -223,7 +224,7 @@
- */
- static void
- bell_flash_frame (MetaDisplay *display,
-- XkbAnyEvent *xkb_ev)
-+ XkbAnyEvent *xkb_ev)
- {
- XkbBellNotifyEvent *xkb_bell_event = (XkbBellNotifyEvent *) xkb_ev;
- MetaWindow *window;
-@@ -280,6 +281,47 @@
- /* flash something */
- if (meta_prefs_get_visual_bell ())
- bell_visual_notify (display, xkb_ev);
-+
-+ if (meta_prefs_bell_is_audible ())
-+ {
-+ ca_proplist *p;
-+ XkbBellNotifyEvent *xkb_bell_event = (XkbBellNotifyEvent*) xkb_ev;
-+ MetaWindow *window;
-+ int res;
-+
-+ ca_proplist_create (&p);
-+ ca_proplist_sets (p, CA_PROP_EVENT_ID, "bell-window-system");
-+ ca_proplist_sets (p, CA_PROP_EVENT_DESCRIPTION, _("Bell event"));
-+ ca_proplist_sets (p, CA_PROP_MEDIA_ROLE, "event");
-+ ca_proplist_sets (p, CA_PROP_CANBERRA_ENABLE, "1");
-+
-+ window = meta_display_lookup_x_window (display, xkb_bell_event->window);
-+ if (!window && (display->focus_window) && (display->focus_window->frame))
-+ window = display->focus_window;
-+
-+ if (window)
-+ {
-+ ca_proplist_sets (p, CA_PROP_WINDOW_NAME, window->title);
-+ ca_proplist_setf (p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long)window->xwindow);
-+ ca_proplist_sets (p, CA_PROP_APPLICATION_NAME, window->res_name);
-+ ca_proplist_setf (p, CA_PROP_APPLICATION_PROCESS_ID, "%d", window->net_wm_pid);
-+ }
-+
-+ /* First, we try to play a real sound ... */
-+ res = ca_context_play_full (ca_gtk_context_get (), 1, p, NULL, NULL);
-+
-+ ca_proplist_destroy (p);
-+
-+ if (res != CA_SUCCESS && res != CA_ERROR_DISABLED)
-+ {
-+ /* ...and in case that failed we use the classic X11 bell. */
-+ XkbForceDeviceBell (display->xdisplay,
-+ xkb_bell_event->device,
-+ xkb_bell_event->bell_class,
-+ xkb_bell_event->bell_id,
-+ xkb_bell_event->percent);
-+ }
-+ }
- }
- #endif /* HAVE_XKB */
-
-@@ -321,8 +363,7 @@
- XkbChangeEnabledControls (display->xdisplay,
- XkbUseCoreKbd,
- XkbAudibleBellMask,
-- meta_prefs_bell_is_audible ()
-- ? XkbAudibleBellMask : 0);
-+ 0);
- if (visual_bell_auto_reset) {
- XkbSetAutoResetControls (display->xdisplay,
- XkbAudibleBellMask,
---- metacity-2.25.144/src/core/workspace.c 2009-02-01 15:33:15.000000000 -0500
-+++ hacked/src/core/workspace.c 2009-02-09 21:15:32.000000000 -0500
-@@ -29,6 +29,7 @@
- #include "prefs.h"
- #include <X11/Xatom.h>
- #include <string.h>
-+#include <canberra-gtk.h>
-
- void meta_workspace_queue_calc_showing (MetaWorkspace *workspace);
- static void set_active_space_hint (MetaScreen *screen);
-@@ -306,6 +307,63 @@
- }
- }
-
-+static void workspace_switch_sound(MetaWorkspace *from,
-+ MetaWorkspace *to) {
-+
-+ MetaWorkspaceLayout layout;
-+ int i, nw, x, y, fi, ti;
-+ const char *e;
-+
-+ nw = meta_screen_get_n_workspaces(from->screen);
-+ fi = meta_workspace_index(from);
-+ ti = meta_workspace_index(to);
-+
-+ meta_screen_calc_workspace_layout(from->screen,
-+ nw,
-+ fi,
-+ &layout);
-+
-+ for (i = 0; i < nw; i++)
-+ if (layout.grid[i] == ti)
-+ break;
-+
-+ if (i >= nw) {
-+ meta_bug("Failed to find destination workspace in layout\n");
-+ goto finish;
-+ }
-+
-+ y = i / layout.cols;
-+ x = i % layout.cols;
-+
-+ /* We priorize horizontal over vertical movements here. The
-+ rationale for this is that horizontal movements are probably more
-+ interesting for sound effects because speakers are usually
-+ positioned on a horizontal and not a vertical axis. i.e. your
-+ spatial "Woosh!" effects will easily be able to encode horizontal
-+ movement but not such much vertical movement. */
-+
-+ if (x < layout.current_col)
-+ e = "desktop-switch-left";
-+ else if (x > layout.current_col)
-+ e = "desktop-switch-right";
-+ else if (y < layout.current_row)
-+ e = "desktop-switch-up";
-+ else if (y > layout.current_row)
-+ e = "desktop-switch-down";
-+ else {
-+ meta_bug("Uh, origin and destination workspace at same logic position!\n");
-+ goto finish;
-+ }
-+
-+ ca_context_play(ca_gtk_context_get(), 1,
-+ CA_PROP_EVENT_ID, e,
-+ CA_PROP_EVENT_DESCRIPTION, "Desktop switched",
-+ NULL);
-+
-+ finish:
-+ meta_screen_free_workspace_layout (&layout);
-+}
-+
- void
- meta_workspace_activate_with_focus (MetaWorkspace *workspace,
- MetaWindow *focus_this,
-@@ -320,6 +378,9 @@
- if (workspace->screen->active_workspace == workspace)
- return;
-
-+ if (workspace->screen->active_workspace)
-+ workspace_switch_sound(workspace->screen->active_workspace, workspace);
-+
- /* Note that old can be NULL; e.g. when starting up */
- old = workspace->screen->active_workspace;
-
diff --git a/metacity-dont-do-bad-stuff-on-sigterm.patch b/metacity-dont-do-bad-stuff-on-sigterm.patch
deleted file mode 100644
index 7402e6c..0000000
--- a/metacity-dont-do-bad-stuff-on-sigterm.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -up metacity-2.28.0/src/core/main.c.sigterm metacity-2.28.0/src/core/main.c
---- metacity-2.28.0/src/core/main.c.sigterm 2009-11-05 14:53:40.599237201 -0500
-+++ metacity-2.28.0/src/core/main.c 2009-11-05 17:28:18.601486344 -0500
-@@ -67,6 +67,7 @@
- #include <fcntl.h>
- #include <locale.h>
- #include <time.h>
-+#include <unistd.h>
-
- /**
- * The exit code we'll return to our parent process when we eventually die.
-@@ -368,12 +369,25 @@ meta_finalize (void)
- meta_session_shutdown ();
- }
-
-+static int sigterm_pipe_fds[2] = { -1, -1 };
-+
- static void
- sigterm_handler (int signum)
- {
-- meta_finalize ();
-+ if (sigterm_pipe_fds[1] >= 0)
-+ {
-+ ssize_t bytes_written;
-+ bytes_written = write (sigterm_pipe_fds[1], "", 1);
-+ close (sigterm_pipe_fds[1]);
-+ sigterm_pipe_fds[1] = -1;
-+ }
-+}
-
-- exit (meta_exit_code);
-+static gboolean
-+on_sigterm (void)
-+{
-+ meta_quit (META_EXIT_SUCCESS);
-+ return FALSE;
- }
-
- static guint sigchld_signal_id = 0;
-@@ -421,6 +434,7 @@ main (int argc, char **argv)
- "Pango", "GLib-GObject", "GThread"
- };
- guint i;
-+ GIOChannel *channel;
-
- if (!g_thread_supported ())
- g_thread_init (NULL);
-@@ -443,6 +457,16 @@ main (int argc, char **argv)
- g_strerror (errno));
- #endif
-
-+ if (pipe (sigterm_pipe_fds) != 0)
-+ g_printerr ("Failed to create SIGTERM pipe: %s\n",
-+ g_strerror (errno));
-+
-+ channel = g_io_channel_unix_new (sigterm_pipe_fds[0]);
-+ g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
-+ g_io_add_watch (channel, G_IO_IN, (GIOFunc) on_sigterm, NULL);
-+ g_io_channel_set_close_on_unref (channel, TRUE);
-+ g_io_channel_unref (channel);
-+
- act.sa_handler = &sigterm_handler;
- if (sigaction (SIGTERM, &act, NULL) < 0)
- g_printerr ("Failed to register SIGTERM handler: %s\n",
diff --git a/metacity-dont-force-bell.patch b/metacity-dont-force-bell.patch
deleted file mode 100644
index f538caf..0000000
--- a/metacity-dont-force-bell.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up metacity-2.25.144/src/core/bell.c.no-more-brokkoli metacity-2.25.144/src/core/bell.c
---- metacity-2.25.144/src/core/bell.c.no-more-brokkoli 2009-02-21 12:04:32.447950258 -0500
-+++ metacity-2.25.144/src/core/bell.c 2009-02-21 12:04:41.191943469 -0500
-@@ -293,7 +293,6 @@ meta_bell_notify (MetaDisplay *display,
- ca_proplist_sets (p, CA_PROP_EVENT_ID, "bell-window-system");
- ca_proplist_sets (p, CA_PROP_EVENT_DESCRIPTION, _("Bell event"));
- ca_proplist_sets (p, CA_PROP_MEDIA_ROLE, "event");
-- ca_proplist_sets (p, CA_PROP_CANBERRA_ENABLE, "1");
-
- window = meta_display_lookup_x_window (display, xkb_bell_event->window);
- if (!window && (display->focus_window) && (display->focus_window->frame))
diff --git a/metacity-option-to-force-fullscreen.patch b/metacity-option-to-force-fullscreen.patch
deleted file mode 100644
index f09adaf..0000000
--- a/metacity-option-to-force-fullscreen.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From b625ec30d99b2dcf86d8fa78b09f6d04dce3a6e0 Mon Sep 17 00:00:00 2001
-From: Tomeu Vizoso <tomeu@sugarlabs.org>
-Date: Fri, 19 Jun 2009 15:30:37 +0000
-Subject: Add a switch to disable autofullscreen'ing maximized windows without decorations
-
----
-diff --git a/src/core/constraints.c b/src/core/constraints.c
-index 800b293..a060d20 100644
---- a/src/core/constraints.c
-+++ b/src/core/constraints.c
-@@ -27,6 +27,7 @@
- #include "constraints.h"
- #include "workspace.h"
- #include "place.h"
-+#include "prefs.h"
-
- #include <stdlib.h>
- #include <math.h>
-@@ -424,7 +425,8 @@ setup_constraint_info (ConstraintInfo *info,
- /* Workaround braindead legacy apps that don't know how to
- * fullscreen themselves properly.
- */
-- if (meta_rectangle_equal (new, &xinerama_info->rect) &&
-+ if (meta_prefs_get_force_fullscreen() &&
-+ meta_rectangle_equal (new, &xinerama_info->rect) &&
- window->has_fullscreen_func &&
- !window->fullscreen)
- {
-diff --git a/src/core/main.c b/src/core/main.c
-index 6c36f10..a36a396 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -233,6 +233,7 @@ typedef struct
- gboolean sync;
- gboolean composite;
- gboolean no_composite;
-+ gboolean no_force_fullscreen;
- } MetaArguments;
-
- #ifdef HAVE_COMPOSITE_EXTENSIONS
-@@ -314,6 +315,12 @@ meta_parse_options (int *argc, char ***argv,
- N_("Turn compositing off"),
- NULL
- },
-+ {
-+ "no-force-fullscreen", 0, COMPOSITE_OPTS_FLAGS, G_OPTION_ARG_NONE,
-+ &my_args.no_force_fullscreen,
-+ N_("Don't make fullscreen windows that are maximized and have no decorations"),
-+ NULL
-+ },
- {NULL}
- };
- GOptionContext *ctx;
-@@ -584,6 +591,9 @@ main (int argc, char **argv)
- if (meta_args.composite || meta_args.no_composite)
- meta_prefs_set_compositing_manager (meta_args.composite);
-
-+ if (meta_args.no_force_fullscreen)
-+ meta_prefs_set_force_fullscreen (FALSE);
-+
- if (!meta_display_open ())
- meta_exit (META_EXIT_ERROR);
-
-diff --git a/src/core/prefs.c b/src/core/prefs.c
-index 1f4fe41..6e41b3c 100644
---- a/src/core/prefs.c
-+++ b/src/core/prefs.c
-@@ -95,6 +95,7 @@ static char *cursor_theme = NULL;
- static int cursor_size = 24;
- static gboolean compositing_manager = FALSE;
- static gboolean resize_with_right_button = FALSE;
-+static gboolean force_fullscreen = TRUE;
-
- static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH;
- static MetaButtonLayout button_layout;
-@@ -1751,6 +1752,9 @@ meta_preference_to_string (MetaPreference pref)
-
- case META_PREF_RESIZE_WITH_RIGHT_BUTTON:
- return "RESIZE_WITH_RIGHT_BUTTON";
-+
-+ case META_PREF_FORCE_FULLSCREEN:
-+ return "FORCE_FULLSCREEN";
- }
-
- return "(unknown)";
-@@ -2737,6 +2741,12 @@ meta_prefs_get_mouse_button_menu (void)
- return resize_with_right_button ? 2: 3;
- }
-
-+gboolean
-+meta_prefs_get_force_fullscreen (void)
-+{
-+ return force_fullscreen;
-+}
-+
- void
- meta_prefs_set_compositing_manager (gboolean whether)
- {
-@@ -2797,3 +2807,10 @@ init_button_layout(void)
- };
-
- #endif
-+
-+void
-+meta_prefs_set_force_fullscreen (gboolean whether)
-+{
-+ force_fullscreen = whether;
-+}
-+
-diff --git a/src/include/prefs.h b/src/include/prefs.h
-index 2f1ce8e..a4193ff 100644
---- a/src/include/prefs.h
-+++ b/src/include/prefs.h
-@@ -59,7 +59,8 @@ typedef enum
- META_PREF_CURSOR_THEME,
- META_PREF_CURSOR_SIZE,
- META_PREF_COMPOSITING_MANAGER,
-- META_PREF_RESIZE_WITH_RIGHT_BUTTON
-+ META_PREF_RESIZE_WITH_RIGHT_BUTTON,
-+ META_PREF_FORCE_FULLSCREEN
- } MetaPreference;
-
- typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
-@@ -114,6 +115,7 @@ void meta_prefs_change_workspace_name (int i,
- const char* meta_prefs_get_cursor_theme (void);
- int meta_prefs_get_cursor_size (void);
- gboolean meta_prefs_get_compositing_manager (void);
-+gboolean meta_prefs_get_force_fullscreen (void);
-
- /**
- * Sets whether the compositor is turned on.
-@@ -122,6 +124,8 @@ gboolean meta_prefs_get_compositing_manager (void);
- */
- void meta_prefs_set_compositing_manager (gboolean whether);
-
-+void meta_prefs_set_force_fullscreen (gboolean whether);
-+
- /* XXX FIXME This should be x-macroed, but isn't yet because it would be
- * difficult (or perhaps impossible) to add the suffixes using the current
- * system. It needs some more thought, perhaps after the current system
---
-cgit v0.8.2
diff --git a/metacity-struts.patch b/metacity-struts.patch
deleted file mode 100644
index 1ec08cb..0000000
--- a/metacity-struts.patch
+++ /dev/null
@@ -1,109 +0,0 @@
---- trunk/src/core/window-props.c 2009/03/11 14:21:33 4190
-+++ trunk/src/core/window-props.c 2009/03/12 01:09:41 4191
-@@ -73,12 +73,6 @@
- ReloadValueFunc reload_func;
- } MetaWindowPropHooks;
-
--static void init_prop_value (MetaDisplay *display,
-- Atom property,
-- MetaPropValue *value);
--static void reload_prop_value (MetaWindow *window,
-- MetaPropValue *value,
-- gboolean initial);
- static MetaWindowPropHooks* find_hooks (MetaDisplay *display,
- Atom property);
-
-@@ -128,23 +122,34 @@
- g_return_if_fail (n_properties > 0);
-
- values = g_new0 (MetaPropValue, n_properties);
--
-- i = 0;
-- while (i < n_properties)
-+
-+ for (i=0; i<n_properties; i++)
- {
-- init_prop_value (window->display, properties[i], &values[i]);
-- ++i;
-+ MetaWindowPropHooks *hooks = find_hooks (window->display,
-+ properties[i]);
-+
-+ if (!hooks || hooks->type == META_PROP_VALUE_INVALID)
-+ {
-+ values[i].type = META_PROP_VALUE_INVALID;
-+ values[i].atom = None;
-+ }
-+ else
-+ {
-+ values[i].type = hooks->type;
-+ values[i].atom = properties[i];
-+ }
- }
-
- meta_prop_get_values (window->display, xwindow,
- values, n_properties);
-
-- i = 0;
-- while (i < n_properties)
-+ for (i=0; i<n_properties; i++)
- {
-- reload_prop_value (window, &values[i], initial);
--
-- ++i;
-+ MetaWindowPropHooks *hooks = find_hooks (window->display,
-+ properties[i]);
-+
-+ if (hooks && hooks->reload_func != NULL)
-+ (* hooks->reload_func) (window, &values[i], initial);
- }
-
- meta_prop_free_values (values, n_properties);
-@@ -152,37 +157,6 @@
- g_free (values);
- }
-
--/* Fill in the MetaPropValue used to get the value of "property" */
--static void
--init_prop_value (MetaDisplay *display,
-- Atom property,
-- MetaPropValue *value)
--{
-- MetaWindowPropHooks *hooks = find_hooks (display, property);
--
-- if (!hooks || hooks->type == META_PROP_VALUE_INVALID)
-- {
-- value->type = META_PROP_VALUE_INVALID;
-- value->atom = None;
-- }
-- else
-- {
-- value->type = hooks->type;
-- value->atom = property;
-- }
--}
--
--static void
--reload_prop_value (MetaWindow *window,
-- MetaPropValue *value,
-- gboolean initial)
--{
-- MetaWindowPropHooks *hooks = find_hooks (window->display, value->atom);
--
-- if (hooks && hooks->reload_func != NULL)
-- (* hooks->reload_func) (window, value, initial);
--}
--
- static void
- reload_wm_client_machine (MetaWindow *window,
- MetaPropValue *value,
-@@ -1566,6 +1540,9 @@
- display->prop_hooks_table = NULL;
- }
-
-+/**
-+ * Finds the hooks for a particular property.
-+ */
- static MetaWindowPropHooks*
- find_hooks (MetaDisplay *display,
- Atom property)
-
diff --git a/metacity.spec b/metacity.spec
index 57e4bd9..26ad936 100644
--- a/metacity.spec
+++ b/metacity.spec
@@ -2,8 +2,8 @@
Summary: Unobtrusive window manager
Name: metacity
-Version: 2.28.0
-Release: 15%{?dist}
+Version: 2.28.1
+Release: 1%{?dist}
URL: http://download.gnome.org/sources/metacity/
Source0: http://download.gnome.org/sources/metacity/2.28/metacity-%{version}.tar.bz2
# http://bugzilla.gnome.org/show_bug.cgi?id=558723
@@ -12,12 +12,6 @@ Patch4: stop-spamming-xsession-errors.patch
Patch5: dnd-keynav.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=588119
Patch6: Should-set-RestartStyleHint-to-RestartIfRunning-when.patch
-# http://bugzilla.gnome.org/show_bug.cgi?id=593355
-Patch7: 0001-bell-increase-bell-rate-limit-from-1-s-to-1-100ms.patch
-# http://bugzilla.gnome.org/show_bug.cgi?id=593356
-Patch8: 0001-sound-ask-libcanberra-to-cache-alert-desktop-switch-.patch
-# http://bugzilla.gnome.org/show_bug.cgi?id=593358
-Patch9: 0001-tooltip-set-window-type-hint-for-self-drawn-tooltips.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=336750
Patch10: screenshot-forkbomb.patch
@@ -25,17 +19,12 @@ Patch10: screenshot-forkbomb.patch
Patch11: workspaces.patch
Patch12: fresh-tooltips.patch
-# https://bugzilla.gnome.org/show_bug.cgi?id=600864
-# https://bugzilla.redhat.com/show_bug.cgi?id=533239
-Patch13: metacity-dont-do-bad-stuff-on-sigterm.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=567528
Patch14: Allow-explicit-raises-from-same-client-not-just-sa.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=445447
Patch15: Allow-applications-to-raise-windows-when-raise_on_cl.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=598995
Patch16: Dont-focus-ancestor-window-on-a-different-workspac.patch
-# https://bugzilla.gnome.org/show_bug.cgi?id=599262
-Patch17: Add-XFCE-Terminal-as-a-terminal.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=599097
Patch18: For-mouse-and-sloppy-focus-return-to-mouse-mode-on.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=599248
@@ -44,16 +33,10 @@ Patch19: Add-nofocuswindows-preference-to-list-windows-that.patch
Patch20: Add-a-newwindowsalwaysontop-preference.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=577576
Patch21: Dont-warn-about-a-missing-session-file.patch
-# https://bugzilla.gnome.org/show_bug.cgi?id=530702
-Patch22: cm-selection-timestamp.patch
-# https://bugzilla.gnome.org/show_bug.cgi?id=598231
-Patch23: metacity-2.28-visual-bell.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=559816
Patch24: metacity-2.28-empty-keybindings.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=604319
Patch25: metacity-2.28-xioerror-unknown-display.patch
-# https://bugzilla.gnome.org/show_bug.cgi?id=604867
-Patch26: metacity-2.28-IceCloseConnection.patch
License: GPLv2+
Group: User Interface/Desktops
@@ -116,27 +99,19 @@ API. This package exists purely for technical reasons.
%patch4 -p1 -b .stop-spamming-xsession-errors
%patch5 -p1 -b .dnd-keynav
%patch6 -p1 -b .restart-if-running
-%patch7 -p1 -b .bell
-%patch8 -p1 -b .sound-cache
-%patch9 -p1 -b .tooltip
%patch10 -p1 -b .screenshot-forkbomb
%patch11 -p1 -b .workspaces
%patch12 -p1 -b .fresh-tooltips
-%patch13 -p1 -b .sigterm
%patch14 -p1 -b .raises-from-same-client
%patch15 -p1 -b .raise-on-click-stacking
%patch16 -p1 -b .focus-different-workspace
-%patch17 -p1 -b .xfce-terminal
%patch18 -p1 -b .focus-on-motion
%patch19 -p1 -b .no-focus-windows
%patch20 -p1 -b .always-on-top
%patch21 -p1 -b .missing-session
-%patch22 -p1 -b .cm-selection-timestamp
-%patch23 -p1 -b .visual-bell
%patch24 -p1 -b .empty-keybindings
%patch25 -p1 -b .xioerror-unknown-display
-%patch26 -p1 -b .IceCloseConnection
# force regeneration
rm src/metacity.schemas
@@ -244,6 +219,9 @@ fi
%{_mandir}/man1/metacity-window-demo.1.gz
%changelog
+* Wed Jan 27 2010 Owen Taylor <otaylor@redhat.com> - 2.28.1-1
+- Update to 2.28.1, remove 7 patches now applied upstream
+
* Sun Jan 3 2010 Owen Taylor <otaylor@redhat.com> - 2.28.0-15
- Fix crash in _IceTransClose (rhbz 551994)
The previous patch for rhbz 539905 didn't actually fix the