revert mathias last change, and fix it differently using info already
there
This commit is contained in:
parent
f1c5abd17f
commit
94e3fa88fc
4 changed files with 12 additions and 21 deletions
|
@ -1,5 +1,8 @@
|
|||
(Format: Year/Month/Day)
|
||||
Changes for 0.9.13
|
||||
*05/04/28:
|
||||
* Revert Mathias's little change to my patch, and fix it properly :) (Simon)
|
||||
FbTk/FbWindow.cc/hh FbWinFrame.cc
|
||||
*05/04/27:
|
||||
* Fix some initialisation, plus setting background too much (Simon + Mathias)
|
||||
FbTk/FbWindow.cc/hh FbWinFrame.cc
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace FbTk {
|
|||
|
||||
FbWindow::FbWindow():FbDrawable(), m_parent(0), m_screen_num(0), m_window(0), m_x(0), m_y(0),
|
||||
m_width(0), m_height(0), m_border_width(0), m_depth(0), m_destroy(true),
|
||||
m_lastbg_color_set(false), m_lastbg_color(0), m_lastbg_pm(0), m_renderer(0), m_is_carrier(false) {
|
||||
m_lastbg_color_set(false), m_lastbg_color(0), m_lastbg_pm(0), m_renderer(0) {
|
||||
|
||||
}
|
||||
|
||||
|
@ -58,8 +58,7 @@ FbWindow::FbWindow(const FbWindow& the_copy):FbDrawable(),
|
|||
m_border_width(the_copy.borderWidth()),
|
||||
m_depth(the_copy.depth()), m_destroy(true),
|
||||
m_lastbg_color_set(false), m_lastbg_color(0),
|
||||
m_lastbg_pm(0), m_renderer(the_copy.m_renderer),
|
||||
m_is_carrier(false) {
|
||||
m_lastbg_pm(0), m_renderer(the_copy.m_renderer) {
|
||||
the_copy.m_window = 0;
|
||||
}
|
||||
|
||||
|
@ -77,7 +76,7 @@ FbWindow::FbWindow(int screen_num,
|
|||
m_destroy(true),
|
||||
m_lastbg_color_set(false),
|
||||
m_lastbg_color(0),
|
||||
m_lastbg_pm(0), m_renderer(0), m_is_carrier(false) {
|
||||
m_lastbg_pm(0), m_renderer(0) {
|
||||
|
||||
create(RootWindow(display(), screen_num),
|
||||
x, y, width, height, eventmask,
|
||||
|
@ -94,7 +93,7 @@ FbWindow::FbWindow(const FbWindow &parent,
|
|||
m_screen_num(parent.screenNumber()),
|
||||
m_destroy(true),
|
||||
m_lastbg_color_set(false), m_lastbg_color(0),
|
||||
m_lastbg_pm(0), m_renderer(0), m_is_carrier(false) {
|
||||
m_lastbg_pm(0), m_renderer(0) {
|
||||
|
||||
create(parent.window(), x, y, width, height, eventmask,
|
||||
override_redirect, save_unders, depth, class_type);
|
||||
|
@ -111,7 +110,7 @@ FbWindow::FbWindow(Window client):FbDrawable(), m_parent(0),
|
|||
m_depth(0),
|
||||
m_destroy(false), // don't destroy this window
|
||||
m_lastbg_color_set(false), m_lastbg_color(0),
|
||||
m_lastbg_pm(0), m_renderer(0), m_is_carrier(false) {
|
||||
m_lastbg_pm(0), m_renderer(0) {
|
||||
|
||||
setNew(client);
|
||||
}
|
||||
|
@ -151,14 +150,10 @@ void FbWindow::setBackgroundPixmap(Pixmap bg_pixmap) {
|
|||
}
|
||||
|
||||
void FbWindow::updateBackground(bool only_if_alpha) {
|
||||
|
||||
if (isCarrier())
|
||||
return;
|
||||
|
||||
Pixmap newbg = m_lastbg_pm;
|
||||
unsigned char alpha = 255;
|
||||
bool free_newbg = false;
|
||||
|
||||
|
||||
if (m_lastbg_pm == None && !m_lastbg_color_set)
|
||||
return;
|
||||
|
||||
|
@ -168,9 +163,9 @@ void FbWindow::updateBackground(bool only_if_alpha) {
|
|||
if (only_if_alpha && alpha == 255)
|
||||
return;
|
||||
|
||||
// still use bg buffer pixmap if transparent
|
||||
// cause it does nice caching things
|
||||
if (m_lastbg_pm != ParentRelative) {
|
||||
// still use bg buffer pixmap if not transparent
|
||||
// cause it does nice caching things, assuming we have a renderer
|
||||
if (m_lastbg_pm != ParentRelative && (m_renderer || alpha != 255)) {
|
||||
// update source and destination if needed
|
||||
Pixmap root = FbPixmap::getRootPixmap(screenNumber());
|
||||
if (alpha != 255 && m_transparent->source() != root)
|
||||
|
|
|
@ -187,9 +187,6 @@ public:
|
|||
void setRenderer(FbWindowRenderer &renderer) { m_renderer = &renderer; }
|
||||
void sendConfigureNotify(int x, int y, unsigned int width, unsigned int height);
|
||||
|
||||
/// this window is basicly a carrier and does not need background-updates
|
||||
void setCarrier(bool flag) { m_is_carrier = flag; }
|
||||
bool isCarrier() const { return m_is_carrier; }
|
||||
/// forces full background change, recalcing of alpha values if necessary
|
||||
void updateBackground(bool only_if_alpha);
|
||||
|
||||
|
@ -224,8 +221,6 @@ private:
|
|||
Pixmap m_lastbg_pm;
|
||||
|
||||
FbWindowRenderer *m_renderer;
|
||||
|
||||
bool m_is_carrier;
|
||||
};
|
||||
|
||||
bool operator == (Window win, const FbWindow &fbwin);
|
||||
|
|
|
@ -86,8 +86,6 @@ FbWinFrame::FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl,
|
|||
m_themelistener(*this),
|
||||
m_shape(new Shape(m_window, theme.shapePlace())) {
|
||||
m_theme.reconfigSig().attach(&m_themelistener);
|
||||
m_window.setCarrier(true);
|
||||
m_clientarea.setCarrier(true);
|
||||
init();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue