fix some minor transparency issues
This commit is contained in:
parent
7b4e2364bf
commit
5e87ca1ea4
4 changed files with 36 additions and 36 deletions
|
@ -1,5 +1,8 @@
|
|||
(Format: Year/Month/Day)
|
||||
Changes for 0.9.8:
|
||||
*04/01/10:
|
||||
* Fix a number of transparency issues for window frames (Simon)
|
||||
FbWinFrame.cc WinButton.hh/cc
|
||||
*04/01/09:
|
||||
* Fixed color parse bug (Henrik)
|
||||
removing whitespaces
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
// $Id: FbWinFrame.cc,v 1.68 2004/01/02 13:26:44 fluxgen Exp $
|
||||
// $Id: FbWinFrame.cc,v 1.69 2004/01/10 00:37:35 rathnor Exp $
|
||||
|
||||
#include "FbWinFrame.hh"
|
||||
|
||||
|
@ -560,7 +560,10 @@ void FbWinFrame::buttonReleaseEvent(XButtonEvent &event) {
|
|||
}
|
||||
|
||||
void FbWinFrame::exposeEvent(XExposeEvent &event) {
|
||||
if (m_label == event.window) {
|
||||
if (m_titlebar == event.window) {
|
||||
m_titlebar.clearArea(event.x, event.y, event.width, event.height);
|
||||
m_titlebar.updateTransparent(event.x, event.y, event.width, event.height);
|
||||
} else if (m_label == event.window) {
|
||||
m_label.clearArea(event.x, event.y, event.width, event.height);
|
||||
m_label.updateTransparent(event.x, event.y, event.width, event.height);
|
||||
} else if (m_handle == event.window) {
|
||||
|
@ -853,7 +856,6 @@ void FbWinFrame::renderTitlebar() {
|
|||
getCurrentFocusPixmap(label_pm, title_pm,
|
||||
label_color, title_color);
|
||||
|
||||
|
||||
if (label_pm != 0)
|
||||
m_label.setBackgroundPixmap(label_pm);
|
||||
else
|
||||
|
@ -864,6 +866,9 @@ void FbWinFrame::renderTitlebar() {
|
|||
else
|
||||
m_titlebar.setBackgroundColor(title_color);
|
||||
|
||||
m_titlebar.setAlpha(theme().alpha());
|
||||
m_label.setAlpha(theme().alpha());
|
||||
|
||||
renderLabelButtons();
|
||||
redrawTitlebar();
|
||||
}
|
||||
|
@ -921,16 +926,8 @@ void FbWinFrame::renderHandles() {
|
|||
}
|
||||
|
||||
m_handle.setAlpha(theme().alpha());
|
||||
m_handle.clear();
|
||||
m_handle.updateTransparent();
|
||||
|
||||
m_grip_left.setAlpha(theme().alpha());
|
||||
m_grip_left.clear();
|
||||
m_grip_left.updateTransparent();
|
||||
|
||||
m_grip_right.setAlpha(theme().alpha());
|
||||
m_grip_right.clear();
|
||||
m_grip_right.updateTransparent();
|
||||
|
||||
}
|
||||
|
||||
|
@ -1160,8 +1157,6 @@ void FbWinFrame::renderButtonFocus(FbTk::TextButton &button) {
|
|||
} else
|
||||
button.setBackgroundColor(m_label_focused_color);
|
||||
|
||||
button.clear();
|
||||
button.updateTransparent();
|
||||
}
|
||||
|
||||
void FbWinFrame::renderButtonActive(FbTk::TextButton &button) {
|
||||
|
@ -1178,8 +1173,6 @@ void FbWinFrame::renderButtonActive(FbTk::TextButton &button) {
|
|||
} else
|
||||
button.setBackgroundColor(m_label_active_color);
|
||||
|
||||
button.clear();
|
||||
button.updateTransparent();
|
||||
}
|
||||
|
||||
void FbWinFrame::renderButtonUnfocus(FbTk::TextButton &button) {
|
||||
|
@ -1196,15 +1189,13 @@ void FbWinFrame::renderButtonUnfocus(FbTk::TextButton &button) {
|
|||
} else
|
||||
button.setBackgroundColor(m_label_unfocused_color);
|
||||
|
||||
button.clear();
|
||||
button.updateTransparent();
|
||||
}
|
||||
|
||||
void FbWinFrame::updateTransparent() {
|
||||
redrawTitlebar();
|
||||
|
||||
ButtonList::iterator button_it = m_buttons_left.begin();
|
||||
ButtonList::iterator button_it_end = m_buttons_left.begin();
|
||||
ButtonList::iterator button_it_end = m_buttons_left.end();
|
||||
for (; button_it != button_it_end; ++button_it) {
|
||||
(*button_it)->clear();
|
||||
(*button_it)->updateTransparent();
|
||||
|
@ -1223,6 +1214,7 @@ void FbWinFrame::updateTransparent() {
|
|||
m_grip_right.updateTransparent();
|
||||
m_handle.clear();
|
||||
m_handle.updateTransparent();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
/// $Id: WinButton.cc,v 1.16 2003/10/31 19:32:40 rathnor Exp $
|
||||
/// $Id: WinButton.cc,v 1.17 2004/01/10 00:37:35 rathnor Exp $
|
||||
|
||||
#include "WinButton.hh"
|
||||
#include "App.hh"
|
||||
|
@ -39,15 +39,17 @@ WinButton::WinButton(const FluxboxWindow &listen_to,
|
|||
|
||||
void WinButton::exposeEvent(XExposeEvent &event) {
|
||||
FbTk::Button::exposeEvent(event);
|
||||
drawType();
|
||||
drawType(false, false);
|
||||
}
|
||||
|
||||
void WinButton::buttonReleaseEvent(XButtonEvent &event) {
|
||||
FbTk::Button::buttonReleaseEvent(event);
|
||||
clear();
|
||||
updateTransparent();
|
||||
}
|
||||
|
||||
void WinButton::drawType() {
|
||||
// clear is used to force this to clear the window (e.g. called from clear())
|
||||
void WinButton::drawType(bool clear, bool no_trans) {
|
||||
bool used = false;
|
||||
|
||||
// if it's odd and we're centring, we need to add one
|
||||
|
@ -79,13 +81,14 @@ void WinButton::drawType() {
|
|||
used = true;
|
||||
}
|
||||
}
|
||||
if (used)
|
||||
if (used || clear)
|
||||
FbTk::FbWindow::clear();
|
||||
|
||||
// if no pixmap was used, use old style
|
||||
if (!used) {
|
||||
if (gc() == 0) // must have valid graphic context
|
||||
return;
|
||||
|
||||
drawRectangle(gc(),
|
||||
2, 2, width() - 5, height() - 5);
|
||||
drawLine(gc(),
|
||||
|
@ -120,9 +123,10 @@ void WinButton::drawType() {
|
|||
|
||||
}
|
||||
|
||||
if (used) {
|
||||
if (used || clear) {
|
||||
FbTk::FbWindow::clear();
|
||||
} else if (gc() != 0) { // must have valid graphic context
|
||||
}
|
||||
if (!used && gc() != 0) { // must have valid graphic context
|
||||
FbTk::FbWindow::drawRectangle(gc(),
|
||||
2, height() - 5, width() - 5, 2);
|
||||
}
|
||||
|
@ -178,9 +182,10 @@ void WinButton::drawType() {
|
|||
|
||||
}
|
||||
|
||||
if (used)
|
||||
if (used || clear)
|
||||
FbTk::FbWindow::clear();
|
||||
else if (gc() != 0) {
|
||||
|
||||
if (!used && gc() != 0) {
|
||||
// width/4 != width/2, so we use /4*2 so that it's properly centred
|
||||
if (m_listen_to.isStuck()) {
|
||||
fillRectangle(gc(),
|
||||
|
@ -221,9 +226,10 @@ void WinButton::drawType() {
|
|||
}
|
||||
|
||||
|
||||
if (used)
|
||||
if (used || clear)
|
||||
FbTk::FbWindow::clear();
|
||||
else if (gc() != 0) { // must have valid graphic context
|
||||
|
||||
if (!used && gc() != 0) { // must have valid graphic context
|
||||
|
||||
drawLine(gc(),
|
||||
2, 2,
|
||||
|
@ -265,20 +271,19 @@ void WinButton::drawType() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
FbTk::FbWindow::clear();
|
||||
if (used || clear)
|
||||
FbTk::FbWindow::clear();
|
||||
|
||||
break;
|
||||
}
|
||||
updateTransparent();
|
||||
if ((used || clear) && !no_trans)
|
||||
updateTransparent();
|
||||
}
|
||||
|
||||
void WinButton::clear() {
|
||||
FbTk::Button::clear();
|
||||
drawType();
|
||||
drawType(true, true);
|
||||
}
|
||||
|
||||
void WinButton::update(FbTk::Subject *subj) {
|
||||
clear();
|
||||
drawType();
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
/// $Id: WinButton.hh,v 1.4 2003/04/28 22:39:12 fluxgen Exp $
|
||||
/// $Id: WinButton.hh,v 1.5 2004/01/10 00:37:35 rathnor Exp $
|
||||
|
||||
#include "Button.hh"
|
||||
#include "Observer.hh"
|
||||
|
@ -43,7 +43,7 @@ public:
|
|||
void clear();
|
||||
void update(FbTk::Subject *subj);
|
||||
private:
|
||||
void drawType();
|
||||
void drawType(bool clear, bool no_trans); // don't update transparency (eg in clear)
|
||||
Type m_type; ///< the button type
|
||||
const FluxboxWindow &m_listen_to;
|
||||
WinButtonTheme &m_theme;
|
||||
|
|
Loading…
Reference in a new issue