void ED_screen_set_subwinactive(struct wmWindow *win, struct wmEvent *event);
void ED_screen_exit(struct bContext *C, struct wmWindow *window, struct bScreen *screen);
void ED_screen_animation_timer(struct bContext *C, int enable);
+void ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type);
+void ED_screen_full_prevspace(struct bContext *C);
+
void ED_operatortypes_screen(void);
void ED_keymap_screen(struct wmWindowManager *wm);
}
+void ED_screen_full_newspace(bContext *C, ScrArea *sa, int type)
+{
+ if(sa->full==0)
+ ed_screen_fullarea(C);
+
+ ED_area_newspace(C, CTX_wm_area(C), type);
+}
+
+void ED_screen_full_prevspace(bContext *C)
+{
+ ScrArea *sa= CTX_wm_area(C);
+
+ ED_area_prevspace(C);
+
+ if(sa->full)
+ ed_screen_fullarea(C);
+}
+
void ED_screen_animation_timer(bContext *C, int enable)
{
bScreen *screen= CTX_wm_screen(C);
static int wm_mainfile_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- wmWindow *newwin, *win;
- bScreen *newsc, *sc;
- ScrArea *sa, *oldsa;
SpaceFile *sfile;
-
- rcti rect;
-
- win= CTX_wm_window(C);
- sc= CTX_wm_screen(C);
- oldsa= CTX_wm_area(C);
-
-#if 0 /* XXX experimental code for opening filebrowser in new window */
- /* poll() checks area context, but we don't accept full-area windows */
- if(sc->full != SCREENNORMAL)
- return OPERATOR_CANCELLED;
-
- /* adds window to WM */
- rect.xmin = 0;
- rect.ymin = 0;
- rect.xmax = win->sizex;
- rect.ymax = win->sizey;
- BLI_translate_rcti(&rect, win->posx, win->posy);
- newwin= WM_window_open(C, &rect);
-
- /* allocs new screen and adds to newly created window, using window size */
- newsc= screen_add(newwin, CTX_data_scene(C), sc->id.name+2);
- newwin->screen= newsc;
-
- /* create filebrowser */
- CTX_wm_window_set(C, newwin);
- CTX_wm_screen_set(C, newsc);
- sa= (ScrArea*)newsc->areabase.first;
- CTX_wm_area_set(C, sa);
- ED_area_newspace(C, sa, SPACE_FILE);
-#else
- ED_area_newspace(C, oldsa, SPACE_FILE);
-#endif
+
+ ED_screen_full_newspace(C, CTX_wm_area(C), SPACE_FILE);
/* settings for filebrowser */
sfile= (SpaceFile*)CTX_wm_space_data(C);