Compare commits

...
Sign in to create a new pull request.

70 commits

Author SHA1 Message Date
Fedora Release Engineering
c15289f256 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-16 10:24:09 +00:00
Fedora Release Engineering
ecf1c2a202 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 22:53:21 +00:00
Fedora Release Engineering
519c7b74d0 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 23:33:12 +00:00
Fedora Release Engineering
d7cea7556d Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 21:35:38 +00:00
Fedora Release Engineering
df30a3ba8b Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 20:47:12 +00:00
Software Management Team
ec4f1c94fa Eliminate use of obsolete %patchN syntax (#2283636) 2024-05-30 12:46:48 +02:00
Fedora Release Engineering
da176870d3 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 11:08:23 +00:00
Fedora Release Engineering
fac6e6fd66 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 11:05:14 +00:00
Miroslav Lichvar
bb69724b82 convert license tag to SPDX 2023-10-05 16:27:22 +02:00
Fedora Release Engineering
fcf2dcdb06 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 17:58:28 +00:00
Leigh Scott
9ebd99a8a9 Rebuild fo new imlib2 2023-06-13 16:57:34 +01:00
Miroslav Lichvar
a0c5fd8179 3.6.1-22 2023-04-27 18:09:09 +02:00
Miroslav Lichvar
02cd56be9f fix crash with new glib (#2178299) 2023-04-27 18:09:05 +02:00
Fedora Release Engineering
4f59b89887 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 22:44:57 +00:00
Fedora Release Engineering
538b8a9951 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 02:00:05 +00:00
Fedora Release Engineering
e2e012a900 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 22:18:05 +00:00
Fedora Release Engineering
dc5fdda26f - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 17:10:08 +00:00
Fedora Release Engineering
5ebdc9f36b - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 22:26:56 +00:00
Tom Stellard
9505fcee96 Use make macros
https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
2021-01-21 10:34:10 +01:00
Tom Stellard
56d1937abd Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-07 06:28:26 +00:00
Miroslav Lichvar
515c4e82f7 3.6.1-16 2020-11-09 10:53:19 +01:00
Miroslav Lichvar
7ab6491db4 drop obsolete KDE4 requirement 2020-11-09 10:52:40 +01:00
Miroslav Lichvar
6686f2eda7 update XDG menu prefix in KDE session script (#1851755) 2020-11-09 10:45:05 +01:00
Fedora Release Engineering
22c966a6ce - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 12:39:13 +00:00
Fedora Release Engineering
0c05a8d893 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 20:12:38 +00:00
Miroslav Lichvar
9ab2ba9e5b 3.6.1-13 2019-10-09 09:53:45 +02:00
Miroslav Lichvar
16993a0cba remove obmenu from description 2019-08-07 16:27:42 +02:00
Fedora Release Engineering
d264c72005 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 23:22:40 +00:00
Fedora Release Engineering
f015c5d0aa - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 17:19:24 +00:00
a0d3e620d3 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:23 +01:00
Fedora Release Engineering
45a5edf5db - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 15:03:04 +00:00
Miroslav Lichvar
3799f579f5 3.6.1-9 2018-04-17 16:47:17 +02:00
Miroslav Lichvar
1f78fc3b0a fix pyxdg requirement 2018-04-17 16:47:02 +02:00
Miroslav Lichvar
79bc53b349 3.6.1-8 2018-04-17 16:02:07 +02:00
Miroslav Lichvar
aa3375fc38 switch packaged python scripts to python3 2018-04-17 16:02:01 +02:00
Miroslav Lichvar
570af1dcf7 3.6.1-7 2018-02-26 16:20:15 +01:00
Miroslav Lichvar
0a17192029 add gcc to build requirements 2018-02-26 16:18:12 +01:00
Miroslav Lichvar
f803053bff use macro for ldconfig scriptlets 2018-02-26 16:17:49 +01:00
Miroslav Lichvar
bed7f45659 build setlayout with hardening LDFLAGS (#1548830) 2018-02-26 16:13:00 +01:00
Fedora Release Engineering
261ce9a6da - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-08 09:23:03 +00:00
Fedora Release Engineering
8eaa2c2438 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 04:29:27 +00:00
Fedora Release Engineering
c03e678995 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 01:44:20 +00:00
Fedora Release Engineering
2233aa4021 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-11 00:48:26 +00:00
Fedora Release Engineering
4c96147b3d - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 11:24:32 +00:00
Miroslav Lichvar
7048fb346f 3.6.1-1 2015-07-02 10:55:26 +02:00
Miroslav Lichvar
7b5e7ccbe1 update to 3.6.1 2015-07-02 10:51:57 +02:00
Miroslav Lichvar
f69ce204b4 3.6-3 2015-06-25 17:40:08 +02:00
Miroslav Lichvar
3fbd74b7d7 restore libobrender compatibility (#1231693) 2015-06-25 17:39:56 +02:00
Dennis Gilmore
6b93040490 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-17 23:53:45 +00:00
Miroslav Lichvar
83bc9c5f70 3.6-1 2015-06-01 15:50:24 +02:00
Miroslav Lichvar
1747e5e9bb update to 3.6 2015-06-01 15:50:12 +02:00
Rex Dieter
9d417f62f6 kde: fix deps for plasma5 2015-03-05 12:04:18 -06:00
cc4327b623 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-17 13:45:20 +00:00
Miroslav Lichvar
88cb713f3b 3.5.2-5 2014-07-07 15:08:47 +02:00
Miroslav Lichvar
371635a8d9 drop gnome subpackages (#964977) 2014-07-07 15:05:04 +02:00
Miroslav Lichvar
d3b0bc3952 fix typo in description (#1064959) 2014-06-09 16:07:52 +02:00
Dennis Gilmore
f3bc2562b0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild 2014-06-07 11:29:15 -05:00
Christoph Wickert
45c55fe807 gdm-control depends on gdm, not on gnome-panel (#964977) 2013-12-10 17:12:59 +01:00
Miroslav Lichvar
7b4fc14d35 3.5.2-2 2013-08-15 11:27:19 +02:00
Miroslav Lichvar
74391687cd Add workaround for yum to install correct libpng-devel in build 2013-08-15 11:26:20 +02:00
Miroslav Lichvar
4bf12d3b88 3.5.2-1 2013-08-13 14:36:24 +02:00
Miroslav Lichvar
52fa9ccb0d Fix weekdays in changelog 2013-08-13 14:34:40 +02:00
Miroslav Lichvar
3c940d070c Update to 3.5.2 2013-08-13 14:33:47 +02:00
Dennis Gilmore
528ccb92be - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild 2013-08-03 10:31:03 -05:00
Miroslav Lichvar
441ff2e395 3.5.0-11.20121001git782b28 2013-03-11 16:40:08 +01:00
Miroslav Lichvar
17ca91fe7b Make gnome and kde subpackages noarch 2013-03-11 16:40:08 +01:00
Miroslav Lichvar
4edb1fd18e Update xdg-menu to work with latest gtk3 (#914830) 2013-03-11 16:40:08 +01:00
Miroslav Lichvar
60314f81b9 Make some dependencies arch-specific 2013-03-11 16:40:08 +01:00
Miroslav Lichvar
186e4dd22b Update to git snapshot 20121001git782b28 2013-03-11 16:40:07 +01:00
Dennis Gilmore
3b5971e640 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild 2013-02-14 03:19:59 -06:00
11 changed files with 357 additions and 400 deletions

2
.gitignore vendored
View file

@ -1,2 +1,2 @@
/setlayout.c
/openbox-3.5.0.tar.gz
/openbox-3.6.1.tar.xz

View file

@ -1,28 +0,0 @@
From 339c19d1b3a7a5139aed8b59bad755ddd0e518ff Mon Sep 17 00:00:00 2001
From: Mikael Magnusson <mikachu@gmail.com>
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

View file

@ -1,96 +0,0 @@
From: Dana Jansens <danakj@orodu.net>
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

View file

@ -1,76 +0,0 @@
From: Geoffrey Antos <dynamotwain@aim.com>
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

36
openbox-calc-layer.patch Normal file
View file

@ -0,0 +1,36 @@
From https://bugzilla.icculus.org/show_bug.cgi?id=6669#c2
diff --git a/openbox/client.c b/openbox/client.c
index 3ff278ae..ac4ff827 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -2702,9 +2702,10 @@ static void client_calc_layer_internal(ObClient *self)
void client_calc_layer(ObClient *self)
{
GList *it;
+ GList *list = g_list_copy(stacking_list);
/* skip over stuff above fullscreen layer */
- for (it = stacking_list; it; it = g_list_next(it))
+ for (it = list; it; it = g_list_next(it))
if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break;
/* find the windows in the fullscreen layer, and mark them not-visited */
@@ -2717,7 +2718,7 @@ void client_calc_layer(ObClient *self)
client_calc_layer_internal(self);
/* skip over stuff above fullscreen layer */
- for (it = stacking_list; it; it = g_list_next(it))
+ for (it = list; it; it = g_list_next(it))
if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break;
/* now recalc any windows in the fullscreen layer which have not
@@ -2728,6 +2729,8 @@ void client_calc_layer(ObClient *self)
!WINDOW_AS_CLIENT(it->data)->visited)
client_calc_layer_internal(it->data);
}
+
+ g_list_free(it);
}
gboolean client_should_show(ObClient *self)

View file

@ -1,97 +0,0 @@
commit c885c9a676e4860a68f0bdce4b926902f6597ebb
Author: Mikael Magnusson <mikachu@gmail.com>
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 @@
<mouse>
<dragThreshold>1</dragThreshold>
<!-- number of pixels the mouse must move before a drag begins -->
- <doubleClickTime>200</doubleClickTime>
+ <doubleClickTime>500</doubleClickTime>
<!-- in milliseconds (1000 = 1 second) -->
<screenEdgeWarpTime>400</screenEdgeWarpTime>
<!-- Time before changing desktops when the pointer touches the edge of the
diff --git a/doc/rc-mouse-focus.xml b/doc/rc-mouse-focus.xml
index 06c3ce5..dc7f2e9 100644
--- a/doc/rc-mouse-focus.xml
+++ b/doc/rc-mouse-focus.xml
@@ -226,7 +226,7 @@
<mouse>
<dragThreshold>8</dragThreshold>
<!-- number of pixels the mouse must move before a drag begins -->
- <doubleClickTime>200</doubleClickTime>
+ <doubleClickTime>500</doubleClickTime>
<!-- in milliseconds (1000 = 1 second) -->
<context name="Frame">
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;

12
openbox-kf5menu.patch Normal file
View file

@ -0,0 +1,12 @@
diff -up openbox-3.6.1/data/xsession/openbox-kde-session.in.kf5menu openbox-3.6.1/data/xsession/openbox-kde-session.in
--- openbox-3.6.1/data/xsession/openbox-kde-session.in.kf5menu 2011-10-16 18:13:18.000000000 +0200
+++ openbox-3.6.1/data/xsession/openbox-kde-session.in 2020-11-09 10:42:43.755217411 +0100
@@ -8,7 +8,7 @@ if test -n "$1"; then
fi
# Set the prefix for the menu layout to use
-export XDG_MENU_PREFIX="kde-4-"
+export XDG_MENU_PREFIX="kf5-"
# Clean up after GDM
xprop -root -remove _NET_NUMBER_OF_DESKTOPS \

113
openbox-python3.patch Normal file
View file

@ -0,0 +1,113 @@
diff -up openbox-3.6.1/data/autostart/openbox-xdg-autostart.python3 openbox-3.6.1/data/autostart/openbox-xdg-autostart
--- openbox-3.6.1/data/autostart/openbox-xdg-autostart.python3 2013-04-17 14:27:27.000000000 +0200
+++ openbox-3.6.1/data/autostart/openbox-xdg-autostart 2018-04-17 15:52:23.849765020 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
# openbox-xdg-autostart runs things based on the XDG autostart specification
# Copyright (C) 2008 Dana Jansens
@@ -28,9 +28,9 @@ try:
from xdg.DesktopEntry import DesktopEntry
from xdg.Exceptions import ParsingError
except ImportError:
- print
- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
- print
+ print()
+ print("ERROR:", ME, "requires PyXDG to be installed", file=sys.stderr)
+ print()
sys.exit(1)
def main(argv=sys.argv):
@@ -51,7 +51,7 @@ def main(argv=sys.argv):
try:
autofile = AutostartFile(path)
except ParsingError:
- print "Invalid .desktop file: " + path
+ print("Invalid .desktop file: " + path)
else:
if not autofile in files:
files.append(autofile)
@@ -99,9 +99,9 @@ class AutostartFile:
def _alert(self, str, info=False):
if info:
- print "\t ", str
+ print("\t ", str)
else:
- print "\t*", str
+ print("\t*", str)
def _showInEnvironment(self, envs, verbose=False):
default = not self.de.getOnlyShowIn()
@@ -146,9 +146,9 @@ class AutostartFile:
def display(self, envs):
if self._shouldRun(envs):
- print "[*] " + self.de.getName()
+ print("[*] " + self.de.getName())
else:
- print "[ ] " + self.de.getName()
+ print("[ ] " + self.de.getName())
self._alert("File: " + self.path, info=True)
if self.de.getExec():
self._alert("Executes: " + self.de.getExec(), info=True)
@@ -165,33 +165,33 @@ class AutostartFile:
os.chdir(here)
def show_help():
- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
- print
- print "This tool will run xdg autostart .desktop files"
- print
- print "OPTIONS"
- print " --list Show a list of the files which would be run"
- print " Files which would be run are marked with an asterix"
- print " symbol [*]. For files which would not be run,"
- print " information is given for why they are excluded"
- print " --help Show this help and exit"
- print " --version Show version and copyright information"
- print
- print "ENVIRONMENT specifies a list of environments for which to run autostart"
- print "applications. If none are specified, only applications which do not "
- print "limit themselves to certain environments will be run."
- print
- print "ENVIRONMENT can be one or more of:"
- print " GNOME Gnome Desktop"
- print " KDE KDE Desktop"
- print " ROX ROX Desktop"
- print " XFCE XFCE Desktop"
- print " Old Legacy systems"
+ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
+ print()
+ print("This tool will run xdg autostart .desktop files")
+ print()
+ print("OPTIONS")
+ print(" --list Show a list of the files which would be run")
+ print(" Files which would be run are marked with an asterix")
+ print(" symbol [*]. For files which would not be run,")
+ print(" information is given for why they are excluded")
+ print(" --help Show this help and exit")
+ print(" --version Show version and copyright information")
+ print()
+ print("ENVIRONMENT specifies a list of environments for which to run autostart")
+ print("applications. If none are specified, only applications which do not ")
+ print("limit themselves to certain environments will be run.")
+ print
+ print("ENVIRONMENT can be one or more of:")
+ print(" GNOME Gnome Desktop")
+ print(" KDE KDE Desktop")
+ print(" ROX ROX Desktop")
+ print(" XFCE XFCE Desktop")
+ print(" Old Legacy systems")
print
def show_version():
- print ME, VERSION
- print "Copyright (c) 2008 Dana Jansens"
+ print(ME, VERSION)
+ print("Copyright (c) 2008 Dana Jansens")
print
if __name__ == "__main__":

View file

@ -1,33 +1,30 @@
Name: openbox
Version: 3.5.0
Release: 9%{?dist}
Version: 3.6.1
Release: 31%{?dist}
Summary: A highly configurable and standards-compliant X11 window manager
Group: User Interface/Desktops
License: GPLv2+
License: GPL-2.0-or-later
URL: http://openbox.org
Source0: http://openbox.org/releases/%{name}-%{version}.tar.gz
Source0: http://openbox.org/dist/%{name}/%{name}-%{version}.tar.xz
Source1: http://icculus.org/openbox/tools/setlayout.c
Source2: xdg-menu
Source3: menu.xml
Source4: terminals.menu
Patch1: openbox-python3.patch
Patch2: openbox-kf5menu.patch
Patch3: openbox-calc-layer.patch
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}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
# required by xdg-menu and xdg-autostart scripts
Requires: pyxdg
Requires: python3-pyxdg
# used by xdg-menu for icon support (optional)
Suggests: python3-gobject
# as discussed in https://bugzilla.redhat.com/860997
Requires: redhat-menus
BuildRequires: make
BuildRequires: gcc
BuildRequires: gettext
BuildRequires: desktop-file-utils
BuildRequires: pango-devel
@ -38,8 +35,15 @@ BuildRequires: libXt-devel
BuildRequires: libXrandr-devel
BuildRequires: libXinerama-devel
BuildRequires: imlib2-devel
# workaround for yum to install correct libpng-devel
BuildRequires: libpng-devel
Provides: firstboot(windowmanager)
# gdm-control, gnome-control-center and openbox-gnome were removed in 3.5.2-5
Obsoletes: gdm-control < 3.5.2-5
Obsoletes: gnome-panel-control < 3.5.2-5
Obsoletes: %{name}-gnome < 3.5.2-5
%description
Openbox is a window manager designed explicity for standards-compliance and
speed. It is fast, lightweight, and heavily configurable (using XML for its
@ -50,14 +54,12 @@ actions, multi-head/Xinerama support, and dynamically generated "pipe menus."
For a full list of the FreeDesktop.org standards with which it is compliant,
please see the COMPLIANCE file in the included documentation of this package.
For a graphical configuration editor, you'll need to install the obconf
package. For a graphical menu editor, you'll need to install the obmenu
package.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: pkgconfig
Requires: pango-devel
Requires: libxml2-devel
@ -70,55 +72,16 @@ developing applications that use %{name}.
%package libs
Summary: Shared libraries for %{name}
Group: Development/Libraries
%description libs
The %{name}-libs package contains shared libraries used by %{name}.
%package gnome
Summary: GNOME integration for %{name}
Group: User Interface/Desktops
Requires: %{name} = %{version}-%{release}
Requires: gnome-session
Requires: gnome-panel-control
Requires: gdm-control
%description gnome
The %{name}-gnome package contains the files needed for using %{name} inside a
GNOME session.
%package -n gnome-panel-control
Summary: Command line utility to control the GNOME panel
Group: User Interface/Desktops
Requires: %{name} = %{version}-%{release}
Requires: gnome-panel
%description -n gnome-panel-control
gnome-panel-control can be used to invoke the GNOME panel run or main menu from
the command line. It is originally a helper utility of openbox since
gnome-panel is no longer managing its own key bindings.
%package -n gdm-control
Summary: Command line utility to control the GNOME Display Manager
Group: User Interface/Desktops
Requires: %{name} = %{version}-%{release}
Requires: gnome-panel
%description -n gdm-control
gdm-control can be used to control the GNOME Display Manager. It can invoke
it's power management functions, shut down and reboot a machine or switch users.
It is originally a helper utility of openbox since gdm lacks control over these
features.
%package kde
Summary: KDE integration for %{name}
Group: User Interface/Desktops
Requires: %{name} = %{version}-%{release}
Requires: kdebase-workspace
Requires: plasma-workspace
BuildArch: noarch
%description kde
The %{name}-kde package contains the files needed for using %{name} inside a
@ -127,11 +90,9 @@ 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
%patch -P1 -p1 -b .python3
%patch -P2 -p1 -b .kf5menu
%patch -P3 -p1 -b .calc-layer
%build
@ -140,12 +101,12 @@ KDE session.
## Fix RPATH hardcoding.
sed -ie 's|^hardcode_libdir_flag_spec=.*$|hardcode_libdir_flag_spec=""|g' libtool
sed -ie 's|^runpath_var=LD_RUN_PATH$|runpath_var=DIE_RPATH_DIE|g' libtool
make %{?_smp_mflags}
%make_build
gcc %{optflags} -o setlayout %{SOURCE1} -lX11
gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS -o setlayout %{SOURCE1} -lX11
%install
make install DESTDIR=%{buildroot}
%make_install
install setlayout %{buildroot}%{_bindir}
install -p %{SOURCE2} %{buildroot}%{_libexecdir}/openbox-xdg-menu
@ -160,6 +121,14 @@ install -m644 -D data/gnome-session/openbox-gnome.session \
install -m644 -D data/gnome-session/openbox-gnome-fallback.session \
%{buildroot}%{_datadir}/gnome-session/sessions/openbox-gnome-fallback.session
# remove unpackaged files
pushd %{buildroot}
rm ./%{_bindir}/{gdm-control,gnome-panel-control,%{name}-gnome-session}
rm ./%{_datadir}/xsessions/%{name}-gnome.desktop
rm ./%{_datadir}/gnome/wm-properties/openbox.desktop
rm ./%{_datadir}/gnome-session/sessions/openbox-gnome*.session
rm ./%{_mandir}/man1/%{name}-gnome-session*.1*
popd
%find_lang %{name}
@ -196,32 +165,153 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name}
%{_libdir}/libobt.so
%{_libdir}/pkgconfig/*.pc
%files gnome
%{_bindir}/%{name}-gnome-session
%{_datadir}/xsessions/%{name}-gnome.desktop
%{_datadir}/gnome/wm-properties/openbox.desktop
%{_datadir}/gnome-session/sessions/openbox-gnome*.session
%{_mandir}/man1/%{name}-gnome-session*.1*
%files -n gnome-panel-control
%{_bindir}/gnome-panel-control
%files -n gdm-control
%{_bindir}/gdm-control
%files kde
%{_bindir}/%{name}-kde-session
%{_datadir}/xsessions/%{name}-kde.desktop
%{_mandir}/man1/%{name}-kde-session*.1*
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%ldconfig_scriptlets libs
%changelog
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Leigh Scott <leigh123linux@gmail.com> - 3.6.1-23
- Rebuild fo new imlib2
* Thu Apr 27 2023 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-22
- fix crash with new glib (#2178299)
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Nov 09 2020 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-16
- update XDG menu prefix in KDE session script (#1851755)
- drop obsolete KDE4 requirement
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Oct 09 2019 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-13
- remove obmenu from description
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Apr 17 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-9
- fix pyxdg requirement
* Tue Apr 17 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-8
- switch packaged python scripts to python3
* Mon Feb 26 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-7
- build setlayout with hardening LDFLAGS (#1548830)
- use macro for ldconfig scriptlets
- add gcc to build requirements
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jul 02 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-1
- update to 3.6.1
* Thu Jun 25 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6-3
- restore libobrender compatibility (#1231693)
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Jun 01 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6-1
- update to 3.6
* Thu Mar 05 2015 Rex Dieter <rdieter@fedoraproject.org> 3.5.2-7
- -kde: fix deps for plasma5
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Mon Jul 07 2014 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-5
- drop gnome subpackages (#964977)
- fix typo in description (#1064959)
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue Dec 10 2013 Christoph Wickert <cwickert@fedoraproject.org> - 3.5.2-3
- gdm-control depends on gdm, not on gnome-panel (#964977)
* Thu Aug 15 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-2
- Add workaround for yum to install correct libpng-devel in build
* Tue Aug 13 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-1
- Update to 3.5.2
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.0-12.20121001git782b28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Mon Mar 11 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.0-11.20121001git782b28
- Update to git snapshot 20121001git782b28
- Update xdg-menu to work with latest gtk3 (#914830)
- Make some dependencies arch-specific
- Make gnome and kde subpackages noarch
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Nov 13 2012 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.0-9
- Update xdg-menu to work with latest pyxdg (#874633)
- Remove unnecessary macros
@ -410,7 +500,7 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name}
- Allow building with startup-notification as an rpmbuild option (though it is
disabled by default as recommended by upstream).
* Sun Sep 09 2006 Peter Gordon <peter@thecodergeek.com> - 3.3.1-1
* Sat Sep 09 2006 Peter Gordon <peter@thecodergeek.com> - 3.3.1-1
- Update to new 3.3.1 from upstream
* Sun Aug 27 2006 Peter Gordon <peter@thecodergeek.com> - 3.3-3

View file

@ -1,2 +1,2 @@
16ca0d290cae2f4c16a35e9cdfb6f503 setlayout.c
00441b53cf14c03566c8e82643544ff9 openbox-3.5.0.tar.gz
46bf5f1edda0eda0d9e824b585988be9 openbox-3.6.1.tar.xz

View file

@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/python3
#
# Copyright (C) 2008 Red Hat, Inc.
#
@ -26,6 +26,8 @@ from xml.sax.saxutils import escape
icons = True
try:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
except ImportError:
icons = False
@ -47,13 +49,14 @@ def icon_attr(entry):
iconinfo = theme.lookup_icon(name, 22, Gtk.IconLookupFlags.NO_SVG)
if iconinfo:
iconfile = iconinfo.get_filename()
iconinfo.free()
if hasattr(iconinfo, 'free'):
iconinfo.free()
if iconfile:
return ' icon="' + iconfile + '"'
return ''
def escape_utf8(s):
if isinstance(s, unicode):
if sys.version_info[0] < 3 and isinstance(s, unicode):
s = s.encode('utf-8', 'xmlcharrefreplace')
return escape(s)
@ -62,25 +65,25 @@ def entry_name(entry):
def walk_menu(entry):
if isinstance(entry, xdg.Menu.Menu) and entry.Show is True:
print '<menu id="%s" label="%s"%s>' \
print('<menu id="%s" label="%s"%s>' \
% (entry_name(entry),
entry_name(entry),
escape_utf8(icon_attr(entry)))
map(walk_menu, entry.getEntries())
print '</menu>'
escape_utf8(icon_attr(entry))))
list(map(walk_menu, entry.getEntries()))
print('</menu>')
elif isinstance(entry, xdg.Menu.MenuEntry) and entry.Show is True:
name = entry_name(entry.DesktopEntry)
print ' <item label="%s"%s>' % (name.replace('"', ''),
escape_utf8(icon_attr(entry.DesktopEntry)))
print(' <item label="%s"%s>' % (name.replace('"', ''),
escape_utf8(icon_attr(entry.DesktopEntry))))
command = re.sub(' -caption "%c"| -caption %c',
' -caption "%s"' % name,
escape_utf8(entry.DesktopEntry.getExec()))
command = re.sub(' [^ ]*%[fFuUdDnNickvm]', '', command)
if entry.DesktopEntry.getTerminal():
command = 'xterm -title "%s" -e %s' % (name, command)
print ' <action name="Execute">' + \
'<command>%s</command></action>' % command
print ' </item>'
print(' <action name="Execute">' + \
'<command>%s</command></action>' % command)
print(' </item>')
if len(sys.argv) > 1:
menufile = sys.argv[1] + '.menu'
@ -99,7 +102,7 @@ if icons:
menu = xdg.Menu.parse(menufile)
print '<?xml version="1.0" encoding="UTF-8"?>'
print '<openbox_pipe_menu>'
map(walk_menu, menu.getEntries())
print '</openbox_pipe_menu>'
print('<?xml version="1.0" encoding="UTF-8"?>')
print('<openbox_pipe_menu>')
list(map(walk_menu, menu.getEntries()))
print('</openbox_pipe_menu>')