Compare commits

..

No commits in common. "rawhide" and "f16" have entirely different histories.

11 changed files with 221 additions and 391 deletions

2
.gitignore vendored
View file

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

View file

@ -0,0 +1,21 @@
diff -up openbox-3.4.11.2/data/xsession/openbox-gnome-session.in.gnome openbox-3.4.11.2/data/xsession/openbox-gnome-session.in
--- openbox-3.4.11.2/data/xsession/openbox-gnome-session.in.gnome 2010-03-14 15:40:37.000000000 +0100
+++ openbox-3.4.11.2/data/xsession/openbox-gnome-session.in 2011-01-14 17:15:18.738710496 +0100
@@ -24,7 +24,7 @@ if test $MAJOR -lt 2 || (test $MAJOR = 2
# old gnome-session was easy to work with
export WINDOW_MANAGER="@bindir@/openbox"
exec gnome-session --choose-session=openbox-session "$@"
-else
+elif test $MAJOR = 2 && test $MINOR -lt 91; then
# new gnome-session requires openbox to be set in gconf and an
# openbox.desktop to be installed in the applications directory
@@ -54,6 +54,8 @@ else
# run GNOME/Openbox
exec gnome-session --default-session-key $SPATH/openbox_session "$@"
+else
+ exec gnome-session --session=gnome-openbox "$@"
fi

View file

@ -1,36 +0,0 @@
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)

97
openbox-doubleclick.patch Normal file
View file

@ -0,0 +1,97 @@
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;

View file

@ -1,12 +0,0 @@
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 \

View file

@ -1,113 +0,0 @@
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__":

9
openbox.desktop Normal file
View file

@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Name=Openbox
Exec=openbox
Icon=openbox
NoDisplay=true
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=true

5
openbox.gnome-session Normal file
View file

@ -0,0 +1,5 @@
[GNOME Session]
RequiredComponents=gnome-panel;gnome-settings-daemon;
RequiredProviders=windowmanager;notifications;
DefaultProvider-windowmanager=openbox
DefaultProvider-notifications=notification-daemon

View file

@ -1,30 +1,29 @@
Name: openbox
Version: 3.6.1
Release: 31%{?dist}
Version: 3.5.0
Release: 5%{?dist}
Summary: A highly configurable and standards-compliant X11 window manager
License: GPL-2.0-or-later
Group: User Interface/Desktops
License: GPLv2+
URL: http://openbox.org
Source0: http://openbox.org/dist/%{name}/%{name}-%{version}.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-python3.patch
Patch2: openbox-kf5menu.patch
Patch3: openbox-calc-layer.patch
Source4: openbox.desktop
Source5: terminals.menu
Source6: openbox.gnome-session
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Patch1: openbox-doubleclick.patch
Patch2: openbox-3.4.11.2-gnomesession.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: %{name}-libs = %{version}-%{release}
# required by xdg-menu and xdg-autostart scripts
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
Requires: pyxdg
BuildRequires: make
BuildRequires: gcc
BuildRequires: gettext
BuildRequires: desktop-file-utils
BuildRequires: pango-devel
@ -35,15 +34,8 @@ 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
@ -54,12 +46,14 @@ 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}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: pkgconfig
Requires: pango-devel
Requires: libxml2-devel
@ -72,16 +66,28 @@ 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
%description gnome
The %{name}-gnome package contains the files needed for using %{name} inside a
GNOME session.
%package kde
Summary: KDE integration for %{name}
Group: User Interface/Desktops
Requires: %{name} = %{version}-%{release}
Requires: plasma-workspace
BuildArch: noarch
Requires: kdebase-workspace
%description kde
The %{name}-kde package contains the files needed for using %{name} inside a
@ -90,9 +96,8 @@ KDE session.
%prep
%setup -q
%patch -P1 -p1 -b .python3
%patch -P2 -p1 -b .kf5menu
%patch -P3 -p1 -b .calc-layer
%patch1 -p1 -b .doubleclick
%patch2 -p1 -b .gnome
%build
@ -101,42 +106,38 @@ 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_build
make %{?_smp_mflags}
gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS -o setlayout %{SOURCE1} -lX11
gcc %{optflags} -o setlayout %{SOURCE1} -lX11
%install
%make_install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
install setlayout %{buildroot}%{_bindir}
install -p %{SOURCE2} %{buildroot}%{_libexecdir}/openbox-xdg-menu
sed 's|_LIBEXECDIR_|%{_libexecdir}|g' < %{SOURCE3} \
> %{buildroot}%{_sysconfdir}/xdg/%{name}/menu.xml
install -m644 -p %{SOURCE4} %{buildroot}%{_sysconfdir}/xdg/%{name}/terminals.menu
# 'make install' misses these two, so we install them manually
install -m644 -D data/gnome-session/openbox-gnome.session \
%{buildroot}%{_datadir}/gnome-session/sessions/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
desktop-file-install --vendor="" \
--dir=%{buildroot}%{_datadir}/applications \
%{SOURCE4}
install -m644 -p %{SOURCE5} %{buildroot}%{_sysconfdir}/xdg/%{name}/terminals.menu
install -m644 -D %{SOURCE6} \
%{buildroot}%{_datadir}/gnome-session/sessions/gnome-openbox.session
%find_lang %{name}
rm -f %{buildroot}%{_libdir}/*.la
rm -rf %{buildroot}%{_datadir}/doc/%{name}
%clean
rm -rf %{buildroot}
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS CHANGELOG COMPLIANCE COPYING README
%doc data/*.xsd data/menu.xml doc/rc-mouse-focus.xml
%dir %{_sysconfdir}/xdg/%{name}/
@ -155,178 +156,42 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name}
%{_mandir}/man1/obxprop.1*
%files libs
%defattr(-,root,root,-)
%doc COPYING
%{_libdir}/libobrender.so.*
%{_libdir}/libobt.so.*
%files devel
%defattr(-,root,root,-)
%{_includedir}/%{name}/
%{_libdir}/libobrender.so
%{_libdir}/libobt.so
%{_libdir}/pkgconfig/*.pc
%files gnome
%defattr(-,root,root,-)
%{_bindir}/gnome-panel-control
%{_bindir}/gdm-control
%{_bindir}/%{name}-gnome-session
%{_datadir}/xsessions/%{name}-gnome.desktop
%{_datadir}/gnome/wm-properties/openbox.desktop
%{_datadir}/gnome-session/sessions/gnome-openbox.session
%{_mandir}/man1/%{name}-gnome-session*.1*
%files kde
%defattr(-,root,root,-)
%{_bindir}/%{name}-kde-session
%{_datadir}/xsessions/%{name}-kde.desktop
%{_mandir}/man1/%{name}-kde-session*.1*
%ldconfig_scriptlets libs
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%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
* Fri Sep 28 2012 Christoph Wickert <cwickert@fedoraproject.org> - 3.5.0-8
- Require redhat-menus (#860997)
- Use upstream's gnome-session 3 fixes instead of ours
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sun Jun 03 2012 Christoph Wickert <cwickert@fedoraproject.org> - 3.5.0-6
- Fix crash on unexpected NET_WM_MOVERESIZE_CANCEL messages (#827800)
- Make sub-packages for gdm-control and gnome-panel-control (#750056)
* Fri Mar 30 2012 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.0-5
- increase doubleclick timeout (#727995)
- fix another crash in xdg-menu (#799663)
@ -500,7 +365,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).
* Sat Sep 09 2006 Peter Gordon <peter@thecodergeek.com> - 3.3.1-1
* Sun 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
46bf5f1edda0eda0d9e824b585988be9 openbox-3.6.1.tar.xz
00441b53cf14c03566c8e82643544ff9 openbox-3.5.0.tar.gz

View file

@ -1,4 +1,4 @@
#!/usr/bin/python3
#!/usr/bin/python
#
# Copyright (C) 2008 Red Hat, Inc.
#
@ -26,8 +26,6 @@ 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
@ -49,41 +47,37 @@ def icon_attr(entry):
iconinfo = theme.lookup_icon(name, 22, Gtk.IconLookupFlags.NO_SVG)
if iconinfo:
iconfile = iconinfo.get_filename()
if hasattr(iconinfo, 'free'):
iconinfo.free()
iconinfo.free()
if iconfile:
return ' icon="' + iconfile + '"'
return ''
def escape_utf8(s):
if sys.version_info[0] < 3 and isinstance(s, unicode):
s = s.encode('utf-8', 'xmlcharrefreplace')
return escape(s)
return escape(s.encode('utf-8', 'xmlcharrefreplace'))
def entry_name(entry):
return escape_utf8(entry.getName())
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))))
list(map(walk_menu, entry.getEntries()))
print('</menu>')
escape_utf8(icon_attr(entry)))
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))))
command = re.sub(' -caption "%c"| -caption %c',
' -caption "%s"' % name,
escape_utf8(entry.DesktopEntry.getExec()))
print ' <item label="%s"%s>' % \
(entry_name(entry.DesktopEntry).replace('"', ''),
escape_utf8(icon_attr(entry.DesktopEntry)))
command = re.sub(' -caption "%c"| -caption %c', ' -caption "%s"' % entry_name(entry.DesktopEntry), 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>')
command = 'xterm -title "%s" -e %s' % \
(entry_name(entry.DesktopEntry), command)
print ' <action name="Execute">' + \
'<command>%s</command></action>' % command
print ' </item>'
if len(sys.argv) > 1:
menufile = sys.argv[1] + '.menu'
@ -102,7 +96,7 @@ if icons:
menu = xdg.Menu.parse(menufile)
print('<?xml version="1.0" encoding="UTF-8"?>')
print('<openbox_pipe_menu>')
list(map(walk_menu, menu.getEntries()))
print('</openbox_pipe_menu>')
print '<?xml version="1.0" encoding="UTF-8"?>'
print '<openbox_pipe_menu>'
map(walk_menu, menu.getEntries())
print '</openbox_pipe_menu>'