it is up to the placement routines to avoid
the xinerama divides) */
transient ||
- (((self->positioned & PPosition) &&
- !(self->positioned & USPosition)) &&
+ (!(self->positioned & USPosition) &&
client_normal(self) &&
!self->session));
}
POINT_SET(self->root_pos, wattrib.x, wattrib.y);
self->border_width = wattrib.border_width;
- ob_debug("client area: %d %d %d %d\n", wattrib.x, wattrib.y,
- wattrib.width, wattrib.height);
+ ob_debug("client area: %d %d %d %d bw %d\n", wattrib.x, wattrib.y,
+ wattrib.width, wattrib.height, wattrib.border_width);
}
static void client_get_desktop(ObClient *self)
Control-Enter runs it without closing the menu. */
if (frame->child)
menu_frame_select_next(frame->child);
- else
+ else if (frame->selected)
menu_entry_frame_execute(frame->selected, state, ev->xkey.time);
}
case SouthEastGravity:
case EastGravity:
/* the right side of the client will be the right side of the frame */
- *x -= self->size.right + self->size.left;
+ *x -= self->size.right + self->size.left -
+ self->client->border_width * 2;
break;
case ForgetGravity:
case StaticGravity:
/* the client's position won't move */
- *x -= self->size.left;
+ *x -= self->size.left - self->client->border_width;
break;
}
case SouthEastGravity:
case SouthGravity:
/* the bottom of the client will be the bottom of the frame */
- *y -= self->size.bottom + self->size.top;
+ *y -= self->size.bottom + self->size.top -
+ self->client->border_width * 2;
break;
case ForgetGravity:
case StaticGravity:
/* the client's position won't move */
- *y -= self->size.top;
+ *y -= self->size.top - self->client->border_width;
break;
}
}
case EastGravity:
case SouthEastGravity:
/* the right side of the client will be the right side of the frame */
- *x += self->size.right + self->size.left;
+ *x += self->size.right + self->size.left -
+ self->client->border_width * 2;
break;
case StaticGravity:
case ForgetGravity:
/* the client's position won't move */
- *x += self->size.left;
+ *x += self->size.left - self->client->border_width;
break;
}
case SouthGravity:
case SouthEastGravity:
/* the bottom of the client will be the bottom of the frame */
- *y += self->size.bottom + self->size.top;
+ *y += self->size.bottom + self->size.top -
+ self->client->border_width * 2;
break;
case StaticGravity:
case ForgetGravity:
/* the client's position won't move */
- *y += self->size.top;
+ *y += self->size.top - self->client->border_width;
break;
}
}
frame = menu_frame_new(self, 0, client);
if (!menu_frame_show_topmenu(frame, x, y, button))
menu_frame_free(frame);
- else if (frame->entries) {
+ else {
/* select the first entry if it's not a submenu */
- ObMenuEntryFrame *e = frame->entries->data;
- if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL)
- menu_frame_select(frame, e, FALSE);
+ GList *it = frame->entries;
+ while (it) {
+ ObMenuEntryFrame *e = it->data;
+ if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL) {
+ menu_frame_select(frame, e, FALSE);
+ break;
+ } else if (e->entry->type == OB_MENU_ENTRY_TYPE_SEPARATOR)
+ it = g_list_next(it);
+ else
+ break;
+ }
}
}
#: openbox/openbox.c:487
msgid " --debug-focus Display debugging output for focus handling\n"
msgstr ""
-" --debug Wypisuje informacje dotyczące debugowania, związane z "
+" --debug-focus Wypisuje informacje dotyczące debugowania, związane z "
"obsługą aktywacji\n"
#: openbox/openbox.c:488
}
win = XCreateWindow(display, RootWindow(display, 0),
- x, y, w, h, 10, CopyFromParent, CopyFromParent,
+ x, y, w, h, 0, CopyFromParent, CopyFromParent,
CopyFromParent, 0, NULL);
XSetWindowBackground(display,win,WhitePixel(display,0));
XMapWindow(display, win);
XFlush(display);
+ sleep(1);
+ XResizeWindow(display, win, w+5, h+5);
+ XMoveWindow(display, win, x, y);
+
while (1) {
XNextEvent(display, &report);
Display *display;
Window win;
XEvent report;
- int x=10,y=10,h=100,w=400;
+ int x=10,y=10,h=100,w=400,b=10;
XSizeHints *hints;
display = XOpenDisplay(NULL);
}
win = XCreateWindow(display, RootWindow(display, 0),
- x, y, w, h, 10, CopyFromParent, CopyFromParent,
+ x, y, w, h, b, CopyFromParent, CopyFromParent,
CopyFromParent, 0, NULL);
hints = XAllocSizeHints();
XMapWindow(display, win);
XFlush(display);
- XMoveResizeWindow(display, win, 1172-600, 668-150, 600, 150);
+ XMoveResizeWindow(display, win, 1172-600-b*2, 668-150-b*2, 600, 150);
XFlush(display);
sleep(1);
XResizeWindow(display, win, 900, 275);