all repos — openbox @ 03f9d6170bd97dbbb968746f2841d9fa5cb3e977

openbox fork - make it a bit more like ryudo

sync with bb-cvs (fixes the java bug, plus menu prasing redone)
Dana Jansens danakj@orodu.net
commit

03f9d6170bd97dbbb968746f2841d9fa5cb3e977

parent

9e7f5d2208649a441a11c9912d10604769f72189

2 files changed, 322 insertions(+), 391 deletions(-)

jump to
M src/Screen.ccsrc/Screen.cc

@@ -1646,37 +1646,38 @@ memset(line, 0, 1024);

memset(label, 0, 1024); while (fgets(line, 1024, menu_file) && ! feof(menu_file)) { - if (line[0] != '#') { - int i, key = 0, index = -1, len = strlen(line); + if (line[0] == '#') + continue; - for (i = 0; i < len; i++) { - if (line[i] == '[') index = 0; - else if (line[i] == ']') break; - else if (line[i] != ' ') - if (index++ >= 0) - key += tolower(line[i]); - } + int i, key = 0, index = -1, len = strlen(line); - if (key == 517) { // [begin] - index = -1; - for (i = index; i < len; i++) { - if (line[i] == '(') index = 0; - else if (line[i] == ')') break; - else if (index++ >= 0) { - if (line[i] == '\\' && i < len - 1) i++; - label[index - 1] = line[i]; - } + for (i = 0; i < len; i++) { + if (line[i] == '[') index = 0; + else if (line[i] == ']') break; + else if (line[i] != ' ') + if (index++ >= 0) + key += tolower(line[i]); + } + + if (key == 517) { // [begin] + index = -1; + for (i = index; i < len; i++) { + if (line[i] == '(') index = 0; + else if (line[i] == ')') break; + else if (index++ >= 0) { + if (line[i] == '\\' && i < len - 1) i++; + label[index - 1] = line[i]; } + } - if (index == -1) index = 0; - label[index] = '\0'; + if (index == -1) index = 0; + label[index] = '\0'; - rootmenu->setLabel(label); - defaultMenu = parseMenuFile(menu_file, rootmenu); - if (! defaultMenu) - blackbox->addMenuTimestamp(menu_filename); - break; - } + rootmenu->setLabel(label); + defaultMenu = parseMenuFile(menu_file, rootmenu); + if (! defaultMenu) + blackbox->addMenuTimestamp(menu_filename); + break; } } }

@@ -1698,320 +1699,312 @@ }

} +static +void string_within(char begin, char end, const char *input, size_t length, + char *output) { + bool parse = False; + size_t index = 0; + + for (size_t i = 0; i < length; ++i) { + if (input[i] == begin) { + parse = True; + } else if (input[i] == end) { + break; + } else if (parse) { + if (input[i] == '\\' && i < length - 1) i++; + output[index++] = input[i]; + } + } + + if (parse) + output[index] = '\0'; + else + output[0] = '\0'; +} + + bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) { - char line[1024], label[1024], command[1024]; + char line[1024], keyword[1024], label[1024], command[1024]; + bool done = False; - while (! feof(file)) { + while (! (done || feof(file))) { memset(line, 0, 1024); memset(label, 0, 1024); memset(command, 0, 1024); - if (fgets(line, 1024, file)) { - if (line[0] != '#') { - int i, key = 0, parse = 0, index = -1, line_length = strlen(line); + if (! fgets(line, 1024, file)) + continue; - // determine the keyword - for (i = 0; i < line_length; i++) { - if (line[i] == '[') parse = 1; - else if (line[i] == ']') break; - else if (line[i] != ' ') - if (parse) - key += tolower(line[i]); - } + if (line[0] == '#') // comment, skip it + continue; - // get the label enclosed in ()'s - parse = 0; + size_t line_length = strlen(line); + unsigned int key = 0; - for (i = 0; i < line_length; i++) { - if (line[i] == '(') { - index = 0; - parse = 1; - } else if (line[i] == ')') break; - else if (index++ >= 0) { - if (line[i] == '\\' && i < line_length - 1) i++; - label[index - 1] = line[i]; - } - } + // get the keyword enclosed in []'s + string_within('[', ']', line, line_length, keyword); - if (parse) { - label[index] = '\0'; - } else { - label[0] = '\0'; - } + if (keyword[0] == '\0') { // no keyword, no menu entry + continue; + } else { + size_t len = strlen(keyword); + for (size_t i = 0; i < len; ++i) { + if (keyword[i] != ' ') + key += tolower(keyword[i]); + } + } - // get the command enclosed in {}'s - parse = 0; - index = -1; - for (i = 0; i < line_length; i++) { - if (line[i] == '{') { - index = 0; - parse = 1; - } else if (line[i] == '}') break; - else if (index++ >= 0) { - if (line[i] == '\\' && i < line_length - 1) i++; - command[index - 1] = line[i]; - } - } + // get the label enclosed in ()'s + string_within('(', ')', line, line_length, label); - if (parse) { - command[index] = '\0'; - } else { - command[0] = '\0'; - } + // get the command enclosed in {}'s + string_within('{', '}', line, line_length, command); - switch (key) { - case 311: // end - return ((menu->getCount() == 0) ? True : False); + switch (key) { + case 311: // end + done = True; - break; + break; - case 333: // nop - if (! *label) - label[0] = '\0'; - menu->insert(label); + case 333: // nop + if (! *label) + label[0] = '\0'; + menu->insert(label); - break; + break; - case 421: // exec - if (! (*label && *command)) { - fprintf(stderr, i18n(ScreenSet, ScreenEXECError, - "BScreen::parseMenuFile: [exec] error, " - "no menu label and/or command defined\n")); - continue; - } + case 421: // exec + if (! (*label && *command)) { + fprintf(stderr, i18n(ScreenSet, ScreenEXECError, + "BScreen::parseMenuFile: [exec] error, " + "no menu label and/or command defined\n")); + continue; + } - menu->insert(label, BScreen::Execute, command); + menu->insert(label, BScreen::Execute, command); - break; + break; - case 442: // exit - if (! *label) { - fprintf(stderr, i18n(ScreenSet, ScreenEXITError, - "BScreen::parseMenuFile: [exit] error, " - "no menu label defined\n")); - continue; - } + case 442: // exit + if (! *label) { + fprintf(stderr, i18n(ScreenSet, ScreenEXITError, + "BScreen::parseMenuFile: [exit] error, " + "no menu label defined\n")); + continue; + } - menu->insert(label, BScreen::Exit); + menu->insert(label, BScreen::Exit); - break; + 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; - } + 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); + string style = expandTilde(command); - menu->insert(label, BScreen::SetStyle, style.c_str()); - } - break; + menu->insert(label, BScreen::SetStyle, style.c_str()); + } + break; - case 630: // config - if (! *label) { - fprintf(stderr, i18n(ScreenSet, ScreenCONFIGError, - "BScreen::parseMenufile: [config] error, " - "no label defined")); - continue; - } + case 630: // config + if (! *label) { + fprintf(stderr, i18n(ScreenSet, ScreenCONFIGError, + "BScreen::parseMenufile: [config] error, " + "no label defined")); + continue; + } - menu->insert(label, configmenu); + menu->insert(label, configmenu); - break; + break; - case 740: // include - { - if (! *label) { - fprintf(stderr, i18n(ScreenSet, ScreenINCLUDEError, - "BScreen::parseMenuFile: [include] error, " - "no filename defined\n")); - continue; - } + case 740: { // include + if (! *label) { + fprintf(stderr, i18n(ScreenSet, ScreenINCLUDEError, + "BScreen::parseMenuFile: [include] error, " + "no filename defined\n")); + continue; + } - string newfile = expandTilde(label); - FILE *submenufile = fopen(newfile.c_str(), "r"); + string newfile = expandTilde(label); + FILE *submenufile = fopen(newfile.c_str(), "r"); - if (submenufile) { - struct stat buf; - if (fstat(fileno(submenufile), &buf) || - ! S_ISREG(buf.st_mode)) { - fprintf(stderr, - i18n(ScreenSet, ScreenINCLUDEErrorReg, - "BScreen::parseMenuFile: [include] error: " - "'%s' is not a regular file\n"), newfile.c_str()); - break; - } + if (! submenufile) { + perror(newfile.c_str()); + continue; + } - if (! feof(submenufile)) { - if (! parseMenuFile(submenufile, menu)) - blackbox->addMenuTimestamp(newfile); + struct stat buf; + if (fstat(fileno(submenufile), &buf) || + ! S_ISREG(buf.st_mode)) { + fprintf(stderr, + i18n(ScreenSet, ScreenINCLUDEErrorReg, + "BScreen::parseMenuFile: [include] error: " + "'%s' is not a regular file\n"), newfile.c_str()); + break; + } - fclose(submenufile); - } - } else { - perror(newfile.c_str()); - } - } + if (! feof(submenufile)) { + if (! parseMenuFile(submenufile, menu)) + blackbox->addMenuTimestamp(newfile); - break; + fclose(submenufile); + } + } - case 767: // submenu - { - if (! *label) { - fprintf(stderr, i18n(ScreenSet, ScreenSUBMENUError, - "BScreen::parseMenuFile: [submenu] error, " - "no menu label defined\n")); - continue; - } + break; - Rootmenu *submenu = new Rootmenu(this); + case 767: { // submenu + if (! *label) { + fprintf(stderr, i18n(ScreenSet, ScreenSUBMENUError, + "BScreen::parseMenuFile: [submenu] error, " + "no menu label defined\n")); + continue; + } - if (*command) - submenu->setLabel(command); - else - submenu->setLabel(label); + Rootmenu *submenu = new Rootmenu(this); - parseMenuFile(file, submenu); - submenu->update(); - menu->insert(label, submenu); - rootmenuList.push_back(submenu); - } + if (*command) + submenu->setLabel(command); + else + submenu->setLabel(label); - break; + parseMenuFile(file, submenu); + submenu->update(); + menu->insert(label, submenu); + rootmenuList.push_back(submenu); + } - case 773: // restart - { - if (! *label) { - fprintf(stderr, i18n(ScreenSet, ScreenRESTARTError, - "BScreen::parseMenuFile: [restart] error, " - "no menu label defined\n")); - continue; - } + break; - if (*command) - menu->insert(label, BScreen::RestartOther, command); - else - menu->insert(label, BScreen::Restart); - } + case 773: { // restart + if (! *label) { + fprintf(stderr, i18n(ScreenSet, ScreenRESTARTError, + "BScreen::parseMenuFile: [restart] error, " + "no menu label defined\n")); + continue; + } - break; + if (*command) + menu->insert(label, BScreen::RestartOther, command); + else + menu->insert(label, BScreen::Restart); + } - case 845: // reconfig - { - if (! *label) { - fprintf(stderr, - i18n(ScreenSet, ScreenRECONFIGError, - "BScreen::parseMenuFile: [reconfig] error, " - "no menu label defined\n")); - continue; - } + break; - menu->insert(label, BScreen::Reconfigure); - } + case 845: { // reconfig + if (! *label) { + fprintf(stderr, + i18n(ScreenSet, ScreenRECONFIGError, + "BScreen::parseMenuFile: [reconfig] error, " + "no menu label defined\n")); + continue; + } - break; + menu->insert(label, BScreen::Reconfigure); + } - case 995: // stylesdir - case 1113: // stylesmenu - { - bool newmenu = ((key == 1113) ? True : False); + break; - if (! *label || (! *command && newmenu)) { - fprintf(stderr, - i18n(ScreenSet, ScreenSTYLESDIRError, - "BScreen::parseMenuFile: [stylesdir/stylesmenu]" - " error, no directory defined\n")); - continue; - } + case 995: // stylesdir + case 1113: { // stylesmenu + bool newmenu = ((key == 1113) ? True : False); - char *directory = ((newmenu) ? command : label); + if (! *label || (! *command && newmenu)) { + fprintf(stderr, + i18n(ScreenSet, ScreenSTYLESDIRError, + "BScreen::parseMenuFile: [stylesdir/stylesmenu]" + " error, no directory defined\n")); + continue; + } - string stylesdir = expandTilde(directory); + char *directory = ((newmenu) ? command : label); - struct stat statbuf; + string stylesdir = expandTilde(directory); - if (! stat(stylesdir.c_str(), &statbuf)) { - if (S_ISDIR(statbuf.st_mode)) { - Rootmenu *stylesmenu; + struct stat statbuf; - if (newmenu) - stylesmenu = new Rootmenu(this); - else - stylesmenu = menu; + if (stat(stylesdir.c_str(), &statbuf) == -1) { + fprintf(stderr, + i18n(ScreenSet, ScreenSTYLESDIRErrorNoExist, + "BScreen::parseMenuFile: [stylesdir/stylesmenu]" + " error, %s does not exist\n"), stylesdir.c_str()); + continue; + } + if (! S_ISDIR(statbuf.st_mode)) { + fprintf(stderr, + i18n(ScreenSet, ScreenSTYLESDIRErrorNotDir, + "BScreen::parseMenuFile:" + " [stylesdir/stylesmenu] error, %s is not a" + " directory\n"), stylesdir.c_str()); + continue; + } - DIR *d = opendir(stylesdir.c_str()); - struct dirent *p; - std::vector<string> ls; + Rootmenu *stylesmenu; - while((p = readdir(d))) - ls.push_back(p->d_name); + if (newmenu) + stylesmenu = new Rootmenu(this); + else + stylesmenu = menu; - closedir(d); + DIR *d = opendir(stylesdir.c_str()); + struct dirent *p; + std::vector<string> ls; - std::sort(ls.begin(), ls.end()); + while((p = readdir(d))) + ls.push_back(p->d_name); - std::vector<string>::iterator it = ls.begin(), - end = ls.end(); - for (; it != end; ++it) { - const string& fname = *it; + closedir(d); - if (fname[fname.size()-1] == '~') - continue; + std::sort(ls.begin(), ls.end()); - string style = stylesdir; - style += '/'; - style += fname; + std::vector<string>::iterator it = ls.begin(), + end = ls.end(); + for (; it != end; ++it) { + const string& fname = *it; - if (! stat(style.c_str(), &statbuf) && - S_ISREG(statbuf.st_mode)) - stylesmenu->insert(fname, BScreen::SetStyle, style); - } + if (fname[fname.size()-1] == '~') + continue; - stylesmenu->update(); + string style = stylesdir; + style += '/'; + style += fname; - if (newmenu) { - stylesmenu->setLabel(label); - menu->insert(label, stylesmenu); - rootmenuList.push_back(stylesmenu); - } + if (! stat(style.c_str(), &statbuf) && S_ISREG(statbuf.st_mode)) + stylesmenu->insert(fname, BScreen::SetStyle, style); + } - blackbox->addMenuTimestamp(stylesdir); - } else { - fprintf(stderr, - i18n(ScreenSet, ScreenSTYLESDIRErrorNotDir, - "BScreen::parseMenuFile:" - " [stylesdir/stylesmenu] error, %s is not a" - " directory\n"), stylesdir.c_str()); - } - } else { - fprintf(stderr, - i18n(ScreenSet, ScreenSTYLESDIRErrorNoExist, - "BScreen::parseMenuFile: [stylesdir/stylesmenu]" - " error, %s does not exist\n"), stylesdir.c_str()); - } - break; - } + stylesmenu->update(); - case 1090: // workspaces - { - if (! *label) { - fprintf(stderr, - i18n(ScreenSet, ScreenWORKSPACESError, - "BScreen:parseMenuFile: [workspaces] error, " - "no menu label defined\n")); - continue; - } + if (newmenu) { + stylesmenu->setLabel(label); + menu->insert(label, stylesmenu); + rootmenuList.push_back(stylesmenu); + } - menu->insert(label, workspacemenu); + blackbox->addMenuTimestamp(stylesdir); + } + break; - break; - } - } + case 1090: { // workspaces + if (! *label) { + fprintf(stderr, + i18n(ScreenSet, ScreenWORKSPACESError, + "BScreen:parseMenuFile: [workspaces] error, " + "no menu label defined\n")); + continue; } + + menu->insert(label, workspacemenu); + } + break; } }
M src/Window.ccsrc/Window.cc

@@ -107,11 +107,6 @@ 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;

@@ -167,36 +162,31 @@ */

client.rect.setRect(wattrib.x, wattrib.y, wattrib.width, wattrib.height); client.old_bw = wattrib.border_width; - windowmenu = 0; lastButtonPressTime = 0; timer = new BTimer(blackbox, this); timer->setTimeout(blackbox->getAutoRaiseDelay()); + + windowmenu = new Windowmenu(this); + + // get size, aspect, minimum/maximum size and other hints set by the + // client if (! getBlackboxHints()) { getMWMHints(); getNetWMHints(); } - // get size, aspect, minimum/maximum size and other hints set by the - // client getWMProtocols(); getWMHints(); getWMNormalHints(); -#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); - associateClientWindow(); blackbox->saveWindowSearch(frame.window, this); + + frame.plate = createChildWindow(frame.window); blackbox->saveWindowSearch(frame.plate, this); - blackbox->saveWindowSearch(client.window, this); // determine if this is a transient window getTransientInfo();

@@ -206,6 +196,7 @@ // functionality, or if we should not manage it at all

getWindowType(); // adjust the window decorations/behavior based on the window type + switch (window_type) { case Type_Desktop: case Type_Dock:

@@ -230,6 +221,8 @@ case Type_Normal:

// normal windows retain all of the possible decorations and functionality break; } + + setAllowedActions(); // further adjeust the window's decorations/behavior based on window sizes if ((client.normal_hint_flags & PMinSize) &&

@@ -239,17 +232,16 @@ client.max_height <= client.min_height) {

decorations &= ~(Decor_Maximize | Decor_Handle); functions &= ~(Func_Resize | Func_Maximize); } - upsize(); + + if (decorations & Decor_Titlebar) + createTitlebar(); + + if (decorations & Decor_Handle) + createHandle(); -#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 + // apply the size and gravity hint to the frame - setAllowedActions(); + upsize(); bool place_window = True; if (blackbox->isStartup() || isTransient() ||

@@ -259,31 +251,15 @@

if (blackbox->isStartup() || client.rect.intersects(screen->getRect())) 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(); - if (decorations & Decor_Titlebar) - createTitlebar(); - - if (decorations & Decor_Handle) - createHandle(); - #ifdef SHAPE - if (blackbox->hasShapeExtensions() && flags.shaped) { + if (blackbox->hasShapeExtensions() && flags.shaped) configureShape(); - } #endif // SHAPE - - windowmenu = new Windowmenu(this); if (blackbox_attrib.workspace >= screen->getWorkspaceCount()) screen->getCurrentWorkspace()->addWindow(this, place_window);

@@ -291,20 +267,41 @@ else

screen->getWorkspace(blackbox_attrib.workspace)-> addWindow(this, place_window); + /* + the server needs to be grabbed here to prevent client's from sending + events while we are in the process of configuring their window. + We hold the grab until after we are done moving the window around. + */ + + XGrabServer(blackbox->getXDisplay()); + + associateClientWindow(); + + blackbox->saveWindowSearch(client.window, this); + if (! place_window) { // don't need to call configure if we are letting the workspace // 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 } + positionWindows(); + + XUngrabServer(blackbox->getXDisplay()); + + // now that we know where to put the window and what it should look like + // we apply the decorations + decorate(); + + grabButtons(); + + XMapSubwindows(blackbox->getXDisplay(), frame.window); + + // this ensures the title, buttons, and other decor are properly displayed + redrawWindowFrame(); + // preserve the window's initial state on first map, and its current state // across a restart unsigned long initial_state = current_state;

@@ -316,6 +313,7 @@ if (isTransient() && client.transient_for != (BlackboxWindow *) ~0ul &&

client.transient_for->isStuck() != flags.stuck) stick(); + // the following flags are set by blackbox native apps only if (flags.shaded) { flags.shaded = False; initial_state = current_state;

@@ -336,31 +334,6 @@ }

if (flags.maximized && (functions & Func_Maximize)) remaximize(); - - /* - When the window is mapped (and also when its attributes are restored), the - current_state that was set here will be used. - It is set to Normal if the window is to be mapped or it is set to Iconic - if the window is to be iconified. - *Note* that for sticky windows, the same rules apply here, they are in - fact never set to Iconic since there is no way for us to tell if a sticky - window was iconified previously. - */ - - positionWindows(); - decorate(); - grabButtons(); - - 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 }

@@ -482,8 +455,10 @@ XChangeSaveSet(blackbox->getXDisplay(), client.window, SetModeInsert);

XSelectInput(blackbox->getXDisplay(), frame.plate, SubstructureRedirectMask); - XGrabServer(blackbox->getXDisplay()); - + /* + note we used to grab around this call to XReparentWindow however the + server is now grabbed before this method is called + */ unsigned long event_mask = PropertyChangeMask | FocusChangeMask | StructureNotifyMask; XSelectInput(blackbox->getXDisplay(), client.window,

@@ -491,11 +466,8 @@ event_mask & ~StructureNotifyMask);

XReparentWindow(blackbox->getXDisplay(), client.window, frame.plate, 0, 0); XSelectInput(blackbox->getXDisplay(), client.window, event_mask); - XUngrabServer(blackbox->getXDisplay()); - XRaiseWindow(blackbox->getXDisplay(), frame.plate); XMapSubwindows(blackbox->getXDisplay(), frame.plate); - #ifdef SHAPE if (blackbox->hasShapeExtensions()) {

@@ -883,9 +855,7 @@ }

void BlackboxWindow::ungrabButtons(void) { - if (! screen->isSloppyFocus() || screen->doClickRaise()) - blackbox->ungrabButton(Button1, 0, frame.plate); - + blackbox->ungrabButton(Button1, 0, frame.plate); blackbox->ungrabButton(Button1, ModMask, frame.window); blackbox->ungrabButton(Button2, ModMask, frame.window); blackbox->ungrabButton(Button3, ModMask, frame.window);

@@ -2627,12 +2597,6 @@ case NormalState:

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()) {

@@ -2726,12 +2690,6 @@ setAllowedActions();

} 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;

@@ -2784,12 +2742,6 @@

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; }

@@ -2849,19 +2801,11 @@

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()); }

@@ -2880,13 +2824,6 @@ screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this);

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 }

@@ -3564,7 +3501,8 @@ XSelectInput(blackbox->getXDisplay(), client.window, NoEventMask);

XSelectInput(blackbox->getXDisplay(), frame.plate, NoEventMask); // do not leave a shaded window as an icon unless it was an icon - if (flags.shaded && ! flags.iconic) setState(NormalState); + if (flags.shaded && ! flags.iconic) + setState(NormalState); restoreGravity(client.rect);