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

View File

@@ -298,7 +298,7 @@ static LinkNode *save_and_reset_all_scene_cfra(void)
Scene *sc; Scene *sc;
for (sc= G.main->scene.first; sc; sc= sc->id.next) { 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; sc->r.cfra= 1;
set_scene_bg(sc); set_scene_bg(sc);