diff --git a/.gitignore b/.gitignore index bc8d4e8..c7fbc64 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /setlayout.c -/openbox-3.5.0.tar.gz +/openbox-20121001git782b28.tar.xz diff --git a/openbox-3.5.0-Fix-crash-on-unexpected-NET_WM_MOVERESIZE_CANCEL-messages.patch b/openbox-3.5.0-Fix-crash-on-unexpected-NET_WM_MOVERESIZE_CANCEL-messages.patch deleted file mode 100644 index 174482d..0000000 --- a/openbox-3.5.0-Fix-crash-on-unexpected-NET_WM_MOVERESIZE_CANCEL-messages.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 339c19d1b3a7a5139aed8b59bad755ddd0e518ff Mon Sep 17 00:00:00 2001 -From: Mikael Magnusson -Date: Sun, 3 Jun 2012 20:18:48 +0200 -Subject: [PATCH] Fix crash on unexpected NET_WM_MOVERESIZE_CANCEL messages - -gtk+ 3.4 apparently sends these randomly when you select text in a -GtkEntry. This also fixes bug #5460. ---- - openbox/event.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/openbox/event.c b/openbox/event.c -index b9ec1c5..4d091bf 100644 ---- a/openbox/event.c -+++ b/openbox/event.c -@@ -1495,7 +1495,8 @@ static void event_handle_client(ObClient *client, XEvent *e) - } - else if ((Atom)e->xclient.data.l[2] == - OBT_PROP_ATOM(NET_WM_MOVERESIZE_CANCEL)) -- moveresize_end(TRUE); -+ if (moveresize_client) -+ moveresize_end(TRUE); - } else if (msgtype == OBT_PROP_ATOM(NET_MOVERESIZE_WINDOW)) { - gint ograv, x, y, w, h; - --- -1.7.10 - diff --git a/openbox-3.5.0-gnomesession-fixes.patch b/openbox-3.5.0-gnomesession-fixes.patch deleted file mode 100644 index fa2f11d..0000000 --- a/openbox-3.5.0-gnomesession-fixes.patch +++ /dev/null @@ -1,96 +0,0 @@ -From: Dana Jansens -Date: Sat, 15 Oct 2011 19:07:59 +0000 (-0400) -Subject: Fixes for gnome-session 3. -X-Git-Url: http://git.openbox.org/?p=dana%2Fopenbox.git;a=commitdiff_plain;h=3991e148e2acbc3da3b9c31e2459b20a4e598a03 - -Fixes for gnome-session 3. - -We run by default with a panel (default gnome-panel) and then run Openbox -without any panel if one cannot be found. - -- Adds a fallback session for if a panel (default gnome-panel) not found. -- Removes notifications as a requirement. Seems to be a legacy thing judging - from the ubuntu .session files. Notifications are being provided by - notify-osd on modern systems, and you can't check for its presence in - gnome-session (gnome-classic.session always fails because it looks for it, so - ubuntu falls back to gnome-fallback.session). ---- - -diff --git a/Makefile.am b/Makefile.am -index 4f60bd0..1f7427c 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -516,7 +516,8 @@ nodist_xsessions_DATA = \ - data/xsession/openbox-kde.desktop - - dist_gnomesession_DATA = \ -- data/xsession/openbox-gnome.session -+ data/gnome-session/openbox-gnome.session \ -+ data/gnome-session/openbox-gnome-fallback.session - - dist_noinst_DATA = \ - data/rc.xsd \ -diff --git a/data/gnome-session/Makefile b/data/gnome-session/Makefile -new file mode 100644 -index 0000000..b90edac ---- /dev/null -+++ b/data/gnome-session/Makefile -@@ -0,0 +1,4 @@ -+all clean install: -+ $(MAKE) -C .. -$(MAKEFLAGS) $@ -+ -+.PHONY: all clean install -diff --git a/data/gnome-session/openbox-gnome-fallback.session b/data/gnome-session/openbox-gnome-fallback.session -new file mode 100644 -index 0000000..156f2c3 ---- /dev/null -+++ b/data/gnome-session/openbox-gnome-fallback.session -@@ -0,0 +1,6 @@ -+[GNOME Session] -+Name=GNOME/Openbox fallback (Safe Mode) -+RequiredComponents=gnome-settings-daemon; -+RequiredProviders=windowmanager; -+DefaultProvider-windowmanager=openbox -+DesktopName=GNOME -diff --git a/data/gnome-session/openbox-gnome.session b/data/gnome-session/openbox-gnome.session -new file mode 100644 -index 0000000..3399c2c ---- /dev/null -+++ b/data/gnome-session/openbox-gnome.session -@@ -0,0 +1,9 @@ -+[GNOME Session] -+Name=GNOME/Openbox -+RequiredComponents=gnome-settings-daemon; -+# Try load with the gnome-panel and use the fallback if we can't load a panel -+RequiredProviders=windowmanager;panel -+DefaultProvider-windowmanager=openbox -+DefaultProvider-panel=gnome-panel -+FallbackSession=openbox-gnome-fallback -+DesktopName=GNOME -diff --git a/data/openbox.desktop b/data/openbox.desktop -index 9c19e67..d49ae22 100644 ---- a/data/openbox.desktop -+++ b/data/openbox.desktop -@@ -7,6 +7,10 @@ Icon=openbox - NoDisplay=true - # name we put on the WM spec check window - X-GNOME-WMName=Openbox -+# gnome-session autostart - X-GNOME-Autostart-Phase=WindowManager - X-GNOME-Provides=windowmanager -+# Ubuntu stuff -+X-Ubuntu-Gettext-Domain=openbox -+# back compat - X-GNOME-Autostart-Notify=true -diff --git a/data/xsession/openbox-gnome.session b/data/xsession/openbox-gnome.session -deleted file mode 100644 -index 2d8f07b..0000000 ---- a/data/xsession/openbox-gnome.session -+++ /dev/null -@@ -1,6 +0,0 @@ --[GNOME Session] --Name=GNOME/Openbox --RequiredComponents=gnome-panel;gnome-settings-daemon; --RequiredProviders=windowmanager;notifications; --DefaultProvider-windowmanager=openbox --DefaultProvider-notifications=notification-daemon diff --git a/openbox-3.5.0-gnomesession.patch b/openbox-3.5.0-gnomesession.patch deleted file mode 100644 index 1dc442e..0000000 --- a/openbox-3.5.0-gnomesession.patch +++ /dev/null @@ -1,76 +0,0 @@ -From: Geoffrey Antos -Date: Fri, 7 Oct 2011 13:29:30 +0000 (-0400) -Subject: Make openbox-gnome-session compatible with gnome3 with gnome-session 3.0+ support. -X-Git-Url: http://git.openbox.org/?p=dana%2Fopenbox.git;a=commitdiff_plain;h=3f870080de978e905f764b6cbc8e662a419d8983 - -Make openbox-gnome-session compatible with gnome3 with gnome-session 3.0+ support. - -Yay they did something nice and made it easier for other window managers to be used. How unexpected and pleasant. ---- - -diff --git a/Makefile.am b/Makefile.am -index c62a594..7ed1f6a 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -6,6 +6,7 @@ localedir = $(datadir)/locale - configdir = $(sysconfdir)/xdg - rcdir = $(configdir)/openbox - xsessionsdir = $(datadir)/xsessions -+gnomesessiondir = $(datadir)/gnome-session/sessions - gnomewmfilesdir = $(datadir)/gnome/wm-properties - pkgconfigdir = $(libdir)/pkgconfig - obtpubincludedir= $(includedir)/openbox/@OBT_VERSION@/obt -@@ -513,6 +514,9 @@ nodist_xsessions_DATA = \ - data/xsession/openbox-gnome.desktop \ - data/xsession/openbox-kde.desktop - -+dist_gnomesession_DATA = \ -+ data/xsession/openbox-gnome.session -+ - dist_noinst_DATA = \ - data/rc.xsd \ - data/menu.xsd \ -diff --git a/data/xsession/openbox-gnome-session.in b/data/xsession/openbox-gnome-session.in -index 8dd799c..f31c9ad 100644 ---- a/data/xsession/openbox-gnome-session.in -+++ b/data/xsession/openbox-gnome-session.in -@@ -21,11 +21,11 @@ MINOR=$(echo $VER | cut -d . -f 2) - # run GNOME with Openbox as its window manager - - if test $MAJOR -lt 2 || (test $MAJOR = 2 && test $MINOR -le 22); then -- # old gnome-session was easy to work with -+ # older gnome-session was easy to work with - export WINDOW_MANAGER="@bindir@/openbox" - exec gnome-session --choose-session=openbox-session "$@" --else -- # new gnome-session requires openbox to be set in gconf and an -+elif test $MAJOR -lt 3; then -+ # old gnome-session requires openbox to be set in gconf and an - # openbox.desktop to be installed in the applications directory - - SPATH=/desktop/gnome/session -@@ -54,6 +54,12 @@ else - - # run GNOME/Openbox - exec gnome-session --default-session-key $SPATH/openbox_session "$@" -+else -+ # new gnome-session requires session file installed in -+ # /usr/share/gnome-session/sessions as well as openbox.desktop to be -+ # installed in the applications directory -+ -+ exec gnome-session --session=openbox-gnome - fi - - -diff --git a/data/xsession/openbox-gnome.session b/data/xsession/openbox-gnome.session -new file mode 100644 -index 0000000..2d8f07b ---- /dev/null -+++ b/data/xsession/openbox-gnome.session -@@ -0,0 +1,6 @@ -+[GNOME Session] -+Name=GNOME/Openbox -+RequiredComponents=gnome-panel;gnome-settings-daemon; -+RequiredProviders=windowmanager;notifications; -+DefaultProvider-windowmanager=openbox -+DefaultProvider-notifications=notification-daemon diff --git a/openbox-doubleclick.patch b/openbox-doubleclick.patch deleted file mode 100644 index dc668dd..0000000 --- a/openbox-doubleclick.patch +++ /dev/null @@ -1,97 +0,0 @@ -commit c885c9a676e4860a68f0bdce4b926902f6597ebb -Author: Mikael Magnusson -Date: Thu Aug 4 18:34:54 2011 +0200 - - Change default doubleclick timeout to 500ms and keep track of where last click was - - Bug #5152 - "mouse double-click time is too low by default - 200ms" - - We only use the doubleclick in one place in the default configuration, - for doubleclicking titlebars to maximize windows, so any negative impact - of increasing the timeout should be minimal, especially with the - addition of requiring the two clicks to be in the same place. - - Doubleclicks are hardcoded to occur within 8 pixels for now, it doesn't - seem worth it to add a config until someone complains. A possibility is - using the drag threshold, but some people have that set very low so it - could be hard to doubleclick then. - -diff --git a/data/rc.xml b/data/rc.xml -index 7598a72..209cc2d 100644 ---- a/data/rc.xml -+++ b/data/rc.xml -@@ -313,7 +313,7 @@ - - 1 - -- 200 -+ 500 - - 400 - -- 200 -+ 500 - - - -diff --git a/openbox/config.c b/openbox/config.c -index debd9fb..8e0e5ac 100644 ---- a/openbox/config.c -+++ b/openbox/config.c -@@ -1070,7 +1070,7 @@ void config_startup(ObtXmlInst *i) - obt_xml_register(i, "keyboard", parse_keyboard, NULL); - - config_mouse_threshold = 8; -- config_mouse_dclicktime = 200; -+ config_mouse_dclicktime = 500; - config_mouse_screenedgetime = 400; - config_mouse_screenedgewarp = FALSE; - -diff --git a/openbox/mouse.c b/openbox/mouse.c -index ddf6851..2f0c8f5 100644 ---- a/openbox/mouse.c -+++ b/openbox/mouse.c -@@ -211,7 +211,7 @@ gboolean mouse_event(ObClient *client, XEvent *e) - static Time ltime; - static guint button = 0, state = 0, lbutton = 0; - static Window lwindow = None; -- static gint px, py, pwx = -1, pwy = -1; -+ static gint px, py, pwx = -1, pwy = -1, lx = -10, ly = -10; - gboolean used = FALSE; - - ObFrameContext context; -@@ -290,18 +290,24 @@ gboolean mouse_event(ObClient *client, XEvent *e) - if (e->xbutton.x >= (signed)-b && - e->xbutton.y >= (signed)-b && - e->xbutton.x < (signed)(w+b) && -- e->xbutton.y < (signed)(h+b)) { -+ e->xbutton.y < (signed)(h+b)) -+ { - click = TRUE; - /* double clicks happen if there were 2 in a row! */ - if (lbutton == button && - lwindow == e->xbutton.window && - e->xbutton.time - config_mouse_dclicktime <= -- ltime) { -+ ltime && -+ ABS(e->xbutton.x - lx) < 8 && -+ ABS(e->xbutton.y - ly) < 8) -+ { - dclick = TRUE; - lbutton = 0; - } else { - lbutton = button; - lwindow = e->xbutton.window; -+ lx = e->xbutton.x; -+ ly = e->xbutton.y; - } - } else { - lbutton = 0; diff --git a/openbox.spec b/openbox.spec index 43c6d83..7dab7bd 100644 --- a/openbox.spec +++ b/openbox.spec @@ -1,26 +1,22 @@ +%global gitdate 20121001 +%global gitrev 782b28 Name: openbox Version: 3.5.0 -Release: 10%{?dist} +Release: 10.%{gitdate}git%{gitrev}%{?dist} Summary: A highly configurable and standards-compliant X11 window manager Group: User Interface/Desktops License: GPLv2+ URL: http://openbox.org -Source0: http://openbox.org/releases/%{name}-%{version}.tar.gz +# git clone git://git.openbox.org/dana/openbox; cd openbox +# git archive --prefix=openbox/ %{gitrev} | xz > openbox-%{gitdate}git%{gitrev}.tar.xz +Source0: %{name}-%{gitdate}git%{gitrev}.tar.xz +#Source0: http://openbox.org/releases/%{name}-%{version}.tar.gz Source1: http://icculus.org/openbox/tools/setlayout.c Source2: xdg-menu Source3: menu.xml Source4: terminals.menu -Patch1: openbox-doubleclick.patch -#Patch2: openbox-3.4.11.2-gnomesession.patch -# http://git.openbox.org/?p=dana/openbox.git;a=commit;h=3f870080 -Patch2: openbox-3.5.0-gnomesession.patch -# http://git.openbox.org/?p=dana/openbox.git;a=commit;h=3991e148 -Patch3: openbox-3.5.0-gnomesession-fixes.patch -# https://github.com/Mikachu/openbox/commit/339c19d1 -Patch4: openbox-3.5.0-Fix-crash-on-unexpected-NET_WM_MOVERESIZE_CANCEL-messages.patch - Requires: %{name}-libs = %{version}-%{release} # required by xdg-menu and xdg-autostart scripts @@ -38,6 +34,8 @@ BuildRequires: libXt-devel BuildRequires: libXrandr-devel BuildRequires: libXinerama-devel BuildRequires: imlib2-devel +# extra dependencies to build from git snapshot +BuildRequires: automake gettext-devel libtool Provides: firstboot(windowmanager) %description @@ -126,15 +124,11 @@ KDE session. %prep -%setup -q -%patch1 -p1 -b .doubleclick -# patch 3 depends on patch2! -%patch2 -p1 -b .gnomesession -%patch3 -p1 -b .gnomesession-fixes -%patch4 -p1 -b .fix-crash +%setup -q -n %{name} %build +./bootstrap %configure \ --disable-static ## Fix RPATH hardcoding. diff --git a/sources b/sources index 9f31b00..f0df562 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 16ca0d290cae2f4c16a35e9cdfb6f503 setlayout.c -00441b53cf14c03566c8e82643544ff9 openbox-3.5.0.tar.gz +95b58450f1383391c1e3e49c80a23144 openbox-20121001git782b28.tar.xz