sync with bb-cvs

This commit is contained in:
Dana Jansens 2002-07-26 08:37:15 +00:00
parent cd6c4ebcb2
commit 83b6c9bfa0
6 changed files with 247 additions and 120 deletions

View file

@ -283,7 +283,7 @@ BScreen::BScreen(Blackbox *bb, unsigned int scrn) : ScreenInfo(bb, scrn) {
// manage shown windows
for (i = 0; i < nchild; ++i) {
if (children[i] == None || (! blackbox->validateWindow(children[i])))
if (children[i] == None || ! blackbox->validateWindow(children[i]))
continue;
XWindowAttributes attrib;
@ -1232,6 +1232,14 @@ void BScreen::manageWindow(Window w) {
return;
}
// is the window a docking app
XWMHints *wmhint = XGetWMHints(blackbox->getXDisplay(), w);
if (wmhint && (wmhint->flags & StateHint) &&
wmhint->initial_state == WithdrawnState) {
slit->addClient(w);
return;
}
new BlackboxWindow(blackbox, w, this);
BlackboxWindow *win = blackbox->searchWindow(w);
@ -1763,7 +1771,7 @@ bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) {
break;
case 421: // exec
if ((! *label) && (! *command)) {
if (! (*label || *command)) {
fprintf(stderr, i18n(ScreenSet, ScreenEXECError,
"BScreen::parseMenuFile: [exec] error, "
"no menu label and/or command defined\n"));
@ -1786,21 +1794,19 @@ bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) {
break;
case 561: // style
{
if ((! *label) || (! *command)) {
fprintf(stderr,
i18n(ScreenSet, ScreenSTYLEError,
"BScreen::parseMenuFile: [style] error, "
"no menu label and/or filename defined\n"));
continue;
}
string style = expandTilde(command);
menu->insert(label, BScreen::SetStyle, style.c_str());
case 561: { // style
if (! (*label && *command)) {
fprintf(stderr,
i18n(ScreenSet, ScreenSTYLEError,
"BScreen::parseMenuFile: [style] error, "
"no menu label and/or filename defined\n"));
continue;
}
string style = expandTilde(command);
menu->insert(label, BScreen::SetStyle, style.c_str());
}
break;
case 630: // config
@ -1830,7 +1836,7 @@ bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) {
if (submenufile) {
struct stat buf;
if (fstat(fileno(submenufile), &buf) ||
(! S_ISREG(buf.st_mode))) {
! S_ISREG(buf.st_mode)) {
fprintf(stderr,
i18n(ScreenSet, ScreenINCLUDEErrorReg,
"BScreen::parseMenuFile: [include] error: "
@ -1912,7 +1918,7 @@ bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) {
{
bool newmenu = ((key == 1113) ? True : False);
if ((! *label) || ((! *command) && newmenu)) {
if (! *label || (! *command && newmenu)) {
fprintf(stderr,
i18n(ScreenSet, ScreenSTYLESDIRError,
"BScreen::parseMenuFile: [stylesdir/stylesmenu]"
@ -1958,7 +1964,7 @@ bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) {
style += '/';
style += fname;
if ((! stat(style.c_str(), &statbuf)) &&
if (! stat(style.c_str(), &statbuf) &&
S_ISREG(statbuf.st_mode))
stylesmenu->insert(fname, BScreen::SetStyle, style);
}

View file

@ -133,6 +133,17 @@ void Slit::addClient(Window w) {
client->rect.setSize(64, 64);
}
Atom *proto;
int num_return = 0;
if (XGetWMProtocols(display, client->window, &proto, &num_return)) {
for (int i = 0; i < num_return; ++i) {
if (proto[i] ==
blackbox->getXAtom()->getAtom(XAtom::blackbox_structure_messages)) {
screen->addNetizen(new Netizen(screen, client->window));
}
}
}
XSetWindowBorderWidth(display, client->window, 0);
XGrabServer(display);
@ -466,12 +477,17 @@ void Slit::updateStrut(void) {
case TopCenter:
case TopLeft:
case TopRight:
strut.top = getExposedHeight() + border_width;
strut.top = frame.rect.top() + getExposedHeight() + border_width;
break;
case BottomCenter:
case BottomLeft:
case BottomRight:
strut.bottom = getExposedHeight() + border_width;
int pos;
if (do_auto_hide)
pos = frame.y_hidden;
else
pos = frame.rect.y();
strut.bottom = (screen->getRect().bottom() - pos);
break;
case CenterLeft:
strut.left = getExposedWidth() + border_width;

View file

@ -26,6 +26,8 @@
#endif // HAVE_CONFIG_H
extern "C" {
#include <X11/Xatom.h>
#ifdef HAVE_STRING_H
#include <string.h>
#endif
@ -48,11 +50,9 @@ extern "C" {
#if defined(HAVE_PROCESS_H) && defined(__EMX__)
# include <process.h>
#endif // HAVE_PROCESS_H __EMX__
}
#include <X11/Xatom.h>
#include <assert.h>
}
#include <algorithm>
@ -171,8 +171,8 @@ void bexec(const string& command, const string& displaystring) {
assert(ret != -1);
string cmd = "exec ";
cmd += command;
execl("/bin/sh", "/bin/sh", "-c", cmd.c_str(), NULL);
exit(0);
ret = execl("/bin/sh", "/bin/sh", "-c", cmd.c_str(), NULL);
exit(ret);
}
#else // __EMX__
spawnlp(P_NOWAIT, "cmd.exe", "cmd.exe", "/c", command, NULL);
@ -249,10 +249,8 @@ string itostring(unsigned long i) {
string itostring(long i) {
if (i < 0) {
std::string tmp = itostring( (unsigned long) -i);
std::string tmp = itostring( (unsigned long) std::abs(i));
if (i < 0)
tmp.insert(tmp.begin(), '-');
return tmp;
} else
return itostring( (unsigned long) i);
return tmp;
}

View file

@ -38,9 +38,11 @@ extern "C" {
# include <stdio.h>
# endif // HAVE_STDIO_H
#endif // DEBUG
}
#include <cstdlib>
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif // HAVE_STDLIB_H
}
#include "i18n.hh"
#include "blackbox.hh"
@ -55,9 +57,9 @@ extern "C" {
#include "Window.hh"
#include "Windowmenu.hh"
#include "Workspace.hh"
#include "Slit.hh"
using std::string;
using std::abs;
// change this to change what modifier keys openbox uses for mouse bindings
// for example: Mod1Mask | ControlMask
@ -91,6 +93,25 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
return;
}
// fetch client size and placement
XWindowAttributes wattrib;
if (! XGetWindowAttributes(blackbox->getXDisplay(),
client.window, &wattrib) ||
! wattrib.screen || wattrib.override_redirect) {
#ifdef DEBUG
fprintf(stderr,
"BlackboxWindow::BlackboxWindow(): XGetWindowAttributes failed\n");
#endif // DEBUG
delete this;
return;
}
#ifdef DEBUG
fprintf(stderr, "0x%lx: initial (%d, %d) w: %d, h: %d\n", client.window,
wattrib.x, wattrib.y, wattrib.width, wattrib.height);
#endif // DEBUG
// set the eventmask early in the game so that we make sure we get
// all the events we are interested in
XSetWindowAttributes attrib_set;
@ -101,20 +122,6 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
XChangeWindowAttributes(blackbox->getXDisplay(), client.window,
CWEventMask|CWDontPropagate, &attrib_set);
// fetch client size and placement
XWindowAttributes wattrib;
if ((! XGetWindowAttributes(blackbox->getXDisplay(),
client.window, &wattrib)) ||
(! wattrib.screen) || wattrib.override_redirect) {
#ifdef DEBUG
fprintf(stderr,
"BlackboxWindow::BlackboxWindow(): XGetWindowAttributes failed\n");
#endif // DEBUG
delete this;
return;
}
flags.moving = flags.resizing = flags.shaded = flags.visible =
flags.iconic = flags.focused = flags.stuck = flags.modal =
flags.send_focus_message = flags.shaped = flags.skip_taskbar =
@ -146,10 +153,12 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
Decor_Iconify | Decor_Maximize;
functions = Func_Resize | Func_Move | Func_Iconify | Func_Maximize;
client.wm_hint_flags = client.normal_hint_flags = 0;
client.normal_hint_flags = 0;
client.window_group = None;
client.transient_for = 0;
current_state = NormalState;
/*
get the initial size and location of client window (relative to the
_root window_). This position is the reference point used with the
@ -175,11 +184,11 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
getWMHints();
getWMNormalHints();
if (client.initial_state == WithdrawnState) {
screen->getSlit()->addClient(client.window);
delete this;
return;
}
#ifdef DEBUG
fprintf(stderr, "0x%lx: after hints (%d, %d) w: %d, h: %d\n", client.window,
client.rect.x(), client.rect.y(),
client.rect.width(), client.rect.height());
#endif // DEBUG
frame.window = createToplevelWindow();
frame.plate = createChildWindow(frame.window);
@ -232,6 +241,14 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
}
upsize();
#ifdef DFEBUG
fprintf(stderr, "0x%lx: sizes reflect the frame from now on\n",
client.window);
fprintf(stderr, "0x%lx: after upsize (%d, %d) w: %d, h: %d\n", client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif // DEBUG
setAllowedActions();
bool place_window = True;
@ -243,6 +260,13 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
place_window = False;
}
#ifdef DEBUG
fprintf(stderr, "0x%lx: after gravity (%d, %d) w: %d, h: %d\n",
client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif // DEBUG
// add the window's strut. note this is done *after* placing the window.
screen->addStrut(&client.strut);
updateStrut();
@ -272,16 +296,20 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
// place the window
configure(frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#ifdef DEBUG
fprintf(stderr, "0x%lx: after configure (%d, %d) w: %d, h: %d\n",
client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif // DEBUG
}
// preserve the window's initial state on first map, and its current state
// across a restart
if (! getState()) {
if (client.wm_hint_flags & StateHint)
current_state = client.initial_state;
else
current_state = NormalState;
}
unsigned long initial_state = current_state;
if (! getState())
current_state = initial_state;
// get sticky state from our parent window if we've got one
if (isTransient() && client.transient_for != (BlackboxWindow *) ~0ul &&
@ -290,14 +318,14 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
if (flags.shaded) {
flags.shaded = False;
unsigned long orig_state = current_state;
initial_state = current_state;
shade();
/*
At this point in the life of a window, current_state should only be set
to IconicState if the window was an *icon*, not if it was shaded.
*/
if (orig_state != IconicState)
if (initial_state != IconicState)
current_state = NormalState;
}
@ -306,9 +334,8 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
stick();
}
if (flags.maximized && (functions & Func_Maximize)) {
if (flags.maximized && (functions & Func_Maximize))
remaximize();
}
/*
When the window is mapped (and also when its attributes are restored), the
@ -327,6 +354,13 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
XMapSubwindows(blackbox->getXDisplay(), frame.window);
redrawWindowFrame();
#ifdef DEBUG
fprintf(stderr, "0x%lx: end of constructor (%d, %d) w: %d, h: %d\n",
client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif // DEBUG
}
@ -849,7 +883,7 @@ void BlackboxWindow::grabButtons(void) {
void BlackboxWindow::ungrabButtons(void) {
if ((! screen->isSloppyFocus()) || screen->doClickRaise())
if (! screen->isSloppyFocus() || screen->doClickRaise())
blackbox->ungrabButton(Button1, 0, frame.plate);
blackbox->ungrabButton(Button1, ModMask, frame.window);
@ -1033,10 +1067,9 @@ void BlackboxWindow::getWMProtocols(void) {
if (proto[i] == xatom->getAtom(XAtom::wm_delete_window)) {
decorations |= Decor_Close;
functions |= Func_Close;
} else if (proto[i] == xatom->getAtom(XAtom::wm_take_focus))
} else if (proto[i] == xatom->getAtom(XAtom::wm_take_focus)) {
flags.send_focus_message = True;
else if (proto[i] == xatom->getAtom(XAtom::blackbox_structure_messages))
screen->addNetizen(new Netizen(screen, client.window));
}
}
XFree(proto);
@ -1050,7 +1083,6 @@ void BlackboxWindow::getWMProtocols(void) {
*/
void BlackboxWindow::getWMHints(void) {
focus_mode = F_Passive;
client.initial_state = NormalState;
// remove from current window group
if (client.window_group) {
@ -1077,7 +1109,7 @@ void BlackboxWindow::getWMHints(void) {
}
if (wmhint->flags & StateHint)
client.initial_state = wmhint->initial_state;
current_state = wmhint->initial_state;
if (wmhint->flags & WindowGroupHint) {
client.window_group = wmhint->window_group;
@ -1092,7 +1124,6 @@ void BlackboxWindow::getWMHints(void) {
group->addWindow(this);
}
client.wm_hint_flags = wmhint->flags;
XFree(wmhint);
}
@ -1332,17 +1363,12 @@ bool BlackboxWindow::getBlackboxHints(void) {
if (blackbox_hint->flags & AttribDecoration) {
switch (blackbox_hint->decoration) {
case DecorNone:
// clear all decorations except close
decorations &= Decor_Close;
// clear all functions except close
functions &= Func_Close;
decorations = 0;
break;
case DecorTiny:
decorations |= Decor_Titlebar | Decor_Iconify;
decorations &= ~(Decor_Border | Decor_Handle | Decor_Maximize);
functions |= Func_Move | Func_Iconify;
functions &= ~(Func_Resize | Func_Maximize);
break;
@ -1350,7 +1376,6 @@ bool BlackboxWindow::getBlackboxHints(void) {
case DecorTool:
decorations |= Decor_Titlebar;
decorations &= ~(Decor_Iconify | Decor_Border | Decor_Handle);
functions |= Func_Move;
functions &= ~(Func_Resize | Func_Maximize | Func_Iconify);
break;
@ -1359,8 +1384,6 @@ bool BlackboxWindow::getBlackboxHints(void) {
default:
decorations |= Decor_Titlebar | Decor_Border | Decor_Handle |
Decor_Iconify | Decor_Maximize;
functions |= Func_Resize | Func_Move | Func_Iconify | Func_Maximize;
break;
}
@ -1376,8 +1399,7 @@ bool BlackboxWindow::getBlackboxHints(void) {
void BlackboxWindow::getTransientInfo(void) {
if (client.transient_for &&
client.transient_for != (BlackboxWindow *) ~0ul) {
// the transient for hint was removed, so we need to tell our
// previous transient_for that we are going away
// reset transient_for in preparation of looking for a new owner
client.transient_for->client.transientList.remove(this);
}
@ -1548,15 +1570,7 @@ bool BlackboxWindow::setInputFocus(void) {
assert(! flags.iconic &&
(flags.stuck || // window must be on the current workspace or sticky
blackbox_attrib.workspace == screen->getCurrentWorkspaceID()));
#if 0
// if the window is not visible, mark the window as wanting focus rather
// than give it focus.
if (! flags.visible) {
Workspace *wkspc = screen->getWorkspace(blackbox_attrib.workspace);
wkspc->setLastFocusedWindow(this);
return True;
}
#endif
/*
We only do this check for normal windows and dialogs because other windows
do this on purpose, such as kde's kicker, and we don't want to go moving
@ -1855,6 +1869,27 @@ void BlackboxWindow::maximize(unsigned int button) {
// re-maximizes the window to take into account availableArea changes
void BlackboxWindow::remaximize(void) {
if (flags.shaded) {
// we only update the window's attributes otherwise we lose the shade bit
switch(flags.maximized) {
case 1:
blackbox_attrib.flags |= AttribMaxHoriz | AttribMaxVert;
blackbox_attrib.attrib |= AttribMaxHoriz | AttribMaxVert;
break;
case 2:
blackbox_attrib.flags |= AttribMaxVert;
blackbox_attrib.attrib |= AttribMaxVert;
break;
case 3:
blackbox_attrib.flags |= AttribMaxHoriz;
blackbox_attrib.attrib |= AttribMaxHoriz;
break;
}
return;
}
// save the original dimensions because maximize will wipe them out
int premax_x = blackbox_attrib.premax_x,
premax_y = blackbox_attrib.premax_y,
@ -2236,6 +2271,56 @@ void BlackboxWindow::restoreAttributes(void) {
blackbox_attrib.premax_h = h;
}
if (net->flags & AttribDecoration) {
switch (net->decoration) {
case DecorNone:
decorations = 0;
break;
default:
case DecorNormal:
decorations |= Decor_Titlebar | Decor_Handle | Decor_Border |
Decor_Iconify | Decor_Maximize;
break;
case DecorTiny:
decorations |= Decor_Titlebar | Decor_Iconify;
decorations &= ~(Decor_Border | Decor_Handle | Decor_Maximize);
break;
case DecorTool:
decorations |= Decor_Titlebar;
decorations &= ~(Decor_Iconify | Decor_Border | Decor_Handle);
break;
}
// sanity check the new decor
if (! (functions & Func_Resize) || isTransient())
decorations &= ~(Decor_Maximize | Decor_Handle);
if (! (functions & Func_Maximize))
decorations &= ~Decor_Maximize;
if (decorations & Decor_Titlebar) {
if (functions & Func_Close) // close button is controlled by function
decorations |= Decor_Close; // not decor type
} else {
if (flags.shaded) // we can not be shaded if we lack a titlebar
shade();
}
if (flags.visible && frame.window) {
XMapSubwindows(blackbox->getXDisplay(), frame.window);
XMapWindow(blackbox->getXDisplay(), frame.window);
}
reconfigure();
setState(current_state);
}
// with the state set it will then be the map event's job to read the
// window's state and behave accordingly
@ -2531,6 +2616,12 @@ void BlackboxWindow::mapRequestEvent(const XMapRequestEvent *re) {
case InactiveState:
case ZoomState:
default:
#ifdef DEBUG
fprintf(stderr, "0x%lx: just before show (%d, %d) w: %d, h: %d\n",
client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif // DEBUG
show();
screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this);
if (isNormal()) {
@ -2624,6 +2715,12 @@ void BlackboxWindow::propertyNotifyEvent(const XPropertyEvent *pe) {
}
reconfigure();
#ifdef DEBUG
fprintf(stderr, "0x%lx: transient hint (%d, %d) w: %d, h: %d\n",
client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif
}
break;
@ -2676,6 +2773,12 @@ void BlackboxWindow::propertyNotifyEvent(const XPropertyEvent *pe) {
if (old_rect != frame.rect)
reconfigure();
#ifdef DEBUG
fprintf(stderr, "0x%lx: normal hint (%d, %d) w: %d, h: %d\n",
client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif // DEBUG
break;
}
@ -2735,11 +2838,19 @@ void BlackboxWindow::configureRequestEvent(const XConfigureRequestEvent *cr) {
applyGravity(req);
}
if (cr->value_mask & CWWidth)
if (cr->value_mask & CWWidth) {
req.setWidth(cr->width + frame.margin.left + frame.margin.right);
#ifdef DEBUG
fprintf(stderr, "0x%lx: new width - %d\n", client.window, cr->width);
#endif // DEBUG
}
if (cr->value_mask & CWHeight)
if (cr->value_mask & CWHeight) {
req.setHeight(cr->height + frame.margin.top + frame.margin.bottom);
#ifdef DEBUG
fprintf(stderr, "0x%lx: new height - %d\n", client.window, cr->height);
#endif // DEBUG
}
configure(req.x(), req.y(), req.width(), req.height());
}
@ -2758,6 +2869,13 @@ void BlackboxWindow::configureRequestEvent(const XConfigureRequestEvent *cr) {
break;
}
}
#ifdef DEBUG
fprintf(stderr, "0x%lx: change request (%d, %d) w: %d, h: %d\n",
client.window,
frame.rect.x(), frame.rect.y(),
frame.rect.width(), frame.rect.height());
#endif // DEBUG
}
@ -3030,10 +3148,10 @@ void BlackboxWindow::doMove(int x_root, int y_root) {
bool snapped = False;
const Rect &winrect = snapwin->frameRect();
int dleft = std::abs(wright - winrect.left()),
dright = std::abs(wleft - winrect.right()),
dtop = std::abs(wbottom - winrect.top()),
dbottom = std::abs(wtop - winrect.bottom());
int dleft = abs(wright - winrect.left()),
dright = abs(wleft - winrect.right()),
dtop = abs(wbottom - winrect.top()),
dbottom = abs(wtop - winrect.bottom());
if (wtop >= (signed)(winrect.y() - frame.rect.height() + 1) &&
wtop < (signed)(winrect.y() + winrect.height() - 1)) {
@ -3052,8 +3170,8 @@ void BlackboxWindow::doMove(int x_root, int y_root) {
if (snapped) {
if (screen->getWindowCornerSnap()) {
// try corner-snap to its other sides
dtop = std::abs(wtop - winrect.top());
dbottom = std::abs(wbottom - winrect.bottom());
dtop = abs(wtop - winrect.top());
dbottom = abs(wbottom - winrect.bottom());
if (dtop < snap_distance && dtop <= dbottom)
dy = winrect.top();
else if (dbottom < snap_distance)
@ -3081,8 +3199,8 @@ void BlackboxWindow::doMove(int x_root, int y_root) {
if (snapped) {
if (screen->getWindowCornerSnap()) {
// try corner-snap to its other sides
dleft = std::abs(wleft - winrect.left());
dright = std::abs(wright - winrect.right());
dleft = abs(wleft - winrect.left());
dright = abs(wright - winrect.right());
if (dleft < snap_distance && dleft <= dright)
dx = winrect.left();
else if (dright < snap_distance)
@ -3128,10 +3246,10 @@ void BlackboxWindow::doMove(int x_root, int y_root) {
frame.rect.height())))
continue;
int dleft = std::abs(wleft - srect.left()),
dright = std::abs(wright - srect.right()),
dtop = std::abs(wtop - srect.top()),
dbottom = std::abs(wbottom - srect.bottom());
int dleft = abs(wleft - srect.left()),
dright = abs(wright - srect.right()),
dtop = abs(wtop - srect.top()),
dbottom = abs(wbottom - srect.bottom());
// snap left?
if (dleft < snap_distance && dleft <= dright)
@ -3466,7 +3584,7 @@ void BlackboxWindow::timeout(void) {
}
void BlackboxWindow::changeBlackboxHints(BlackboxHints *net) {
void BlackboxWindow::changeBlackboxHints(const BlackboxHints *net) {
if ((net->flags & AttribShaded) &&
((blackbox_attrib.attrib & AttribShaded) !=
(net->attrib & AttribShaded)))
@ -3512,8 +3630,7 @@ void BlackboxWindow::changeBlackboxHints(BlackboxHints *net) {
if (net->flags & AttribDecoration) {
switch (net->decoration) {
case DecorNone:
// clear all decorations except close
decorations &= Decor_Close;
decorations = 0;
break;

View file

@ -183,7 +183,7 @@ private:
base_width, base_height,
win_gravity;
unsigned long initial_state, normal_hint_flags, wm_hint_flags;
unsigned long initial_state, normal_hint_flags;
} client;
FunctionFlags functions;
@ -390,7 +390,7 @@ public:
void restore(bool remap);
void configure(int dx, int dy, unsigned int dw, unsigned int dh);
void setWorkspace(unsigned int n);
void changeBlackboxHints(BlackboxHints *net);
void changeBlackboxHints(const BlackboxHints *net);
void restoreAttributes(void);
void buttonPressEvent(const XButtonEvent *be);

View file

@ -282,16 +282,6 @@ void Blackbox::process_event(XEvent *e) {
}
case ConfigureRequest: {
// compress configure requests...
XEvent realevent;
unsigned int i = 0;
while(XCheckTypedWindowEvent(getXDisplay(), e->xconfigurerequest.window,
ConfigureRequest, &realevent)) {
i++;
}
if ( i > 0 )
e = &realevent;
BlackboxWindow *win = (BlackboxWindow *) 0;
Slit *slit = (Slit *) 0;
@ -496,7 +486,7 @@ void Blackbox::process_event(XEvent *e) {
if (win->getScreen()->isSloppyFocus() &&
(! win->isFocused()) && (! no_focus) &&
win->isNormal()) { // don't focus non-normal windows with mouseover
if (((! sa.leave) || sa.inferior) && win->isVisible()) {
if ((! sa.leave || sa.inferior) && win->isVisible()) {
if (win->setInputFocus())
win->installColormap(True); // XXX: shouldnt we honour no install?
}