aboutsummaryrefslogtreecommitdiff
path: root/src/FbWinFrame.cc
diff options
context:
space:
mode:
authorGediminas Liktaras <gliktaras@gmail.com>2011-10-20 07:41:25 (GMT)
committerMathias Gumz <mathias gumz at gmail com>2011-10-20 07:41:55 (GMT)
commit12f44680dfefde602f3387c6d385f4c5e68990e4 (patch)
treea340aa064066988b6425009d961a3f971f3d3d4f /src/FbWinFrame.cc
parentb2b65dea7f766942f1a7a7e34b8815c5dbb996a8 (diff)
downloadfluxbox-12f44680dfefde602f3387c6d385f4c5e68990e4.zip
fluxbox-12f44680dfefde602f3387c6d385f4c5e68990e4.tar.bz2
Added support for ARGB visual, patch #3284774
fluxbox now properly displays windows that require ARGB visuals when an external compositor is running. This was done by creating the container window with the correct visual and colormap when needed. Closes #2874629
Diffstat (limited to 'src/FbWinFrame.cc')
-rw-r--r--src/FbWinFrame.cc32
1 files changed, 24 insertions, 8 deletions
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc
index a8ee4d5..53cecf7 100644
--- a/src/FbWinFrame.cc
+++ b/src/FbWinFrame.cc
@@ -45,7 +45,8 @@ using std::string;
45 45
46using FbTk::STLUtil::forAll; 46using FbTk::STLUtil::forAll;
47 47
48FbWinFrame::FbWinFrame(BScreen &screen, WindowState &state, 48FbWinFrame::FbWinFrame(BScreen &screen, unsigned int client_depth,
49 WindowState &state,
49 FocusableTheme<FbWinFrameTheme> &theme): 50 FocusableTheme<FbWinFrameTheme> &theme):
50 m_screen(screen), 51 m_screen(screen),
51 m_theme(theme), 52 m_theme(theme),
@@ -54,26 +55,41 @@ FbWinFrame::FbWinFrame(BScreen &screen, WindowState &state,
54 m_window(theme->screenNum(), state.x, state.y, state.width, state.height, 55 m_window(theme->screenNum(), state.x, state.y, state.width, state.height,
55 ButtonPressMask | ButtonReleaseMask | 56 ButtonPressMask | ButtonReleaseMask |
56 ButtonMotionMask | EnterWindowMask | 57 ButtonMotionMask | EnterWindowMask |
57 LeaveWindowMask, true), 58 LeaveWindowMask, true, false,
59 client_depth, InputOutput,
60 ((client_depth == 32) && (screen.rootWindow().depth() == 32) ? screen.rootWindow().visual() : CopyFromParent),
61 ((client_depth == 32) && (screen.rootWindow().depth() == 32) ? screen.rootWindow().colormap() : CopyFromParent)),
58 m_layeritem(window(), *screen.layerManager().getLayer(ResourceLayer::NORMAL)), 62 m_layeritem(window(), *screen.layerManager().getLayer(ResourceLayer::NORMAL)),
59 m_titlebar(m_window, 0, 0, 100, 16, 63 m_titlebar(m_window, 0, 0, 100, 16,
60 ButtonPressMask | ButtonReleaseMask | 64 ButtonPressMask | ButtonReleaseMask |
61 ButtonMotionMask | ExposureMask | 65 ButtonMotionMask | ExposureMask |
62 EnterWindowMask | LeaveWindowMask), 66 EnterWindowMask | LeaveWindowMask,
67 false, false, screen.rootWindow().decorationDepth(), InputOutput,
68 screen.rootWindow().decorationVisual(),
69 screen.rootWindow().decorationColormap()),
63 m_tab_container(m_titlebar), 70 m_tab_container(m_titlebar),
64 m_label(m_titlebar, m_theme->font(), FbTk::BiDiString("")), 71 m_label(m_titlebar, m_theme->font(), FbTk::BiDiString("")),
65 m_handle(m_window, 0, 0, 100, 5, 72 m_handle(m_window, 0, 0, 100, 5,
66 ButtonPressMask | ButtonReleaseMask | 73 ButtonPressMask | ButtonReleaseMask |
67 ButtonMotionMask | ExposureMask | 74 ButtonMotionMask | ExposureMask |
68 EnterWindowMask | LeaveWindowMask), 75 EnterWindowMask | LeaveWindowMask,
76 false, false, screen.rootWindow().decorationDepth(), InputOutput,
77 screen.rootWindow().decorationVisual(),
78 screen.rootWindow().decorationColormap()),
69 m_grip_right(m_handle, 0, 0, 10, 4, 79 m_grip_right(m_handle, 0, 0, 10, 4,
70 ButtonPressMask | ButtonReleaseMask | 80 ButtonPressMask | ButtonReleaseMask |
71 ButtonMotionMask | ExposureMask | 81 ButtonMotionMask | ExposureMask |
72 EnterWindowMask | LeaveWindowMask), 82 EnterWindowMask | LeaveWindowMask,
83 false, false, screen.rootWindow().decorationDepth(), InputOutput,
84 screen.rootWindow().decorationVisual(),
85 screen.rootWindow().decorationColormap()),
73 m_grip_left(m_handle, 0, 0, 10, 4, 86 m_grip_left(m_handle, 0, 0, 10, 4,
74 ButtonPressMask | ButtonReleaseMask | 87 ButtonPressMask | ButtonReleaseMask |
75 ButtonMotionMask | ExposureMask | 88 ButtonMotionMask | ExposureMask |
76 EnterWindowMask | LeaveWindowMask), 89 EnterWindowMask | LeaveWindowMask,
90 false, false, screen.rootWindow().decorationDepth(), InputOutput,
91 screen.rootWindow().decorationVisual(),
92 screen.rootWindow().decorationColormap()),
77 m_clientarea(m_window, 0, 0, 100, 100, 93 m_clientarea(m_window, 0, 0, 100, 100,
78 ButtonPressMask | ButtonReleaseMask | 94 ButtonPressMask | ButtonReleaseMask |
79 ButtonMotionMask | ExposureMask | 95 ButtonMotionMask | ExposureMask |