* F11 now nicely pops/pushes a window again

* works (for OSX) only with the commit I did in Ghost 1 minute ago!
* needs to be checked for all other OS's.
This commit is contained in:
2003-07-09 16:02:39 +00:00
parent 0a5145c118
commit 5aa8ac36a1
3 changed files with 53 additions and 24 deletions

View File

@@ -3926,7 +3926,7 @@ void uiFreeBlock(uiBlock *block)
{
uiBut *but;
if(block->flag & UI_BLOCK_BUSY) printf("var1: %x\n", block);
if(block->flag & UI_BLOCK_BUSY) printf("attempt to free busy buttonblock: %p\n", block);
while( (but= block->buttons.first) ) {
BLI_remlink(&block->buttons, but);

View File

@@ -332,38 +332,49 @@ static void renderwin_handler(Window *win, void *user_data, short evt, short val
if (evt==RESHAPE) {
renderwin_reshape(rw);
} else if (evt==REDRAW) {
}
else if (evt==REDRAW) {
renderwin_draw(rw, 0);
#ifndef __APPLE__
} else if (evt==WINCLOSE) {
}
else if (evt==WINCLOSE) {
BIF_close_render_display();
#endif
} else if (evt==INPUTCHANGE) {
}
else if (evt==INPUTCHANGE) {
rw->active= val;
if (!val && (rw->flags&RW_FLAGS_OLDZOOM)) {
rw->flags&= ~RW_FLAGS_OLDZOOM;
renderwin_reset_view(rw);
}
} else if (ELEM(evt, MOUSEX, MOUSEY)) {
}
else if (ELEM(evt, MOUSEX, MOUSEY)) {
rw->lmouse[evt==MOUSEY]= val;
renderwin_mouse_moved(rw);
} else if (ELEM3(evt, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE)) {
}
else if (ELEM3(evt, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE)) {
int which= (evt==LEFTMOUSE)?0:(evt==MIDDLEMOUSE)?1:2;
rw->mbut[which]= val;
renderwin_mousebut_changed(rw);
} else if (val) {
}
else if (val) {
if (evt==ESCKEY) {
if (rw->flags&RW_FLAGS_OLDZOOM) {
rw->flags&= ~RW_FLAGS_OLDZOOM;
renderwin_reset_view(rw);
} else {
}
else {
rw->flags|= RW_FLAGS_ESCAPE;
mainwindow_raise();
mainwindow_make_active();
rw->active= 0;
}
} else if (evt==JKEY) {
}
else if (evt==JKEY) {
BIF_swap_render_rects();
} else if (evt==ZKEY) {
}
else if (evt==ZKEY) {
if (rw->flags&RW_FLAGS_OLDZOOM) {
rw->flags&= ~RW_FLAGS_OLDZOOM;
renderwin_reset_view(rw);
@@ -372,29 +383,36 @@ static void renderwin_handler(Window *win, void *user_data, short evt, short val
rw->flags|= RW_FLAGS_OLDZOOM;
renderwin_mouse_moved(rw);
}
} else if (evt==PADPLUSKEY) {
}
else if (evt==PADPLUSKEY) {
if (rw->zoom<15.9) {
rw->zoom*= 2.0;
renderwin_queue_redraw(rw);
}
} else if (evt==PADMINUS) {
}
else if (evt==PADMINUS) {
if (rw->zoom>0.26) {
rw->zoom*= 0.5;
renderwin_queue_redraw(rw);
}
} else if (evt==PADENTER || evt==HOMEKEY) {
}
else if (evt==PADENTER || evt==HOMEKEY) {
if (rw->flags&RW_FLAGS_OLDZOOM) {
rw->flags&= ~RW_FLAGS_OLDZOOM;
}
renderwin_reset_view(rw);
} else if (evt==F3KEY) {
}
else if (evt==F3KEY) {
mainwindow_raise();
mainwindow_make_active();
rw->active= 0;
areawinset(find_biggest_area()->win);
BIF_save_rendered_image();
} else if (evt==F11KEY) {
}
else if (evt==F11KEY) {
BIF_toggle_render_display();
} else if (evt==F12KEY) {
}
else if (evt==F12KEY) {
BIF_do_render(0);
}
}
@@ -491,6 +509,7 @@ static void renderwin_init_display_cb(void)
renderwin_reset_view(render_win);
render_win->flags&= ~RW_FLAGS_ESCAPE;
render_win->active= 1;
}
}
}
@@ -746,7 +765,8 @@ static void do_render(View3D *ogl_render_view3d, int anim, int force_dispwin)
RE_set_renderdisplay_callback(renderwin_progress_display_cb);
renderwin_init_display_cb();
} else {
}
else {
#ifndef __APPLE__
BIF_close_render_display();
#endif
@@ -909,16 +929,25 @@ void BIF_toggle_render_display(void)
{
ScrArea *sa= find_dispimage_v3d();
if (render_win && render_win->active) {
if (R.displaymode == R_DISPLAYVIEW) {
BIF_close_render_display();
if(R.rectot==NULL); // do nothing
else if (render_win) {
if(render_win->active) {
mainwindow_raise();
mainwindow_make_active();
render_win->active= 0;
}
mainwindow_raise();
} else if (sa) {
else {
window_raise(render_win->win);
window_make_active(render_win->win);
render_win->active= 1;
}
}
else if (sa) {
View3D *vd= sa->spacedata.first;
vd->flag &= ~V3D_DISPIMAGE;
scrarea_queue_winredraw(sa);
} else {
}
else {
if (R.displaymode == R_DISPLAYWIN) {
renderwin_init_display_cb();
} else {

View File

@@ -298,7 +298,7 @@ static LinkNode *save_and_reset_all_scene_cfra(void)
Scene *sc;
for (sc= G.main->scene.first; sc; sc= sc->id.next) {
BLI_linklist_prepend(&storelist, (void*) sc->r.cfra);
BLI_linklist_prepend(&storelist, (void*) (long) sc->r.cfra);
sc->r.cfra= 1;
set_scene_bg(sc);