Upstream git snapshot

Includes Alt-` binding which we really want for gnome-shell
Drop upstreamed patches
Switch to my auto-autogen snippet which automatically invokes configure,
so we can build from a pure git archive
Instead of using autoreconf, just rm -f configure and let autogen do
the work
This commit is contained in:
Colin Walters 2011-03-01 10:25:55 -05:00
parent 80b62641a1
commit ff7a1082ff
8 changed files with 21 additions and 453 deletions

View File

@ -1,31 +0,0 @@
From 55d4c4cc9455f348b5bc455675004a0e035ea31d Mon Sep 17 00:00:00 2001
From: Owen W. Taylor <otaylor@fishsoup.net>
Date: Tue, 17 Nov 2009 17:24:53 -0500
Subject: [PATCH] Allow applications to raise windows when raise_on_click is off
Whether Metacity honors a raise request from an application should
not be affected by the raise_on_click setting; remove a check that
seems to have been added in error.
https://bugzilla.gnome.org/show_bug.cgi?id=445447
---
src/core/window.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/src/core/window.c b/src/core/window.c
index b481ccf..db59de1 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -4716,8 +4716,7 @@ meta_window_configure_request (MetaWindow *window,
{
MetaWindow *active_window;
active_window = window->display->expected_focus_window;
- if (meta_prefs_get_disable_workarounds () ||
- !meta_prefs_get_raise_on_click ())
+ if (meta_prefs_get_disable_workarounds ())
{
meta_topic (META_DEBUG_STACK,
"%s sent an xconfigure stacking request; this is "
--
1.6.5.2

View File

@ -1,73 +0,0 @@
From 7e116a394689718567406837740679c1f1f0d74f Mon Sep 17 00:00:00 2001
From: Owen W. Taylor <otaylor@fishsoup.net>
Date: Mon, 19 Oct 2009 19:41:54 -0400
Subject: [PATCH] Allow explicit raises from same client, not just same app
We currently allow XRaiseWindow when the same application (defined
by the window group) is focused, but the kind of old applications
that XRaiseWindow are frequently not setting the window group.
Expand the check to allow the same X client (defined by the looking
at client ID) to raise windows above the focus window.
https://bugzilla.gnome.org/show_bug.cgi?id=567528
---
src/core/window.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/core/window.c b/src/core/window.c
index 6de86ee..8d029a2 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -47,6 +47,7 @@
#include "effects.h"
#include <X11/Xatom.h>
+#include <X11/Xlibint.h> /* For display->resource_mask */
#include <string.h>
#ifdef HAVE_SHAPE
@@ -72,6 +73,9 @@ static gboolean process_property_notify (MetaWindow *window,
static void meta_window_show (MetaWindow *window);
static void meta_window_hide (MetaWindow *window);
+static gboolean meta_window_same_client (MetaWindow *window,
+ MetaWindow *other_window);
+
static void meta_window_save_rect (MetaWindow *window);
static void save_user_window_placement (MetaWindow *window);
static void force_save_user_window_placement (MetaWindow *window);
@@ -4708,6 +4712,7 @@ meta_window_configure_request (MetaWindow *window,
}
else if (active_window &&
!meta_window_same_application (window, active_window) &&
+ !meta_window_same_client (window, active_window) &&
XSERVER_TIME_IS_BEFORE (window->net_wm_user_time,
active_window->net_wm_user_time))
{
@@ -7544,6 +7549,23 @@ meta_window_same_application (MetaWindow *window,
group==other_group;
}
+/* Generally meta_window_same_application() is a better idea
+ * of "sameness", since it handles the case where multiple apps
+ * want to look like the same app or the same app wants to look
+ * like multiple apps, but in the case of workarounds for legacy
+ * applications (which likely aren't setting the group properly
+ * anyways), it may be desirable to check this as well.
+ */
+static gboolean
+meta_window_same_client (MetaWindow *window,
+ MetaWindow *other_window)
+{
+ int resource_mask = window->display->xdisplay->resource_mask;
+
+ return ((window->xwindow & ~resource_mask) ==
+ (other_window->xwindow & ~resource_mask));
+}
+
void
meta_window_refresh_resize_popup (MetaWindow *window)
{
--
1.6.5.rc2

View File

@ -1,36 +0,0 @@
From 3b06d1045cc990a8610bdbd5c9b83440b1b6e932 Mon Sep 17 00:00:00 2001
From: Tomislav Vujec <tvujec@gmail.com>
Date: Tue, 17 Nov 2009 19:42:38 -0500
Subject: [PATCH] Don't warn about a missing session file
When started without session related command line parameters (e.g. from
gnome-session), metacity picks up client_id from the DESKTOP_AUTOSTART_ID
environment variable. Unfortunately, there is no way to distinguish if this was
passed from a config file, representing old saved session, or generated by
gnome-session, therefore load_state is attempted in each case. If the client_id
is generated, there will be no session file, and metacity will report a
warning.
Just remove the warning so that users won't always find a warning at the
start of their .xsession-errors.
https://bugzilla.gnome.org/show_bug.cgi?id=577576
---
src/core/session.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/src/core/session.c b/src/core/session.c
index 7e3b389..32fda97 100644
--- a/src/core/session.c
+++ b/src/core/session.c
@@ -1098,8 +1098,6 @@ load_state (const char *previous_save_file)
{
/* oh, just give up */
- meta_warning (_("Failed to read saved session file %s: %s\n"),
- canonical_session_file, error->message);
g_error_free (error);
g_free (session_file);
g_free (canonical_session_file);
--
1.6.5.2

View File

@ -1,140 +0,0 @@
From a3de65d5d1861f755ced7cad291fbbd4f1b8ef51 Mon Sep 17 00:00:00 2001
From: Owen W. Taylor <otaylor@fishsoup.net>
Date: Sat, 22 Aug 2009 15:00:57 -0400
Subject: [PATCH] Should set RestartStyleHint to RestartIfRunning when replaced
This reverts most of commit abbd057eb967e6ab462ffe305f41b2b04d417b25;
- It's fine to call meta_session_shutdown() after the display
is closed, since it's talking over the ICE connection
- We should not call warn_about_lame_clients_and_finish_interact()
unless we are interacting with the window manager in a session
save.
However, the part of abbd057 that fixed accessing freed memory was
fixing a real problem; this patches does the same thing in a simpler
way by fixing an obvious type in meta_display_close() where it was
NULL'ing out the local variable 'display' rather than the global
variable 'the_display' and adding keeping the check in meta_finalize()
that was added in abbd057.
The order of calling meta_session_shutdown() and
calling meta_display_close() is reverted back to the old order to
make it clear that it's OK if the display way already closed previously.
http://bugzilla.gnome.org/show_bug.cgi?id=588119
---
src/core/display-private.h | 2 +-
src/core/display.c | 16 ++++------------
src/core/main.c | 5 ++---
src/core/session.c | 8 --------
4 files changed, 7 insertions(+), 24 deletions(-)
diff --git a/src/core/display-private.h b/src/core/display-private.h
index 19287f3..9c8ebc6 100644
--- a/src/core/display-private.h
+++ b/src/core/display-private.h
@@ -329,7 +329,7 @@ MetaScreen* meta_display_screen_for_xwindow (MetaDisplay *display,
void meta_display_grab (MetaDisplay *display);
void meta_display_ungrab (MetaDisplay *display);
-void meta_display_unmanage_screen (MetaDisplay **display,
+void meta_display_unmanage_screen (MetaDisplay *display,
MetaScreen *screen,
guint32 timestamp);
diff --git a/src/core/display.c b/src/core/display.c
index 55c374a..8e35a35 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -926,7 +926,7 @@ meta_display_close (MetaDisplay *display,
meta_compositor_destroy (display->compositor);
g_free (display);
- display = NULL;
+ the_display = NULL;
meta_quit (META_EXIT_SUCCESS);
}
@@ -4762,13 +4762,10 @@ process_selection_clear (MetaDisplay *display,
meta_verbose ("Got selection clear for screen %d on display %s\n",
screen->number, display->name);
- meta_display_unmanage_screen (&display,
+ meta_display_unmanage_screen (display,
screen,
event->xselectionclear.time);
- if (!display)
- the_display = NULL;
-
/* display and screen may both be invalid memory... */
return;
@@ -4790,12 +4787,10 @@ process_selection_clear (MetaDisplay *display,
}
void
-meta_display_unmanage_screen (MetaDisplay **displayp,
+meta_display_unmanage_screen (MetaDisplay *display,
MetaScreen *screen,
guint32 timestamp)
{
- MetaDisplay *display = *displayp;
-
meta_verbose ("Unmanaging screen %d on display %s\n",
screen->number, display->name);
@@ -4805,10 +4800,7 @@ meta_display_unmanage_screen (MetaDisplay **displayp,
display->screens = g_slist_remove (display->screens, screen);
if (display->screens == NULL)
- {
- meta_display_close (display, timestamp);
- *displayp = NULL;
- }
+ meta_display_close (display, timestamp);
}
void
diff --git a/src/core/main.c b/src/core/main.c
index a36a396..44d317e 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -361,12 +361,11 @@ static void
meta_finalize (void)
{
MetaDisplay *display = meta_get_display();
-
- meta_session_shutdown ();
-
if (display)
meta_display_close (display,
CurrentTime); /* I doubt correct timestamps matter here */
+
+ meta_session_shutdown ();
}
static void
diff --git a/src/core/session.c b/src/core/session.c
index 7e3b389..0d69350 100644
--- a/src/core/session.c
+++ b/src/core/session.c
@@ -376,14 +376,6 @@ meta_session_shutdown (void)
SmProp *props[1];
char hint = SmRestartIfRunning;
- if (!meta_get_display ())
- {
- meta_verbose ("Cannot close session because there is no display");
- return;
- }
-
- warn_about_lame_clients_and_finish_interact (FALSE);
-
if (session_connection == NULL)
return;
--
1.6.4

View File

@ -1,12 +0,0 @@
diff -up metacity-2.28.1/src/tools/Makefile.am.libs metacity-2.28.1/src/tools/Makefile.am
--- metacity-2.28.1/src/tools/Makefile.am.libs 2010-02-26 23:00:43.446410930 -0500
+++ metacity-2.28.1/src/tools/Makefile.am 2010-02-26 23:00:55.805414773 -0500
@@ -26,7 +26,7 @@ noinst_PROGRAMS=metacity-mag metacity-gr
metacity_message_LDADD= @METACITY_MESSAGE_LIBS@
metacity_window_demo_LDADD= @METACITY_WINDOW_DEMO_LIBS@
-metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@
+metacity_mag_LDADD= @METACITY_WINDOW_DEMO_LIBS@ -lm
metacity_grayscale_LDADD = @METACITY_WINDOW_DEMO_LIBS@
EXTRA_DIST=$(icon_DATA)

View File

@ -2,16 +2,17 @@
Summary: Unobtrusive window manager
Name: metacity
Version: 2.30.3
Release: 5%{?dist}
Version: 2.32.0
Release: 1.git20110228%{?dist}
URL: http://download.gnome.org/sources/metacity/
Source0: http://download.gnome.org/sources/metacity/2.30/metacity-%{version}.tar.bz2
# Current metacity "tarball" was generated with
# git archive --format=tar --prefix=metacity-2.32.0-git20110228/ HEAD | bzip2
Source0: metacity-2.32-git20110228.tar.bz2
#Source0: http://download.gnome.org/sources/metacity/2.30/metacity-%{version}.tar.bz2
# http://bugzilla.gnome.org/show_bug.cgi?id=558723
Patch4: stop-spamming-xsession-errors.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=135056
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=336750
Patch10: screenshot-forkbomb.patch
@ -19,10 +20,6 @@ Patch10: screenshot-forkbomb.patch
Patch11: workspaces.patch
Patch12: fresh-tooltips.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=599097
@ -102,16 +99,13 @@ programs using the metacity-private library, since it is a private
API. This package exists purely for technical reasons.
%prep
%setup -q
%setup -q -n metacity-2.32.0-git20110228
%patch4 -p1 -b .stop-spamming-xsession-errors
%patch5 -p1 -b .dnd-keynav
%patch6 -p1 -b .restart-if-running
%patch10 -p1 -b .screenshot-forkbomb
%patch11 -p1 -b .workspaces
%patch12 -p1 -b .fresh-tooltips
%patch14 -p1 -b .raises-from-same-client
%patch15 -p1 -b .raise-on-click-stacking
%patch16 -p1 -b .focus-different-workspace
%patch18 -p1 -b .focus-on-motion
%patch19 -p1 -b .no-focus-windows
@ -127,15 +121,16 @@ API. This package exists purely for technical reasons.
cp -p %{SOURCE1} %{SOURCE2} src/
# force regeneration
rm src/metacity.schemas
autoreconf -i -f
rm -f src/metacity.schemas
%build
CPPFLAGS="$CPPFLAGS -I$RPM_BUILD_ROOT%{_includedir}"
export CPPFLAGS
%configure --disable-static
# Always rerun configure for now
rm -f configure
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; fi;
%configure --disable-static)
SHOULD_HAVE_DEFINED="HAVE_SM HAVE_XINERAMA HAVE_XFREE_XINERAMA HAVE_SHAPE HAVE_RANDR HAVE_STARTUP_NOTIFICATION"
@ -217,6 +212,15 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%{_mandir}/man1/metacity-window-demo.1.gz
%changelog
* Mon Feb 28 2011 Colin Walters <walters@verbum.org> - 2.32.0-1.git20110228
- Upstream git snapshot
Includes Alt-` binding which we really want for gnome-shell
- Drop upstreamed patches
- Switch to my auto-autogen snippet which automatically invokes configure,
so we can build from a pure git archive
- Instead of using autoreconf, just rm -f configure and let autogen do
the work
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.30.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

View File

@ -1,133 +0,0 @@
--- metacity-2.27.0/src/core/session.c 2009-02-20 10:26:32.000000000 -0500
+++ hacked/src/core/session.c 2009-06-07 23:46:25.927041281 -0400
@@ -82,7 +82,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 finish_interact (gboolean shutdown);
/* This is called when data is available on an ICE connection. */
static gboolean
@@ -382,7 +382,7 @@
return;
}
- warn_about_lame_clients_and_finish_interact (FALSE);
+ finish_interact (FALSE);
if (session_connection == NULL)
return;
@@ -584,7 +584,7 @@
current_state = STATE_DONE_WITH_INTERACT;
- warn_about_lame_clients_and_finish_interact (shutdown);
+ finish_interact (shutdown);
}
static void
@@ -1724,13 +1724,6 @@
return full_save_path;
}
-static int
-windows_cmp_by_title (MetaWindow *a,
- MetaWindow *b)
-{
- return g_utf8_collate (a->title, b->title);
-}
-
static void
finish_interact (gboolean shutdown)
{
@@ -1742,89 +1735,4 @@
}
}
-static void
-sigchld_handler (MetaNexus *nexus, guint arg1, gpointer arg2, gpointer user_data)
-{
- gboolean shutdown = GPOINTER_TO_INT (user_data);
-
- if (arg1 == 0) /* pressed "OK" */
- {
- finish_interact (shutdown);
- }
-}
-
-static void
-warn_about_lame_clients_and_finish_interact (gboolean shutdown)
-{
- GSList *lame = NULL;
- GSList *windows;
- GSList *lame_details = NULL;
- GSList *tmp;
- GSList *columns = NULL;
-
- windows = meta_display_list_windows (meta_get_display ());
- tmp = windows;
- while (tmp != NULL)
- {
- MetaWindow *window;
-
- window = tmp->data;
-
- /* only complain about normal windows, the others
- * are kind of dumb to worry about
- */
- if (window->sm_client_id == NULL &&
- window->type == META_WINDOW_NORMAL)
- lame = g_slist_prepend (lame, window);
-
- tmp = tmp->next;
- }
-
- g_slist_free (windows);
-
- if (lame == NULL)
- {
- /* No lame apps. */
- finish_interact (shutdown);
- return;
- }
-
- columns = g_slist_prepend (columns, "Window");
- columns = g_slist_prepend (columns, "Class");
-
- lame = g_slist_sort (lame, (GCompareFunc) windows_cmp_by_title);
-
- tmp = lame;
- while (tmp != NULL)
- {
- MetaWindow *w = tmp->data;
-
- lame_details = g_slist_prepend (lame_details,
- w->res_class ? w->res_class : "");
- lame_details = g_slist_prepend (lame_details,
- w->title);
-
- tmp = tmp->next;
- }
- g_slist_free (lame);
-
- meta_show_dialog("--list",
- _("These windows do not support &quot;save current setup&quot; "
- "and will have to be restarted manually next time "
- "you log in."),
- "240",
- meta_screen_get_screen_number (meta_get_display()->active_screen),
- NULL, NULL,
- None,
- columns,
- lame_details);
-
- g_slist_free (lame_details);
-
- g_signal_connect (sigchld_nexus, "sigchld",
- G_CALLBACK (sigchld_handler),
- GINT_TO_POINTER (shutdown));
-
-}
-
#endif /* HAVE_SM */

View File

@ -1,11 +0,0 @@
--- metacity-2.30.0/src/core/core.c.orig 2010-03-31 21:37:39.000000000 +0100
+++ metacity-2.30.0/src/core/core.c 2010-04-01 15:59:26.000000000 +0100
@@ -520,7 +520,7 @@ meta_core_get_menu_accelerator (MetaMenu
switch (menu_op)
{
case META_MENU_OP_NONE:
- name = "none";
+ /* No keybinding for this one */
break;
case META_MENU_OP_DELETE:
name = "close";