Changeset 9eb38bb
- Timestamp:
- Sep 18, 2010, 5:07:39 PM (14 years ago)
- Branches:
- master, release-1.10, release-1.7, release-1.8, release-1.9
- Children:
- d574d61
- Parents:
- 8ee712e0
- git-author:
- David Benjamin <davidben@mit.edu> (08/01/10 14:09:34)
- git-committer:
- David Benjamin <davidben@mit.edu> (09/18/10 17:07:39)
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
commands.c
r8ee712e0 r9eb38bb 2772 2772 pw = owl_global_get_popwin(&g); 2773 2773 owl_global_set_popwin(&g, NULL); 2774 owl_viewwin_cleanup(vw); 2774 /* Kind of a hack, but you can only have one active viewwin right 2775 * now anyway. */ 2776 if (vw == owl_global_get_viewwin(&g)) 2777 owl_global_set_viewwin(&g, NULL); 2778 owl_viewwin_delete(vw); 2775 2779 owl_popwin_delete(pw); 2776 2780 owl_global_pop_context(&g); -
functions.c
r03ca005 r9eb38bb 1237 1237 owl_viewwin *v; 1238 1238 1239 v=owl_global_get_viewwin(&g); 1240 1241 if (owl_global_get_popwin(&g)) { 1239 if (owl_global_get_popwin(&g) || owl_global_get_viewwin(&g)) { 1242 1240 owl_function_error("Popwin already in use."); 1243 1241 return; … … 1246 1244 owl_global_set_popwin(&g, pw); 1247 1245 owl_popwin_up(pw); 1246 1247 v = owl_viewwin_new_text(owl_popwin_get_content(pw), text); 1248 owl_global_set_viewwin(&g, v); 1249 1248 1250 owl_global_push_context(&g, OWL_CTX_POPLESS, v, "popless", NULL); 1249 owl_viewwin_init_text(v, owl_popwin_get_content(pw), text);1250 1251 } 1251 1252 … … 1255 1256 owl_viewwin *v; 1256 1257 1257 v=owl_global_get_viewwin(&g); 1258 1259 if (owl_global_get_popwin(&g)) { 1258 if (owl_global_get_popwin(&g) || owl_global_get_viewwin(&g)) { 1260 1259 owl_function_error("Popwin already in use."); 1261 1260 return; … … 1264 1263 owl_global_set_popwin(&g, pw); 1265 1264 owl_popwin_up(pw); 1265 1266 v = owl_viewwin_new_fmtext(owl_popwin_get_content(pw), fm); 1267 owl_global_set_viewwin(&g, v); 1268 1266 1269 owl_global_push_context(&g, OWL_CTX_POPLESS, v, "popless", NULL); 1267 owl_viewwin_init_fmtext(v, owl_popwin_get_content(pw), fm);1268 1270 } 1269 1271 -
global.c
r03ca005 r9eb38bb 49 49 50 50 g->pw = NULL; 51 g->vw = NULL; 51 52 g->tw = NULL; 52 53 … … 492 493 493 494 owl_viewwin *owl_global_get_viewwin(owl_global *g) { 494 return(&(g->vw)); 495 return g->vw; 496 } 497 498 void owl_global_set_viewwin(owl_global *g, owl_viewwin *vw) { 499 g->vw = vw; 495 500 } 496 501 -
owl.h
r03ca005 r9eb38bb 596 596 void *buffercbdata; 597 597 owl_editwin *tw; 598 owl_viewwin vw;598 owl_viewwin *vw; 599 599 void *perl; 600 600 int debug; -
popexec.c
r03ca005 r9eb38bb 17 17 pid_t pid; 18 18 19 if (owl_global_get_popwin(&g) ) {19 if (owl_global_get_popwin(&g) || owl_global_get_viewwin(&g)) { 20 20 owl_function_error("Popwin already in use."); 21 21 return NULL; … … 28 28 pe->refcount=0; 29 29 30 pe->vwin=v=owl_global_get_viewwin(&g);31 30 pw = owl_popwin_new(); 32 31 owl_global_set_popwin(&g, pw); 33 32 owl_popwin_up(pw); 33 pe->vwin = v = owl_viewwin_new_text(owl_popwin_get_content(pw), ""); 34 owl_global_set_viewwin(&g, v); 35 owl_viewwin_set_onclose_hook(v, owl_popexec_viewwin_onclose, pe); 34 36 35 37 owl_global_push_context(&g, OWL_CTX_POPLESS, v, "popless", NULL); 36 owl_viewwin_init_text(v, owl_popwin_get_content(pw), "");37 owl_viewwin_set_onclose_hook(v, owl_popexec_viewwin_onclose, pe);38 38 pe->refcount++; 39 39 -
viewwin.c
r61c1f19 r9eb38bb 7 7 static void owl_viewwin_set_window(owl_viewwin *v, owl_window *w); 8 8 9 /* initialize the viewwin e. 'win' is an already initialzed curses10 * wi ndow that will be used byviewwin9 /* Create a viewwin. 'win' is an already initialized owl_window that 10 * will be used by the viewwin 11 11 */ 12 void owl_viewwin_init_text(owl_viewwin *v,owl_window *win, const char *text)12 owl_viewwin *owl_viewwin_new_text(owl_window *win, const char *text) 13 13 { 14 owl_viewwin *v = owl_malloc(sizeof(owl_viewwin)); 15 memset(v, 0, sizeof(*v)); 14 16 owl_fmtext_init_null(&(v->fmtext)); 15 17 if (text) { … … 25 27 26 28 owl_viewwin_set_window(v, win); 29 return v; 27 30 } 28 31 … … 42 45 } 43 46 44 /* initialize the viewwin e. 'win' is an already initialzed curses45 * wi ndow that will be used byviewwin47 /* Create a viewwin. 'win' is an already initialized owl_window that 48 * will be used by the viewwin 46 49 */ 47 void owl_viewwin_init_fmtext(owl_viewwin *v,owl_window *win, const owl_fmtext *fmtext)50 owl_viewwin *owl_viewwin_new_fmtext(owl_window *win, const owl_fmtext *fmtext) 48 51 { 49 52 char *text; 53 owl_viewwin *v = owl_malloc(sizeof(owl_viewwin)); 54 memset(v, 0, sizeof(*v)); 50 55 51 56 owl_fmtext_copy(&(v->fmtext), fmtext); … … 60 65 61 66 owl_viewwin_set_window(v, win); 67 return v; 62 68 } 63 69 64 70 static void owl_viewwin_set_window(owl_viewwin *v, owl_window *w) 65 71 { 66 if (v->window) {67 g_signal_handler_disconnect(v->window, v->sig_redraw_id);68 g_object_unref(v->window);69 }70 72 v->window = w; 71 73 if (w) { … … 181 183 } 182 184 183 void owl_viewwin_ cleanup(owl_viewwin *v)185 void owl_viewwin_delete(owl_viewwin *v) 184 186 { 185 owl_viewwin_set_window(v, NULL);186 187 if (v->onclose_hook) { 187 188 v->onclose_hook(v, v->onclose_hook_data); … … 189 190 v->onclose_hook_data = NULL; 190 191 } 192 if (v->window) { 193 g_signal_handler_disconnect(v->window, v->sig_redraw_id); 194 g_object_unref(v->window); 195 v->window = NULL; 196 } 191 197 owl_fmtext_cleanup(&(v->fmtext)); 198 owl_free(v); 192 199 }
Note: See TracChangeset
for help on using the changeset viewer.