diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-02 02:18:37 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-02 02:18:37 +0000 |
| commit | cb030c6f3a6f464cacd46d970ab28c532df84104 (patch) | |
| tree | 8714f38d5e5553551857244f8ba878d4d9bc29ef | |
| parent | 10df03b957576d8feef365490345756c5af8a624 (diff) | |
make submenus open in the same direction as the top level menu
| -rw-r--r-- | openbox/menuframe.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/openbox/menuframe.c b/openbox/menuframe.c index 06a43459..6f8ecad0 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -221,15 +221,18 @@ static void menu_frame_place_topmenu(ObMenuFrame *self, gint *x, gint *y) /* try to the right of the cursor */ menu_frame_move_on_screen(self, myx, *y, &dx, &dy); + self->direction_right = TRUE; if (dx != 0) { /* try to the left of the cursor */ myx = *x - self->area.width; menu_frame_move_on_screen(self, myx, *y, &dx, &dy); + self->direction_right = FALSE; } if (dx != 0) { /* if didnt fit on either side so just use what it says */ myx = *x; menu_frame_move_on_screen(self, myx, *y, &dx, &dy); + self->direction_right = TRUE; } *x = myx + dx; *y += dy; @@ -241,29 +244,34 @@ static void menu_frame_place_topmenu(ObMenuFrame *self, gint *x, gint *y) /* try to the bottom right of the cursor */ menu_frame_move_on_screen(self, myx, myy, &dx, &dy); + self->direction_right = TRUE; if (dx != 0 || dy != 0) { /* try to the bottom left of the cursor */ myx = *x - self->area.width; myy = *y; menu_frame_move_on_screen(self, myx, myy, &dx, &dy); + self->direction_right = FALSE; } if (dx != 0 || dy != 0) { /* try to the top right of the cursor */ myx = *x; myy = *y - self->area.height; menu_frame_move_on_screen(self, myx, myy, &dx, &dy); + self->direction_right = TRUE; } if (dx != 0 || dy != 0) { /* try to the top left of the cursor */ myx = *x - self->area.width; myy = *y - self->area.height; menu_frame_move_on_screen(self, myx, myy, &dx, &dy); + self->direction_right = FALSE; } if (dx != 0 || dy != 0) { /* if didnt fit on either side so just use what it says */ myx = *x; myy = *y; menu_frame_move_on_screen(self, myx, myy, &dx, &dy); + self->direction_right = TRUE; } *x = myx + dx; *y = myy + dy; |
