Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > media > main-testing-src > by-pkgid > f07de551f5d2f276b4fc722f48b804fc > files > 5

matchbox-window-manager-1.2-10mdv2009.0.src.rpm

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
 };