From bea5921ff5cda52fafb3ab0179e76934a06a98f9 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 27 May 2007 21:31:58 +0000 Subject: [PATCH] merge r6939-6945 from trunk --- openbox/client.c | 7 +++---- openbox/event.c | 2 +- openbox/frame.c | 20 ++++++++++++-------- openbox/menu.c | 16 ++++++++++++---- po/pl.po | 2 +- tests/confignotify.c | 6 +++++- tests/grav.c | 6 +++--- 7 files changed, 37 insertions(+), 22 deletions(-) diff --git a/openbox/client.c b/openbox/client.c index 6d1073fc..f00c737f 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -427,8 +427,7 @@ void client_manage(Window window) 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)); } @@ -1110,8 +1109,8 @@ static void client_get_area(ObClient *self) 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) diff --git a/openbox/event.c b/openbox/event.c index e03c8203..3bfca98e 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1566,7 +1566,7 @@ static gboolean event_handle_menu_keyboard(XEvent *ev) 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); } diff --git a/openbox/frame.c b/openbox/frame.c index 9eaeff63..1e93649d 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -1345,13 +1345,14 @@ void frame_client_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h) 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; } @@ -1374,13 +1375,14 @@ void frame_client_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h) 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; } } @@ -1404,12 +1406,13 @@ void frame_frame_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h) 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; } @@ -1430,12 +1433,13 @@ void frame_frame_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h) 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; } } diff --git a/openbox/menu.c b/openbox/menu.c index 66d2ac7c..fe664d35 100644 --- a/openbox/menu.c +++ b/openbox/menu.c @@ -396,11 +396,19 @@ void menu_show(gchar *name, gint x, gint y, gint button, ObClient *client) 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; + } } } diff --git a/po/pl.po b/po/pl.po index 00d84503..0d0b60fa 100644 --- a/po/pl.po +++ b/po/pl.po @@ -254,7 +254,7 @@ msgstr " --debug Wypisuje informacje dotyczące debugowania\n" #: 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 diff --git a/tests/confignotify.c b/tests/confignotify.c index 4d4a7cc5..d18d27e5 100644 --- a/tests/confignotify.c +++ b/tests/confignotify.c @@ -35,7 +35,7 @@ int main () { } 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)); @@ -46,6 +46,10 @@ int main () { XMapWindow(display, win); XFlush(display); + sleep(1); + XResizeWindow(display, win, w+5, h+5); + XMoveWindow(display, win, x, y); + while (1) { XNextEvent(display, &report); diff --git a/tests/grav.c b/tests/grav.c index a8dcdc31..5ce3cfb7 100644 --- a/tests/grav.c +++ b/tests/grav.c @@ -24,7 +24,7 @@ int main () { 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); @@ -35,7 +35,7 @@ int main () { } 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(); @@ -49,7 +49,7 @@ int main () { 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); -- 2.34.1