merge r6939-6945 from trunk
authorDana Jansens <danakj@orodu.net>
Sun, 27 May 2007 21:31:58 +0000 (21:31 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 27 May 2007 21:31:58 +0000 (21:31 +0000)
openbox/client.c
openbox/event.c
openbox/frame.c
openbox/menu.c
po/pl.po
tests/confignotify.c
tests/grav.c

index 6d1073fc92c36ada957ec2eaf689db635b90ca69..f00c737f0bae8178bccb4f275109f6c298429f49 100644 (file)
@@ -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)
index e03c8203cd66e62ffdc49a35ae69b8a83bd49dc8..3bfca98e6e28ca344ab1c5296de6b58d18ad1497 100644 (file)
@@ -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);
     }
 
index 9eaeff633ae22d58db307107b0e30d468f274992..1e93649d0c7624270779b9ea5ea4890b088806bc 100644 (file)
@@ -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;
     }
 }
index 66d2ac7cd9fd4b1a878278e12a64440130c6d25a..fe664d3516ac58250e530b063eec2ac2a70208b1 100644 (file)
@@ -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;
+        }
     }
 }
 
index 00d845031d6983b74a989d21923a917d1bca81d1..0d0b60facb8d4219fa2213feda0d165432b5b48a 100644 (file)
--- 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
index 4d4a7cc54cb10159c49667a0f144bf4d439ee934..d18d27e558f5f95e8e6a82593b33ff82beedab1a 100644 (file)
@@ -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);
 
index a8dcdc31669515a48868e145ab3832c4d9446cfb..5ce3cfb7ed4b08642ef4d4be8399bebb3723f51a 100644 (file)
@@ -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);