diff options
Diffstat (limited to 'source/xap/fluxbox')
-rw-r--r-- | source/xap/fluxbox/dcdde4d32c93d01df205bc06d7dfcbd356be031f.patch | 100 | ||||
-rwxr-xr-x | source/xap/fluxbox/fluxbox.SlackBuild | 7 |
2 files changed, 105 insertions, 2 deletions
diff --git a/source/xap/fluxbox/dcdde4d32c93d01df205bc06d7dfcbd356be031f.patch b/source/xap/fluxbox/dcdde4d32c93d01df205bc06d7dfcbd356be031f.patch new file mode 100644 index 00000000..71b558e1 --- /dev/null +++ b/source/xap/fluxbox/dcdde4d32c93d01df205bc06d7dfcbd356be031f.patch @@ -0,0 +1,100 @@ +From dcdde4d32c93d01df205bc06d7dfcbd356be031f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20L=C3=BCbking?= <thomas.luebking@gmail.com> +Date: Sat, 25 Jun 2016 22:25:48 +0200 +Subject: replace FbRootWindow::depth with maxDepth + +The depth member of FbWindow was abused to store the maximum depth +but that gets overridden with geometry changes of the root window +(screen layout changes) so we store and read the value explicitly while +::depth() maintains the actual depth of the root window + +The result of this is that frames for ARGB windows were created with a +wrong depth and failed to reparent the client window. + +BUG: 1102 +BUG: 1058 +--- + src/FbRootWindow.cc | 7 ++++--- + src/FbRootWindow.hh | 2 ++ + src/FbWinFrame.cc | 4 ++-- + src/Screen.cc | 2 +- + 4 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/src/FbRootWindow.cc b/src/FbRootWindow.cc +index d17d56f..91bd695 100644 +--- a/src/FbRootWindow.cc ++++ b/src/FbRootWindow.cc +@@ -30,7 +30,8 @@ FbRootWindow::FbRootWindow(int screen_num): + m_colormap(0), + m_decorationDepth(0), + m_decorationVisual(0), +- m_decorationColormap(0) { ++ m_decorationColormap(0), ++ m_maxDepth(depth()) { + + Display *disp = FbTk::App::instance()->display(); + +@@ -55,9 +56,9 @@ FbRootWindow::FbRootWindow(int screen_num): + + for (int i = 0; i < vinfo_nitems; i++) { + if ((DefaultDepth(disp, screen_num) < vinfo_return[i].depth) +- && (static_cast<int>(depth()) < vinfo_return[i].depth)){ ++ && (m_maxDepth < vinfo_return[i].depth)){ + m_visual = vinfo_return[i].visual; +- setDepth(vinfo_return[i].depth); ++ m_maxDepth = vinfo_return[i].depth; + } + + if((m_decorationDepth < vinfo_return[i].depth) +diff --git a/src/FbRootWindow.hh b/src/FbRootWindow.hh +index 8e97cc3..739c9ef 100644 +--- a/src/FbRootWindow.hh ++++ b/src/FbRootWindow.hh +@@ -41,6 +41,7 @@ public: + int decorationDepth() const { return m_decorationDepth; } + Visual *decorationVisual() const { return m_decorationVisual; } + Colormap decorationColormap() const { return m_decorationColormap; } ++ int maxDepth() const { return m_maxDepth; } + + private: + Visual *m_visual; +@@ -49,6 +50,7 @@ private: + int m_decorationDepth; + Visual *m_decorationVisual; + Colormap m_decorationColormap; ++ int m_maxDepth; + }; + + #endif // FBROOTWINDOW_HH +diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc +index 48d6e87..42b81e7 100644 +--- a/src/FbWinFrame.cc ++++ b/src/FbWinFrame.cc +@@ -115,8 +115,8 @@ FbWinFrame::FbWinFrame(BScreen &screen, unsigned int client_depth, + m_state(state), + m_window(theme->screenNum(), state.x, state.y, state.width, state.height, s_mask, true, false, + client_depth, InputOutput, +- ((client_depth == 32) && (screen.rootWindow().depth() == 32) ? screen.rootWindow().visual() : CopyFromParent), +- ((client_depth == 32) && (screen.rootWindow().depth() == 32) ? screen.rootWindow().colormap() : CopyFromParent)), ++ (client_depth == screen.rootWindow().maxDepth() ? screen.rootWindow().visual() : CopyFromParent), ++ (client_depth == screen.rootWindow().maxDepth() ? screen.rootWindow().colormap() : CopyFromParent)), + m_layeritem(window(), *screen.layerManager().getLayer(ResourceLayer::NORMAL)), + m_titlebar(m_window, 0, 0, 100, 16, s_mask, false, false, + screen.rootWindow().decorationDepth(), InputOutput, +diff --git a/src/Screen.cc b/src/Screen.cc +index 2b5411d..94e4250 100644 +--- a/src/Screen.cc ++++ b/src/Screen.cc +@@ -297,7 +297,7 @@ BScreen::BScreen(FbTk::ResourceManager &rm, + "using visual 0x%lx, depth %d\n", + "informational message saying screen number (%d), visual (%lx), and colour depth (%d)").c_str(), + screenNumber(), XVisualIDFromVisual(rootWindow().visual()), +- rootWindow().depth()); ++ rootWindow().maxDepth()); + #endif // DEBUG + + FbTk::EventManager *evm = FbTk::EventManager::instance(); +-- +cgit v0.11.2 + + diff --git a/source/xap/fluxbox/fluxbox.SlackBuild b/source/xap/fluxbox/fluxbox.SlackBuild index 934b6b0a..33baf85e 100755 --- a/source/xap/fluxbox/fluxbox.SlackBuild +++ b/source/xap/fluxbox/fluxbox.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2011, 2012, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2011, 2012, 2018, 2022 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=fluxbox VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-5} +BUILD=${BUILD:-6} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -86,6 +86,9 @@ zcat $CWD/fluxbox.keys.diff.gz | patch -p1 --verbose || exit 1 # Fix build with gcc11: zcat $CWD/fluxbox.gcc11.patch.gz | patch -p1 --verbose || exit 1 +# Fix broken window decorations with Firefox: +zcat $CWD/dcdde4d32c93d01df205bc06d7dfcbd356be031f.patch.gz | patch -p1 --verbose || exit 1 + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ |