diff options
-rw-r--r-- | .SRCINFO | 17 | ||||
-rw-r--r-- | 0001-do-not-leave-stale-oplock-behind.patch | 29 | ||||
-rw-r--r-- | 0002-send-ConfigureNotify-using-root-coordinates.patch | 57 | ||||
-rw-r--r-- | 0003-c-plus-plus-17.patch | 28 | ||||
-rw-r--r-- | 0004-window-menu.patch | 44 | ||||
-rw-r--r-- | PKGBUILD | 32 |
6 files changed, 193 insertions, 14 deletions
@@ -1,7 +1,7 @@ pkgbase = fluxbox-wm - pkgdesc = A lightweight and highly-configurable window manager compiled without slit toolbar and systemtray + pkgdesc = Fluxbox window manager only: compiled without slit, toolbar and systemtray pkgver = 1.3.7 - pkgrel = 2 + pkgrel = 3 url = http://www.fluxbox.org arch = i686 arch = x86_64 @@ -18,9 +18,14 @@ pkgbase = fluxbox-wm conflicts = fluxbox-noslit options = !makeflags source = http://downloads.sourceforge.net/sourceforge/fluxbox/fluxbox-1.3.7.tar.xz - source = fluxbox.desktop - sha1sums = c53940f5b70dfad39f4a3fa6b0e95072c2b3e9db - sha1sums = f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8 + source = 0001-do-not-leave-stale-oplock-behind.patch + source = 0002-send-ConfigureNotify-using-root-coordinates.patch + source = 0003-c-plus-plus-17.patch + source = 0004-window-menu.patch + sha256sums = fc8c75fe94c54ed5a5dd3fd4a752109f8949d6df67a48e5b11a261403c382ec0 + sha256sums = 9c486f454f46a51cb1b7cb65de812faa12e2a1cce13785c349b488f051a01470 + sha256sums = 66f64c67e5c99b2c6bf139ba2f7a3ff9fcb613c5b49b0038c42cc55cc00153dc + sha256sums = a743324fb0c684be44fbcb3ff626f604057fce42fe1dda774515c1b24efbf418 + sha256sums = b9a4cdc5637eb5c275a9de2f43dd13987233a2c2fa843deb9958127e04960ac2 pkgname = fluxbox-wm - diff --git a/0001-do-not-leave-stale-oplock-behind.patch b/0001-do-not-leave-stale-oplock-behind.patch new file mode 100644 index 000000000000..813975649192 --- /dev/null +++ b/0001-do-not-leave-stale-oplock-behind.patch @@ -0,0 +1,29 @@ +From a5f3eb0d9987d4c0120da3431b73fb523ac0ecba Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20L=C3=BCbking?= <thomas.luebking@gmail.com> +Date: Thu, 30 Jun 2016 15:20:51 +0200 +Subject: [PATCH] do not leave stale oplock behind + +deiconify'ing a client on a different workspace left an oplock by a +shortcut return, turning the client semi- to inaccessible + +BUG: 1010 +--- + src/Window.cc | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/Window.cc b/src/Window.cc +index 51f5d441..0aa4ec62 100644 +--- a/src/Window.cc ++++ b/src/Window.cc +@@ -1430,8 +1430,10 @@ void FluxboxWindow::deiconify(bool do_raise) { + } + } + +- if (m_workspace_number != screen().currentWorkspaceID()) ++ if (m_workspace_number != screen().currentWorkspaceID()) { ++ oplock = false; + return; ++ } + + show(); + diff --git a/0002-send-ConfigureNotify-using-root-coordinates.patch b/0002-send-ConfigureNotify-using-root-coordinates.patch new file mode 100644 index 000000000000..4e1e4eede6f5 --- /dev/null +++ b/0002-send-ConfigureNotify-using-root-coordinates.patch @@ -0,0 +1,57 @@ +From 6346368b58e054174075f615a836ff3bd9c9f823 Mon Sep 17 00:00:00 2001 +From: foobar0815 <atalanta.bergamo@gmail.com> +Date: Sun, 1 Mar 2015 20:04:10 +0100 +Subject: [PATCH] send ConfigureNotify using root coordinates + +--- + src/SystemTray.cc | 28 +++++++++++++++++++++++++++- + 1 file changed, 27 insertions(+), 1 deletion(-) + +diff --git a/src/SystemTray.cc b/src/SystemTray.cc +index 98115087..c908f3e7 100644 +--- a/src/SystemTray.cc ++++ b/src/SystemTray.cc +@@ -45,6 +45,30 @@ using std::endl; + using std::hex; + using std::dec; + ++void getScreenCoordinates(Window win, int x, int y, int &screen_x, int &screen_y) { ++ XWindowAttributes attr; ++ if (XGetWindowAttributes(FbTk::App::instance()->display(), win, &attr) == 0) { ++ return; ++ } ++ ++ Window child_win; // not used ++ Window parent_win; // not used ++ Window root_win = 0; ++ Window* child_windows; // not used ++ unsigned int num_child_windows; // not used ++ XQueryTree(FbTk::App::instance()->display(), win, ++ &root_win, ++ &parent_win, ++ &child_windows, &num_child_windows); ++ if (child_windows != 0) { ++ XFree(child_windows); ++ } ++ XTranslateCoordinates(FbTk::App::instance()->display(), ++ parent_win, root_win, ++ x, y, ++ &screen_x, &screen_y, &child_win); ++} ++ + /// helper class for tray windows, so we dont call XDestroyWindow + class TrayWindow: public FbTk::FbWindow { + public: +@@ -470,9 +494,11 @@ void SystemTray::rearrangeClients() { + next_x += h_rot0+bw; + translateCoords(orientation(), x, y, w_rot0, h_rot0); + translatePosition(orientation(), x, y, h_rot0, h_rot0, 0); ++ int screen_x = 0, screen_y = 0; ++ getScreenCoordinates((*client_it)->window(), (*client_it)->x(), (*client_it)->y(), screen_x, screen_y); + + (*client_it)->moveResize(x, y, h_rot0, h_rot0); +- (*client_it)->sendConfigureNotify(x, y, h_rot0, h_rot0); ++ (*client_it)->sendConfigureNotify(screen_x, screen_y, h_rot0, h_rot0); + } + } + diff --git a/0003-c-plus-plus-17.patch b/0003-c-plus-plus-17.patch new file mode 100644 index 000000000000..37e450b08f16 --- /dev/null +++ b/0003-c-plus-plus-17.patch @@ -0,0 +1,28 @@ +http://git.fluxbox.org/fluxbox.git/patch/?id=22866c4d30f5b289c429c5ca88d800200db4fc4f +https://bugs.gentoo.org/732782 + +From 22866c4d30f5b289c429c5ca88d800200db4fc4f Mon Sep 17 00:00:00 2001 +From: John Sennesael <john@aminking.com> +Date: Mon, 2 Nov 2015 15:14:32 -0600 +Subject: fixes bug #1138 + +--- + util/fluxbox-remote.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/fluxbox-remote.cc b/util/fluxbox-remote.cc +index 59852e6..504015b 100644 +--- a/util/fluxbox-remote.cc ++++ b/util/fluxbox-remote.cc +@@ -73,7 +73,7 @@ int main(int argc, char **argv) { + if (strcmp(cmd, "result") == 0) { + XTextProperty text_prop; + if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0 +- && text_prop.value > 0 ++ && text_prop.value != 0 + && text_prop.nitems > 0) { + + printf("%s", text_prop.value); +-- +cgit v0.11.2 + diff --git a/0004-window-menu.patch b/0004-window-menu.patch new file mode 100644 index 000000000000..3e5020d13950 --- /dev/null +++ b/0004-window-menu.patch @@ -0,0 +1,44 @@ +diff --git a/data/windowmenu b/data/windowmenu +index d867b64..972e8e7 100644 +--- a/data/windowmenu ++++ b/data/windowmenu +@@ -1,15 +1,33 @@ + [begin] +- [shade] +- [stick] + [maximize] + [iconify] +- [raise] +- [lower] + [settitledialog] + [sendto] + [layer] +- [alpha] +- [extramenus] + [separator] + [close] ++ [separator] ++ [submenu] (Opzioni avanzate) ++ [shade] ++ [stick] ++ [raise] ++ [lower] ++ [alpha] ++ [extramenus] ++ [end] ++ [separator] ++ [submenu] (Fluxbox menu) ++ [config] (Configure) ++ [submenu] (System Styles) {Choose a style...} ++ [stylesdir] (/usr/share/fluxbox/styles) ++ [end] ++ [submenu] (User Styles) {Choose a style...} ++ [stylesdir] (~/.fluxbox/styles) ++ [end] ++ [workspaces] (Workspace List) ++ [commanddialog] (Fluxbox Command) ++ [reconfig] (Reload config) ++ [restart] (Restart) ++ [end] + [end] ++ @@ -5,8 +5,8 @@ pkgname=fluxbox-wm _pkgname=fluxbox pkgver=1.3.7 -pkgrel=2 -pkgdesc="A lightweight and highly-configurable window manager compiled without slit toolbar and systemtray" +pkgrel=3 +pkgdesc="Fluxbox window manager only: compiled without slit, toolbar and systemtray" arch=('i686' 'x86_64') url="http://www.fluxbox.org" license=('MIT') @@ -15,23 +15,39 @@ conflicts=('fluxbox' 'fluxbox-noslit') depends=('libxft' 'libxpm' 'libxinerama' 'libxrandr' 'imlib2' 'fribidi') optdepends=('xorg-xmessage: for using the fbsetbg and fluxbox-generate_menu utilities') options=('!makeflags') -source=(http://downloads.sourceforge.net/sourceforge/${_pkgname}/${_pkgname}-${pkgver}.tar.xz - fluxbox.desktop) -sha1sums=('c53940f5b70dfad39f4a3fa6b0e95072c2b3e9db' - 'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8') +source=("http://downloads.sourceforge.net/sourceforge/${_pkgname}/${_pkgname}-${pkgver}.tar.xz" + '0001-do-not-leave-stale-oplock-behind.patch' + '0002-send-ConfigureNotify-using-root-coordinates.patch' + '0003-c-plus-plus-17.patch' + '0004-window-menu.patch') +sha256sums=('fc8c75fe94c54ed5a5dd3fd4a752109f8949d6df67a48e5b11a261403c382ec0' + '9c486f454f46a51cb1b7cb65de812faa12e2a1cce13785c349b488f051a01470' + '66f64c67e5c99b2c6bf139ba2f7a3ff9fcb613c5b49b0038c42cc55cc00153dc' + 'a743324fb0c684be44fbcb3ff626f604057fce42fe1dda774515c1b24efbf418' + 'b9a4cdc5637eb5c275a9de2f43dd13987233a2c2fa843deb9958127e04960ac2') + +prepare() { + cd ${_pkgname}-${pkgver} + + patch -Np1 < ../0001-do-not-leave-stale-oplock-behind.patch + patch -Np1 < ../0002-send-ConfigureNotify-using-root-coordinates.patch + patch -Np1 < ../0003-c-plus-plus-17.patch + patch -Np1 < ../0004-window-menu.patch +} build() { cd ${_pkgname}-${pkgver} ./configure --prefix=/usr \ --enable-xft --enable-xinerama \ --enable-imlib2 --enable-nls \ - --disable-slit --disable-toolbar --disable-systray + --disable-slit \ + --disable-systray \ + --disable-toolbar make } package() { cd ${_pkgname}-${pkgver} make DESTDIR="${pkgdir}" install - install -D -m644 "${srcdir}/fluxbox.desktop" "${pkgdir}/usr/share/xsessions/fluxbox.desktop" install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE" } |