diff -p -up matchbox-window-manager-1.2.drakx/src/dialog_client.c.modal matchbox-window-manager-1.2.drakx/src/dialog_client.c --- matchbox-window-manager-1.2.drakx/src/dialog_client.c.modal 2008-07-21 18:06:08.000000000 +0200 +++ matchbox-window-manager-1.2.drakx/src/dialog_client.c 2008-07-21 18:23:24.000000000 +0200 @@ -85,6 +85,18 @@ dialog_client_get_offsets(Client *c, int return; } + if (c->flags & CLIENT_IS_MODAL_FLAG + && theme_has_frame_type_defined(c->wm->mbtheme, FRAME_MODAL)) + { + *s = theme_frame_defined_height_get(c->wm->mbtheme, + FRAME_MODAL_SOUTH); + *e = theme_frame_defined_width_get(c->wm->mbtheme, + FRAME_MODAL_EAST ); + *w = theme_frame_defined_width_get(c->wm->mbtheme, + FRAME_MODAL_WEST ); + return; + } + *s = theme_frame_defined_height_get(c->wm->mbtheme, FRAME_DIALOG_SOUTH); *e = theme_frame_defined_width_get(c->wm->mbtheme, @@ -203,6 +215,12 @@ dialog_client_title_height(Client *c) return theme_frame_defined_height_get(c->wm->mbtheme, FRAME_DIALOG_NORTH); } + if (c->flags & CLIENT_IS_MODAL_FLAG + && theme_has_frame_type_defined(c->wm->mbtheme, FRAME_MODAL)) + { + return theme_frame_defined_height_get(c->wm->mbtheme, FRAME_MODAL); + } + return theme_frame_defined_height_get(c->wm->mbtheme, FRAME_DIALOG); } @@ -834,6 +852,13 @@ dialog_client_redraw(Client *c, Bool use && theme_has_frame_type_defined(c->wm->mbtheme, FRAME_DIALOG_NORTH)) frame_ref_top = FRAME_DIALOG_NORTH; + if (c->flags & CLIENT_IS_MODAL_FLAG && theme_has_frame_type_defined(c->wm->mbtheme, FRAME_MODAL)) { + frame_ref_top = FRAME_MODAL; + frame_ref_east = FRAME_MODAL_EAST; + frame_ref_west = FRAME_MODAL_WEST; + frame_ref_south = FRAME_MODAL_SOUTH; + } + /* 'message dialogs have there own decorations */ if (c->flags & CLIENT_HAS_URGENCY_FLAG && theme_has_message_decor(w->mbtheme)) diff -p -up matchbox-window-manager-1.2.drakx/src/mbtheme.c.modal matchbox-window-manager-1.2.drakx/src/mbtheme.c --- matchbox-window-manager-1.2.drakx/src/mbtheme.c.modal 2008-07-02 17:53:27.000000000 +0200 +++ matchbox-window-manager-1.2.drakx/src/mbtheme.c 2008-07-21 18:13:03.000000000 +0200 @@ -93,6 +93,11 @@ static struct frame_lookup_t { "message-east", FRAME_MSG_EAST }, { "message-west", FRAME_MSG_WEST }, { "message-south", FRAME_MSG_SOUTH }, + { "modal", FRAME_MODAL }, + { "modal-north", FRAME_MODAL_NORTH }, + { "modal-east", FRAME_MODAL_EAST }, + { "modal-west", FRAME_MODAL_WEST }, + { "modal-south", FRAME_MODAL_SOUTH }, }; #define frame_lookup_cnt (sizeof(frame_lookup)/sizeof(struct frame_lookup_t)) @@ -628,21 +633,24 @@ theme_frame_paint( MBTheme *theme, case FRAME_DIALOG_SOUTH: case FRAME_DIALOG_NT_SOUTH: case FRAME_MSG_SOUTH: + case FRAME_MODAL_SOUTH: decor_idx = SOUTH; break; case FRAME_MAIN_EAST: case FRAME_DIALOG_EAST: case FRAME_DIALOG_NT_EAST: case FRAME_MSG_EAST: + case FRAME_MODAL_EAST: decor_idx = EAST; break; case FRAME_MAIN_WEST: case FRAME_DIALOG_WEST: case FRAME_DIALOG_NT_WEST: case FRAME_MSG_WEST: + case FRAME_MODAL_WEST: decor_idx = WEST; break; - /* FRAME_MAIN, FRAME_DIALOG, FRAME_MSG, FRAME_DIALOG_NORTH: */ + /* FRAME_MAIN, FRAME_DIALOG, FRAME_MSG, FRAME_DIALOG_NORTH, FRAME_MODAL : */ default: decor_idx = NORTH; break; @@ -777,7 +785,8 @@ theme_frame_paint( MBTheme *theme, if (c->backing_masks[MSK_NORTH] != None && ( frame_type == FRAME_MAIN || frame_type == FRAME_DIALOG || frame_type == FRAME_MSG || frame_type == FRAME_DIALOG_NORTH - || frame_type == FRAME_DIALOG_NT_NORTH) + || frame_type == FRAME_DIALOG_NT_NORTH + || frame_type == FRAME_MODAL || frame_type == FRAME_MODAL_NORTH) ) mb_pixbuf_img_render_to_mask(theme->wm->pb, img, c->backing_masks[MSK_NORTH], @@ -786,7 +795,8 @@ theme_frame_paint( MBTheme *theme, if (c->backing_masks[MSK_SOUTH] != None && ( frame_type == FRAME_MAIN_SOUTH || frame_type == FRAME_DIALOG_SOUTH || frame_type == FRAME_MSG_SOUTH - || frame_type == FRAME_DIALOG_NT_SOUTH) + || frame_type == FRAME_DIALOG_NT_SOUTH + || frame_type == FRAME_MODAL_SOUTH) ) mb_pixbuf_img_render_to_mask(theme->wm->pb, img, c->backing_masks[MSK_SOUTH], @@ -794,7 +804,8 @@ theme_frame_paint( MBTheme *theme, if (c->backing_masks[MSK_EAST] != None && ( frame_type == FRAME_MAIN_EAST || frame_type == FRAME_DIALOG_EAST - || frame_type == FRAME_MSG_EAST || frame_type == FRAME_DIALOG_NT_EAST) + || frame_type == FRAME_MSG_EAST || frame_type == FRAME_DIALOG_NT_EAST + || frame_type == FRAME_MODAL_EAST) ) mb_pixbuf_img_render_to_mask(theme->wm->pb, img, c->backing_masks[MSK_EAST], @@ -802,7 +813,8 @@ theme_frame_paint( MBTheme *theme, if (c->backing_masks[MSK_WEST] != None && ( frame_type == FRAME_MAIN_WEST || frame_type == FRAME_DIALOG_WEST - || frame_type == FRAME_MSG_WEST || frame_type == FRAME_DIALOG_NT_WEST ) + || frame_type == FRAME_MSG_WEST || frame_type == FRAME_DIALOG_NT_WEST + || frame_type == FRAME_MODAL_WEST ) ) mb_pixbuf_img_render_to_mask(theme->wm->pb, img, c->backing_masks[MSK_WEST], diff -p -up matchbox-window-manager-1.2.drakx/src/structs.h.modal matchbox-window-manager-1.2.drakx/src/structs.h --- matchbox-window-manager-1.2.drakx/src/structs.h.modal 2008-07-21 17:33:33.000000000 +0200 +++ matchbox-window-manager-1.2.drakx/src/structs.h 2008-07-21 18:13:13.000000000 +0200 @@ -762,6 +762,11 @@ enum { FRAME_MSG_EAST, FRAME_MSG_WEST, FRAME_MSG_SOUTH, + FRAME_MODAL, + FRAME_MODAL_NORTH, + FRAME_MODAL_EAST, + FRAME_MODAL_WEST, + FRAME_MODAL_SOUTH, N_FRAME_TYPES };