From c9b60a7b64c75bf999cb8390b328aa42e7a5f53f Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 31 Dec 2008 17:11:42 +0000 Subject: 2.5 So, editmode mesh is back! :) At the moment only TABkey works and mouse select, 1 vertex at a time. More will follow of course. Note for the devs: - G.editMesh has been removed, be careful with old code. - EditMesh now is property of Mesh itself Although it means unlimited editmodes, for migration purposes we better stick to 1 "obedit" per scene, which is in Context too - G.obedit will get removed soon, so use CTX_data_edit_object(C) Or if you can't, just scene->obedit for now - Also removed the CTX_data_edit_mesh(), this has no meaning anymore. EditMesh is not context senstitive anymore, only the edit-object for time being is. - Martin: I've already tucked some EditMesh pointer in T and removed all G.editMesh there. --- source/blender/windowmanager/WM_types.h | 2 ++ source/blender/windowmanager/intern/wm_files.c | 3 +++ source/blender/windowmanager/intern/wm_init_exit.c | 16 +++++----------- 3 files changed, 10 insertions(+), 11 deletions(-) (limited to 'source/blender/windowmanager') diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index f54fc9881ae..5b49e0dd590 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -152,6 +152,7 @@ typedef struct wmNotifier { #define ND_SEQUENCER (6<<16) #define ND_OB_ACTIVE (7<<16) #define ND_OB_SELECT (8<<16) +#define ND_OB_EDIT (9<<16) /* Object */ #define ND_TRANSFORM (16<<16) @@ -159,6 +160,7 @@ typedef struct wmNotifier { #define ND_POSE (18<<16) #define ND_BONE_ACTIVE (19<<16) #define ND_BONE_SELECT (20<<16) +#define ND_GEOM_SELECT (21<<16) /* subtype, 256 entries too */ #define NOTE_SUBTYPE 0x0000FF00 diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 00f1d1358b0..466500a7aa1 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -396,6 +396,8 @@ static void wm_window_match_init(bContext *C, ListBase *wmlist) } } + ED_editors_exit(C); + return; if(wm==NULL) return; if(G.fileflags & G_FILE_NO_UI) return; @@ -517,6 +519,7 @@ void WM_read_file(bContext *C, char *name, ReportList *reports) ListBase wmbase; /* put aside screens to match with persistant windows later */ + /* also exit screens and editors */ wm_window_match_init(C, &wmbase); retval= BKE_read_file(C, name, NULL, reports); diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index ee6c841bf5a..15001ea5333 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -83,6 +83,7 @@ #include "wm_window.h" #include "ED_screen.h" +#include "ED_util.h" #include "UI_interface.h" @@ -190,6 +191,10 @@ void WM_exit(bContext *C) } wm_operatortype_free(); + /* all non-screen and non-space stuff editors did, like editmode */ + if(C) + ED_editors_exit(C); + free_ttfont(); /* bke_font.h */ #ifdef WITH_VERSE @@ -203,17 +208,6 @@ void WM_exit(bContext *C) // if (G.background == 0) // sound_end_all_sounds(); - if(G.obedit) { - if(G.obedit->type==OB_FONT) { -// free_editText(); - } -// else if(G.obedit->type==OB_MBALL) BLI_freelistN(&editelems); -// free_editMesh(G.editMesh); - } - -// free_editLatt(); -// free_editArmature(); -// free_posebuf(); /* before free_blender so py's gc happens while library still exists */ /* needed at least for a rare sigsegv that can happen in pydrivers */ -- cgit v1.2.3