Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-08-18 19:20:35 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-08-18 19:20:35 +0400
commit22b30da565de53a0a1d34079d72b08fdb54ec8e3 (patch)
tree3961db6cd06907f41ca64a8ddff92baa36d318aa /source/blender/windowmanager
parent44e4c5f8316b34835c7900dc649bf8a1570afc0a (diff)
parente982e9b04f13be046d194643ed28aaedd6181f3b (diff)
Merged changes in the trunk up to revision 49986.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/CMakeLists.txt1
-rw-r--r--source/blender/windowmanager/SConscript2
-rw-r--r--source/blender/windowmanager/WM_api.h87
-rw-r--r--source/blender/windowmanager/WM_types.h48
-rw-r--r--source/blender/windowmanager/intern/wm_apple.c4
-rw-r--r--source/blender/windowmanager/intern/wm_cursors.c6
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c6
-rw-r--r--source/blender/windowmanager/intern/wm_files.c14
-rw-r--r--source/blender/windowmanager/intern/wm_init_exit.c26
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c351
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c42
-rw-r--r--source/blender/windowmanager/intern/wm_subwindow.c2
-rw-r--r--source/blender/windowmanager/intern/wm_window.c6
-rw-r--r--source/blender/windowmanager/wm_event_types.h18
14 files changed, 334 insertions, 279 deletions
diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt
index c7546196af8..dae0e9193c2 100644
--- a/source/blender/windowmanager/CMakeLists.txt
+++ b/source/blender/windowmanager/CMakeLists.txt
@@ -37,6 +37,7 @@ set(INC
../makesdna
../makesrna
../nodes
+ ../compositor
../render/extern/include
../../gameengine/BlenderRoutines
../../../intern/elbeem/extern
diff --git a/source/blender/windowmanager/SConscript b/source/blender/windowmanager/SConscript
index 5819ae2545a..de340ec4c9a 100644
--- a/source/blender/windowmanager/SConscript
+++ b/source/blender/windowmanager/SConscript
@@ -10,7 +10,7 @@ sources = env.Glob('intern/*.c')
incs = '. ../editors/include ../python ../makesdna ../blenlib ../blenkernel'
incs += ' ../nodes ../imbuf ../blenloader ../render/extern/include'
incs += ' ../radiosity/extern/include'
-incs += ' ../makesrna ../gpu ../blenfont ../bmesh'
+incs += ' ../makesrna ../gpu ../blenfont ../bmesh ../compositor'
incs += ' ../freestyle'
incs += ' #/intern/guardedalloc #/intern/memutil #/intern/ghost'
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index ee7b44fb1e9..588be336afa 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -65,9 +65,9 @@ struct ImBuf;
typedef struct wmJob wmJob;
/* general API */
-void WM_setprefsize (int stax, int stay, int sizx, int sizy);
-void WM_setinitialstate_fullscreen(void);
-void WM_setinitialstate_normal(void);
+void WM_init_state_size_set (int stax, int stay, int sizx, int sizy);
+void WM_init_state_fullscreen_set(void);
+void WM_init_state_normal_set(void);
void WM_init (struct bContext *C, int argc, const char **argv);
void WM_exit_ext (struct bContext *C, const short do_python);
@@ -82,7 +82,7 @@ void WM_check (struct bContext *C);
struct wmWindow *WM_window_open (struct bContext *C, struct rcti *rect);
- /* defines for 'type' WM_window_open_temp */
+ /* defines for 'type' WM_window_open_temp */
#define WM_WINDOW_RENDER 0
#define WM_WINDOW_USERPREFS 1
#define WM_WINDOW_FILESEL 2
@@ -92,21 +92,21 @@ void WM_window_open_temp (struct bContext *C, struct rcti *position, int type);
/* files */
-int WM_read_homefile_exec(struct bContext *C, struct wmOperator *op);
-int WM_read_homefile (struct bContext *C, struct ReportList *reports, short from_memory);
-int WM_write_homefile (struct bContext *C, struct wmOperator *op);
-void WM_read_file (struct bContext *C, const char *filepath, struct ReportList *reports);
-int WM_write_file (struct bContext *C, const char *target, int fileflags, struct ReportList *reports, int copy);
-void WM_autosave_init (struct wmWindowManager *wm);
+int WM_homefile_read_exec(struct bContext *C, struct wmOperator *op);
+int WM_homefile_read(struct bContext *C, struct ReportList *reports, short from_memory);
+int WM_homefile_write_exec(struct bContext *C, struct wmOperator *op);
+void WM_file_read(struct bContext *C, const char *filepath, struct ReportList *reports);
+int WM_file_write(struct bContext *C, const char *target, int fileflags, struct ReportList *reports, int copy);
+void WM_autosave_init(struct wmWindowManager *wm);
/* mouse cursors */
void WM_cursor_set (struct wmWindow *win, int curs);
void WM_cursor_modal (struct wmWindow *win, int curs);
void WM_cursor_restore (struct wmWindow *win);
void WM_cursor_wait (int val);
-void WM_cursor_grab(struct wmWindow *win, int wrap, int hide, int *bounds);
-void WM_cursor_ungrab(struct wmWindow *win);
-void WM_timecursor (struct wmWindow *win, int nr);
+void WM_cursor_grab_enable(struct wmWindow *win, int wrap, int hide, int *bounds);
+void WM_cursor_grab_disable(struct wmWindow *win);
+void WM_cursor_time (struct wmWindow *win, int nr);
void *WM_paint_cursor_activate(struct wmWindowManager *wm,
int (*poll)(struct bContext *C),
@@ -182,7 +182,7 @@ void WM_operator_free (struct wmOperator *op);
void WM_operator_stack_clear(struct wmWindowManager *wm);
struct wmOperatorType *WM_operatortype_find(const char *idnamem, int quiet);
-struct GHashIterator *WM_operatortype_iter(void);
+struct GHashIterator *WM_operatortype_iter(void);
void WM_operatortype_append (void (*opfunc)(struct wmOperatorType*));
void WM_operatortype_append_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata);
void WM_operatortype_append_macro_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata);
@@ -243,11 +243,11 @@ void WM_operator_bl_idname(char *to, const char *from);
void WM_operator_py_idname(char *to, const char *from);
/* *************** menu types ******************** */
-void WM_menutype_init(void);
-struct MenuType *WM_menutype_find(const char *idname, int quiet);
-int WM_menutype_add(struct MenuType* mt);
-void WM_menutype_freelink(struct MenuType* mt);
-void WM_menutype_free(void);
+void WM_menutype_init(void);
+struct MenuType *WM_menutype_find(const char *idname, int quiet);
+int WM_menutype_add(struct MenuType* mt);
+void WM_menutype_freelink(struct MenuType* mt);
+void WM_menutype_free(void);
/* default operator callbacks for border/circle/lasso */
int WM_border_select_invoke (struct bContext *C, struct wmOperator *op, struct wmEvent *event);
@@ -297,24 +297,45 @@ void wmOrtho (float x1, float x2, float y1, float y2, float n, float f);
void wmOrtho2 (float x1, float x2, float y1, float y2);
/* utilities */
-void WM_set_framebuffer_index_color(int index);
+void WM_framebuffer_index_set(int index);
int WM_framebuffer_to_index(unsigned int col);
/* threaded Jobs Manager */
-#define WM_JOB_PRIORITY 1
-#define WM_JOB_EXCL_RENDER 2
-#define WM_JOB_PROGRESS 4
-#define WM_JOB_SUSPEND 8
-
-struct wmJob *WM_jobs_get(struct wmWindowManager *wm, struct wmWindow *win, void *owner, const char *name, int flag);
-
-int WM_jobs_test(struct wmWindowManager *wm, void *owner);
+enum {
+ WM_JOB_PRIORITY = (1 << 0),
+ WM_JOB_EXCL_RENDER = (1 << 1),
+ WM_JOB_PROGRESS = (1 << 2),
+ WM_JOB_SUSPEND = (1 << 3)
+};
+
+/* identifying jobs by owner alone is unreliable, this isnt saved, order can change */
+enum {
+ WM_JOB_TYPE_ANY = -1,
+ WM_JOB_TYPE_COMPOSITE,
+ WM_JOB_TYPE_RENDER,
+ WM_JOB_TYPE_RENDER_PREVIEW, /* UI preview */
+ WM_JOB_TYPE_SCREENCAST,
+ WM_JOB_TYPE_OBJECT_SIM_OCEAN,
+ WM_JOB_TYPE_OBJECT_SIM_FLUID,
+ WM_JOB_TYPE_OBJECT_BAKE_TEXTURE,
+ WM_JOB_TYPE_FILESEL_THUMBNAIL,
+ WM_JOB_TYPE_CLIP_BUILD_PROXY,
+ WM_JOB_TYPE_CLIP_TRACK_MARKERS,
+ WM_JOB_TYPE_CLIP_SOLVE_CAMERA,
+ WM_JOB_TYPE_SEQ_BUILD_PROXY,
+ /* add as needed, screencast, seq proxy build
+ * if having hard coded values is a problem */
+};
+
+struct wmJob *WM_jobs_get(struct wmWindowManager *wm, struct wmWindow *win, void *owner, const char *name, int flag, int job_type);
+
+int WM_jobs_test(struct wmWindowManager *wm, void *owner, int job_type);
float WM_jobs_progress(struct wmWindowManager *wm, void *owner);
-char *WM_jobs_name(struct wmWindowManager *wm, void *owner);
+char *WM_jobs_name(struct wmWindowManager *wm, void *owner);
int WM_jobs_is_running(struct wmJob *);
-void * WM_jobs_get_customdata(struct wmJob *);
-void WM_jobs_customdata(struct wmJob *, void *customdata, void (*free)(void *));
+void *WM_jobs_customdata_get(struct wmJob *);
+void WM_jobs_customdata_set(struct wmJob *, void *customdata, void (*free)(void *));
void WM_jobs_timer(struct wmJob *, double timestep, unsigned int note, unsigned int endnote);
void WM_jobs_callbacks(struct wmJob *,
void (*startjob)(void *, short *, short *, float *),
@@ -330,8 +351,8 @@ void WM_jobs_stop_all(struct wmWindowManager *wm);
int WM_jobs_has_running(struct wmWindowManager *wm);
/* clipboard */
-char *WM_clipboard_text_get(int selection);
-void WM_clipboard_text_set(char *buf, int selection);
+char *WM_clipboard_text_get(int selection);
+void WM_clipboard_text_set(char *buf, int selection);
/* progress */
void WM_progress_set(struct wmWindow *win, float progress);
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index bcba7a76ec8..1f0a0d87cf4 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -28,10 +28,14 @@
* \ingroup wm
*/
-/*
+#ifndef __WM_TYPES_H__
+#define __WM_TYPES_H__
+
+/**
* Overview of WM structs
* ======================
*
+ * <pre>
* > wmWindowManager (window manager stores a list of windows)
* > > wmWindow (window has an active screen)
* > > > bScreen (link to ScrAreas via 'areabase')
@@ -39,11 +43,12 @@
* > > > > > SpaceLink (base struct for space data for all different space types)
* > > > > ScrArea (stores multiple regions via 'regionbase')
* > > > > > ARegion
- *
+ * </pre>
*
* Window Layout
* =============
*
+ * <pre>
* wmWindow -> bScreen
* +----------------------------------------------------------+
* |+-----------------------------------------+-------------+ |
@@ -63,11 +68,12 @@
* ||+-------++----------+-------------------+| | |
* |+-----------------------------------------+-------------+ |
* +----------------------------------------------------------+
- *
+ * </pre>
*
* Space Data
* ==========
*
+ * <pre>
* ScrArea's store a list of space data (SpaceLinks), each of unique type.
* The first one is the displayed in the UI, others are added as needed.
*
@@ -85,19 +91,17 @@
* +-----------------------------+ |
* | |
* +------------------------------+
+ * </pre>
*
* A common way to get the space from the ScrArea:
- *
+ * <pre>
* if (sa->spacetype == SPACE_VIEW3D) {
* View3D *v3d = sa->spacedata.first;
* ...
* }
- *
+ * </pre>
*/
-#ifndef __WM_TYPES_H__
-#define __WM_TYPES_H__
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -455,28 +459,28 @@ typedef struct wmTabletData {
typedef enum { /* motion progress, for modal handlers */
P_NOT_STARTED,
- P_STARTING, // <--
- P_IN_PROGRESS, // <-- only these are sent for NDOF motion
- P_FINISHING, // <--
+ P_STARTING, /* <-- */
+ P_IN_PROGRESS, /* <-- only these are sent for NDOF motion*/
+ P_FINISHING, /* <-- */
P_FINISHED
- } wmProgress;
+} wmProgress;
typedef struct wmNDOFMotionData {
/* awfully similar to GHOST_TEventNDOFMotionData... */
- // Each component normally ranges from -1 to +1, but can exceed that.
- // These use blender standard view coordinates, with positive rotations being CCW about the axis.
+ /* Each component normally ranges from -1 to +1, but can exceed that.
+ * These use blender standard view coordinates, with positive rotations being CCW about the axis. */
union {
- float tvec[3]; // translation
+ float tvec[3]; /* translation */
struct { float tx, ty, tz; };
- };
+ };
union {
- float rvec[3]; // rotation:
+ float rvec[3]; /* rotation: */
struct { float rx, ry, rz; };
- };
- // axis = (rx,ry,rz).normalized
- // amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg]
- float dt; // time since previous NDOF Motion event
- wmProgress progress; // is this the first event, the last, or one of many in between?
+ };
+ /* axis = (rx,ry,rz).normalized */
+ /* amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] */
+ float dt; /* time since previous NDOF Motion event */
+ wmProgress progress; /* is this the first event, the last, or one of many in between? */
} wmNDOFMotionData;
typedef struct wmTimer {
diff --git a/source/blender/windowmanager/intern/wm_apple.c b/source/blender/windowmanager/intern/wm_apple.c
index 71d074e340f..a7bd43986dd 100644
--- a/source/blender/windowmanager/intern/wm_apple.c
+++ b/source/blender/windowmanager/intern/wm_apple.c
@@ -124,14 +124,14 @@ void wm_set_apple_prefsize(int scr_x, int scr_y)
short top, left, bottom, right;
getMacAvailableBounds(&top, &left, &bottom, &right);
- WM_setprefsize(left + 10, scr_y - bottom + 10, right - left - 20, bottom - 64);
+ WM_init_state_size_set(left + 10, scr_y - bottom + 10, right - left - 20, bottom - 64);
G.windowstate = 0;
}
else {
/* 40 + 684 + (headers) 22 + 22 = 768, the powerbook screen height */
- WM_setprefsize(120, 40, 850, 684);
+ WM_init_state_size_set(120, 40, 850, 684);
G.windowstate = 0;
}
}
diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c
index bb985802e23..6fc6a57ade1 100644
--- a/source/blender/windowmanager/intern/wm_cursors.c
+++ b/source/blender/windowmanager/intern/wm_cursors.c
@@ -179,7 +179,7 @@ void WM_cursor_wait(int val)
}
}
-void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds)
+void WM_cursor_grab_enable(wmWindow *win, int wrap, int hide, int *bounds)
{
/* Only grab cursor when not running debug.
* It helps not to get a stuck WM when hitting a breakpoint
@@ -202,7 +202,7 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds)
}
}
-void WM_cursor_ungrab(wmWindow *win)
+void WM_cursor_grab_disable(wmWindow *win)
{
if ((G.debug & G_DEBUG) == 0) {
if (win && win->ghostwin) {
@@ -239,7 +239,7 @@ int wm_cursor_arrow_move(wmWindow *win, wmEvent *event)
/* afer this you can call restore too */
-void WM_timecursor(wmWindow *win, int nr)
+void WM_cursor_time(wmWindow *win, int nr)
{
/* 10 8x8 digits */
static char number_bitmaps[10][8] = {
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index e3ad425d0f8..10a383df5c9 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -938,7 +938,7 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event,
}
}
- WM_cursor_grab(CTX_wm_window(C), wrap, FALSE, bounds);
+ WM_cursor_grab_enable(CTX_wm_window(C), wrap, FALSE, bounds);
}
/* cancel UI handlers, typically tooltips that can hang around
@@ -1202,7 +1202,7 @@ void WM_event_remove_handlers(bContext *C, ListBase *handlers)
CTX_wm_region_set(C, region);
}
- WM_cursor_ungrab(CTX_wm_window(C));
+ WM_cursor_grab_disable(CTX_wm_window(C));
WM_operator_free(handler->op);
}
else if (handler->ui_remove) {
@@ -1432,7 +1432,7 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand
/* remove modal handler, operator itself should have been canceled and freed */
if (retval & (OPERATOR_CANCELLED | OPERATOR_FINISHED)) {
- WM_cursor_ungrab(CTX_wm_window(C));
+ WM_cursor_grab_disable(CTX_wm_window(C));
BLI_remlink(handlers, handler);
wm_event_free_handler(handler);
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 36e2cbae296..979fb9425fc 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -358,7 +358,7 @@ static int wm_read_exotic(Scene *UNUSED(scene), const char *name)
return retval;
}
-void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
+void WM_file_read(bContext *C, const char *filepath, ReportList *reports)
{
int retval;
@@ -488,7 +488,7 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
/* called on startup, (context entirely filled with NULLs) */
/* or called for 'New File' */
/* op can be NULL */
-int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory)
+int WM_homefile_read(bContext *C, ReportList *UNUSED(reports), short from_memory)
{
ListBase wmbase;
char tstr[FILE_MAX];
@@ -583,10 +583,10 @@ int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory
return TRUE;
}
-int WM_read_homefile_exec(bContext *C, wmOperator *op)
+int WM_homefile_read_exec(bContext *C, wmOperator *op)
{
int from_memory = strcmp(op->type->idname, "WM_OT_read_factory_settings") == 0;
- return WM_read_homefile(C, op->reports, from_memory) ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
+ return WM_homefile_read(C, op->reports, from_memory) ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
}
void WM_read_history(void)
@@ -761,7 +761,7 @@ int write_crash_blend(void)
}
}
-int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *reports, int copy)
+int WM_file_write(bContext *C, const char *target, int fileflags, ReportList *reports, int copy)
{
Library *li;
int len;
@@ -860,7 +860,7 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re
}
/* operator entry */
-int WM_write_homefile(bContext *C, wmOperator *op)
+int WM_homefile_write_exec(bContext *C, wmOperator *op)
{
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
@@ -998,6 +998,6 @@ void wm_autosave_read(bContext *C, ReportList *reports)
char filename[FILE_MAX];
wm_autosave_location(filename);
- WM_read_file(C, filename, reports);
+ WM_file_read(C, filename, reports);
}
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index 8ea644d6e5c..af24ea81fe6 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -113,6 +113,7 @@
#include "BKE_depsgraph.h"
#include "BKE_sound.h"
+#include "COM_compositor.h"
static void wm_init_reports(bContext *C)
{
@@ -152,7 +153,7 @@ void WM_init(bContext *C, int argc, const char **argv)
BLI_init_srgb_conversion();
/* get the default database, plus a wm */
- WM_read_homefile(C, NULL, G.factory_startup);
+ WM_homefile_read(C, NULL, G.factory_startup);
BLF_lang_set(NULL);
@@ -161,7 +162,7 @@ void WM_init(bContext *C, int argc, const char **argv)
* initializing space types and other internal data.
*
* However cant redo this at the moment. Solution is to load python
- * before WM_read_homefile() or make py-drivers check if python is running.
+ * before WM_homefile_read() or make py-drivers check if python is running.
* Will try fix when the crash can be repeated. - campbell. */
#ifdef WITH_PYTHON
@@ -211,7 +212,6 @@ void WM_init(bContext *C, int argc, const char **argv)
#ifdef WITH_COMPOSITOR
if (1) {
extern void *COM_linker_hack;
- extern void *COM_execute;
COM_linker_hack = COM_execute;
}
#endif
@@ -367,19 +367,19 @@ static void wait_for_console_key(void)
/* note, doesnt run exit() call WM_exit() for that */
void WM_exit_ext(bContext *C, const short do_python)
{
- wmWindow *win;
+ wmWindowManager *wm = C ? CTX_wm_manager(C) : NULL;
sound_exit();
-
/* first wrap up running stuff, we assume only the active WM is running */
/* modal handlers are on window level freed, others too? */
/* note; same code copied in wm_files.c */
- if (C && CTX_wm_manager(C)) {
-
- WM_jobs_stop_all(CTX_wm_manager(C));
-
- for (win = CTX_wm_manager(C)->windows.first; win; win = win->next) {
+ if (C && wm) {
+ wmWindow *win;
+
+ WM_jobs_stop_all(wm);
+
+ for (win = wm->windows.first; win; win = win->next) {
CTX_wm_window_set(C, win); /* needed by operator close callbacks */
WM_event_remove_handlers(C, &win->handlers);
@@ -408,12 +408,16 @@ void WM_exit_ext(bContext *C, const short do_python)
ED_preview_free_dbase(); /* frees a Main dbase, before free_blender! */
- if (C && CTX_wm_manager(C))
+ if (C && wm)
wm_free_reports(C); /* before free_blender! - since the ListBases get freed there */
BKE_sequencer_free_clipboard(); /* sequencer.c */
BKE_tracking_clipboard_free();
+#ifdef WITH_COMPOSITOR
+ COM_deinitialize();
+#endif
+
free_blender(); /* blender.c, does entire library and spacetypes */
// free_matcopybuf();
free_anim_copybuf();
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index bd7b4694471..e3d6b0f73e1 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -114,7 +114,7 @@ struct wmJob {
/* internal */
void *owner;
int flag;
- short suspended, running, ready, do_update, stop;
+ short suspended, running, ready, do_update, stop, job_type;
float progress;
/* for display in header, identification */
@@ -136,13 +136,13 @@ struct wmJob {
*/
static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const char *name)
{
- wmJob *steve, *found = NULL;
+ wmJob *wm_job, *found = NULL;
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->owner == owner) {
- found = steve;
- if (name && strcmp(steve->name, name) == 0)
- return steve;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next)
+ if (wm_job->owner == owner) {
+ found = wm_job;
+ if (name && strcmp(wm_job->name, name) == 0)
+ return wm_job;
}
return found;
@@ -153,112 +153,118 @@ static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const char *name)
/* returns current or adds new job, but doesnt run it */
/* every owner only gets a single job, adding a new one will stop running stop and
* when stopped it starts the new one */
-wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag)
+wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type)
{
- wmJob *steve = wm_job_find(wm, owner, name);
+ wmJob *wm_job = wm_job_find(wm, owner, name);
- if (steve == NULL) {
- steve = MEM_callocN(sizeof(wmJob), "new job");
+ if (wm_job == NULL) {
+ wm_job = MEM_callocN(sizeof(wmJob), "new job");
- BLI_addtail(&wm->jobs, steve);
- steve->win = win;
- steve->owner = owner;
- steve->flag = flag;
- BLI_strncpy(steve->name, name, sizeof(steve->name));
+ BLI_addtail(&wm->jobs, wm_job);
+ wm_job->win = win;
+ wm_job->owner = owner;
+ wm_job->flag = flag;
+ wm_job->job_type = job_type;
+ BLI_strncpy(wm_job->name, name, sizeof(wm_job->name));
}
- return steve;
+ return wm_job;
}
/* returns true if job runs, for UI (progress) indicators */
-int WM_jobs_test(wmWindowManager *wm, void *owner)
+int WM_jobs_test(wmWindowManager *wm, void *owner, int job_type)
{
- wmJob *steve;
+ wmJob *wm_job;
/* job can be running or about to run (suspended) */
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->owner == owner)
- if (steve->running || steve->suspended)
- return 1;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->owner == owner) {
+ if (job_type == WM_JOB_TYPE_ANY || (wm_job->job_type == job_type)) {
+ if (wm_job->running || wm_job->suspended) {
+ return TRUE;
+ }
+ }
+ }
+ }
- return 0;
+ return FALSE;
}
float WM_jobs_progress(wmWindowManager *wm, void *owner)
{
- wmJob *steve = wm_job_find(wm, owner, NULL);
+ wmJob *wm_job = wm_job_find(wm, owner, NULL);
- if (steve && steve->flag & WM_JOB_PROGRESS)
- return steve->progress;
+ if (wm_job && wm_job->flag & WM_JOB_PROGRESS)
+ return wm_job->progress;
return 0.0;
}
char *WM_jobs_name(wmWindowManager *wm, void *owner)
{
- wmJob *steve = wm_job_find(wm, owner, NULL);
+ wmJob *wm_job = wm_job_find(wm, owner, NULL);
- if (steve)
- return steve->name;
+ if (wm_job)
+ return wm_job->name;
return NULL;
}
-int WM_jobs_is_running(wmJob *steve)
+int WM_jobs_is_running(wmJob *wm_job)
{
- return steve->running;
+ return wm_job->running;
}
-void *WM_jobs_get_customdata(wmJob *steve)
+void *WM_jobs_customdata_get(wmJob *wm_job)
{
- if (!steve->customdata) {
- return steve->run_customdata;
+ if (!wm_job->customdata) {
+ return wm_job->run_customdata;
}
else {
- return steve->customdata;
+ return wm_job->customdata;
}
}
-void WM_jobs_customdata(wmJob *steve, void *customdata, void (*free)(void *))
+void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void (*free)(void *))
{
/* pending job? just free */
- if (steve->customdata)
- steve->free(steve->customdata);
+ if (wm_job->customdata)
+ wm_job->free(wm_job->customdata);
- steve->customdata = customdata;
- steve->free = free;
+ wm_job->customdata = customdata;
+ wm_job->free = free;
- if (steve->running) {
+ if (wm_job->running) {
/* signal job to end */
- steve->stop = 1;
+ wm_job->stop = TRUE;
}
}
-void WM_jobs_timer(wmJob *steve, double timestep, unsigned int note, unsigned int endnote)
+void WM_jobs_timer(wmJob *wm_job, double timestep, unsigned int note, unsigned int endnote)
{
- steve->timestep = timestep;
- steve->note = note;
- steve->endnote = endnote;
+ wm_job->timestep = timestep;
+ wm_job->note = note;
+ wm_job->endnote = endnote;
}
-void WM_jobs_callbacks(wmJob *steve,
+void WM_jobs_callbacks(wmJob *wm_job,
void (*startjob)(void *, short *, short *, float *),
void (*initjob)(void *),
void (*update)(void *),
void (*endjob)(void *))
{
- steve->startjob = startjob;
- steve->initjob = initjob;
- steve->update = update;
- steve->endjob = endjob;
+ wm_job->startjob = startjob;
+ wm_job->initjob = initjob;
+ wm_job->update = update;
+ wm_job->endjob = endjob;
}
static void *do_job_thread(void *job_v)
{
- wmJob *steve = job_v;
+ wmJob *wm_job = job_v;
- steve->startjob(steve->run_customdata, &steve->stop, &steve->do_update, &steve->progress);
- steve->ready = 1;
+ wm_job->startjob(wm_job->run_customdata, &wm_job->stop, &wm_job->do_update, &wm_job->progress);
+ wm_job->ready = TRUE;
return NULL;
}
@@ -266,36 +272,38 @@ static void *do_job_thread(void *job_v)
/* don't allow same startjob to be executed twice */
static void wm_jobs_test_suspend_stop(wmWindowManager *wm, wmJob *test)
{
- wmJob *steve;
- int suspend = 0;
+ wmJob *wm_job;
+ int suspend = FALSE;
/* job added with suspend flag, we wait 1 timer step before activating it */
if (test->flag & WM_JOB_SUSPEND) {
- suspend = 1;
+ suspend = TRUE;
test->flag &= ~WM_JOB_SUSPEND;
}
else {
/* check other jobs */
- for (steve = wm->jobs.first; steve; steve = steve->next) {
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
/* obvious case, no test needed */
- if (steve == test || !steve->running) continue;
+ if (wm_job == test || !wm_job->running) {
+ continue;
+ }
/* if new job is not render, then check for same startjob */
if (0 == (test->flag & WM_JOB_EXCL_RENDER))
- if (steve->startjob != test->startjob)
+ if (wm_job->startjob != test->startjob)
continue;
/* if new job is render, any render job should be stopped */
if (test->flag & WM_JOB_EXCL_RENDER)
- if (0 == (steve->flag & WM_JOB_EXCL_RENDER))
+ if (0 == (wm_job->flag & WM_JOB_EXCL_RENDER))
continue;
- suspend = 1;
+ suspend = TRUE;
/* if this job has higher priority, stop others */
if (test->flag & WM_JOB_PRIORITY) {
- steve->stop = 1;
- // printf("job stopped: %s\n", steve->name);
+ wm_job->stop = TRUE;
+ // printf("job stopped: %s\n", wm_job->name);
}
}
}
@@ -307,110 +315,113 @@ static void wm_jobs_test_suspend_stop(wmWindowManager *wm, wmJob *test)
/* if job running, the same owner gave it a new job */
/* if different owner starts existing startjob, it suspends itself */
-void WM_jobs_start(wmWindowManager *wm, wmJob *steve)
+void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
{
- if (steve->running) {
+ if (wm_job->running) {
/* signal job to end and restart */
- steve->stop = 1;
- // printf("job started a running job, ending... %s\n", steve->name);
+ wm_job->stop = TRUE;
+ // printf("job started a running job, ending... %s\n", wm_job->name);
}
else {
- if (steve->customdata && steve->startjob) {
+ if (wm_job->customdata && wm_job->startjob) {
- wm_jobs_test_suspend_stop(wm, steve);
+ wm_jobs_test_suspend_stop(wm, wm_job);
- if (steve->suspended == 0) {
+ if (wm_job->suspended == FALSE) {
/* copy to ensure proper free in end */
- steve->run_customdata = steve->customdata;
- steve->run_free = steve->free;
- steve->free = NULL;
- steve->customdata = NULL;
- steve->running = 1;
+ wm_job->run_customdata = wm_job->customdata;
+ wm_job->run_free = wm_job->free;
+ wm_job->free = NULL;
+ wm_job->customdata = NULL;
+ wm_job->running = TRUE;
- if (steve->initjob)
- steve->initjob(steve->run_customdata);
+ if (wm_job->initjob)
+ wm_job->initjob(wm_job->run_customdata);
- steve->stop = 0;
- steve->ready = 0;
- steve->progress = 0.0;
+ wm_job->stop = FALSE;
+ wm_job->ready = FALSE;
+ wm_job->progress = 0.0;
- // printf("job started: %s\n", steve->name);
+ // printf("job started: %s\n", wm_job->name);
- BLI_init_threads(&steve->threads, do_job_thread, 1);
- BLI_insert_thread(&steve->threads, steve);
+ BLI_init_threads(&wm_job->threads, do_job_thread, 1);
+ BLI_insert_thread(&wm_job->threads, wm_job);
}
/* restarted job has timer already */
- if (steve->wt == NULL)
- steve->wt = WM_event_add_timer(wm, steve->win, TIMERJOBS, steve->timestep);
+ if (wm_job->wt == NULL)
+ wm_job->wt = WM_event_add_timer(wm, wm_job->win, TIMERJOBS, wm_job->timestep);
if (G.debug & G_DEBUG_JOBS)
- steve->start_time = PIL_check_seconds_timer();
+ wm_job->start_time = PIL_check_seconds_timer();
}
else printf("job fails, not initialized\n");
}
}
/* stop job, free data completely */
-static void wm_jobs_kill_job(wmWindowManager *wm, wmJob *steve)
+static void wm_jobs_kill_job(wmWindowManager *wm, wmJob *wm_job)
{
- if (steve->running) {
+ if (wm_job->running) {
/* signal job to end */
- steve->stop = 1;
- BLI_end_threads(&steve->threads);
+ wm_job->stop = TRUE;
+ BLI_end_threads(&wm_job->threads);
- if (steve->endjob)
- steve->endjob(steve->run_customdata);
+ if (wm_job->endjob)
+ wm_job->endjob(wm_job->run_customdata);
}
- if (steve->wt)
- WM_event_remove_timer(wm, steve->win, steve->wt);
- if (steve->customdata)
- steve->free(steve->customdata);
- if (steve->run_customdata)
- steve->run_free(steve->run_customdata);
+ if (wm_job->wt)
+ WM_event_remove_timer(wm, wm_job->win, wm_job->wt);
+ if (wm_job->customdata)
+ wm_job->free(wm_job->customdata);
+ if (wm_job->run_customdata)
+ wm_job->run_free(wm_job->run_customdata);
- /* remove steve */
- BLI_remlink(&wm->jobs, steve);
- MEM_freeN(steve);
+ /* remove wm_job */
+ BLI_remlink(&wm->jobs, wm_job);
+ MEM_freeN(wm_job);
}
void WM_jobs_stop_all(wmWindowManager *wm)
{
- wmJob *steve;
+ wmJob *wm_job;
- while ((steve = wm->jobs.first))
- wm_jobs_kill_job(wm, steve);
+ while ((wm_job = wm->jobs.first))
+ wm_jobs_kill_job(wm, wm_job);
}
/* signal job(s) from this owner or callback to stop, timer is required to get handled */
void WM_jobs_stop(wmWindowManager *wm, void *owner, void *startjob)
{
- wmJob *steve;
+ wmJob *wm_job;
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->owner == owner || steve->startjob == startjob)
- if (steve->running)
- steve->stop = 1;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->owner == owner || wm_job->startjob == startjob) {
+ if (wm_job->running) {
+ wm_job->stop = TRUE;
+ }
+ }
+ }
}
/* actually terminate thread and job timer */
void WM_jobs_kill(wmWindowManager *wm, void *owner, void (*startjob)(void *, short int *, short int *, float *))
{
- wmJob *steve;
+ wmJob *wm_job;
- steve = wm->jobs.first;
- while (steve) {
- if (steve->owner == owner || steve->startjob == startjob) {
- wmJob *bill = steve;
- steve = steve->next;
+ wm_job = wm->jobs.first;
+ while (wm_job) {
+ if (wm_job->owner == owner || wm_job->startjob == startjob) {
+ wmJob *bill = wm_job;
+ wm_job = wm_job->next;
wm_jobs_kill_job(wm, bill);
}
else {
- steve = steve->next;
+ wm_job = wm_job->next;
}
}
}
@@ -419,11 +430,11 @@ void WM_jobs_kill(wmWindowManager *wm, void *owner, void (*startjob)(void *, sho
/* kill job entirely, also removes timer itself */
void wm_jobs_timer_ended(wmWindowManager *wm, wmTimer *wt)
{
- wmJob *steve;
+ wmJob *wm_job;
- for (steve = wm->jobs.first; steve; steve = steve->next) {
- if (steve->wt == wt) {
- wm_jobs_kill_job(wm, steve);
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->wt == wt) {
+ wm_jobs_kill_job(wm, wm_job);
return;
}
}
@@ -432,85 +443,85 @@ void wm_jobs_timer_ended(wmWindowManager *wm, wmTimer *wt)
/* hardcoded to event TIMERJOBS */
void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt)
{
- wmJob *steve = wm->jobs.first, *stevenext;
+ wmJob *wm_job, *wm_jobnext;
float total_progress = 0.f;
float jobs_progress = 0;
- for (; steve; steve = stevenext) {
- stevenext = steve->next;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_jobnext) {
+ wm_jobnext = wm_job->next;
- if (steve->wt == wt) {
+ if (wm_job->wt == wt) {
/* running threads */
- if (steve->threads.first) {
+ if (wm_job->threads.first) {
/* always call note and update when ready */
- if (steve->do_update || steve->ready) {
- if (steve->update)
- steve->update(steve->run_customdata);
- if (steve->note)
- WM_event_add_notifier(C, steve->note, NULL);
+ if (wm_job->do_update || wm_job->ready) {
+ if (wm_job->update)
+ wm_job->update(wm_job->run_customdata);
+ if (wm_job->note)
+ WM_event_add_notifier(C, wm_job->note, NULL);
- if (steve->flag & WM_JOB_PROGRESS)
+ if (wm_job->flag & WM_JOB_PROGRESS)
WM_event_add_notifier(C, NC_WM | ND_JOB, NULL);
- steve->do_update = FALSE;
+ wm_job->do_update = FALSE;
}
- if (steve->ready) {
- if (steve->endjob)
- steve->endjob(steve->run_customdata);
+ if (wm_job->ready) {
+ if (wm_job->endjob)
+ wm_job->endjob(wm_job->run_customdata);
/* free own data */
- steve->run_free(steve->run_customdata);
- steve->run_customdata = NULL;
- steve->run_free = NULL;
+ wm_job->run_free(wm_job->run_customdata);
+ wm_job->run_customdata = NULL;
+ wm_job->run_free = NULL;
- // if (steve->stop) printf("job ready but stopped %s\n", steve->name);
- // else printf("job finished %s\n", steve->name);
+ // if (wm_job->stop) printf("job ready but stopped %s\n", wm_job->name);
+ // else printf("job finished %s\n", wm_job->name);
if (G.debug & G_DEBUG_JOBS) {
- printf("Job '%s' finished in %f seconds\n", steve->name,
- PIL_check_seconds_timer() - steve->start_time);
+ printf("Job '%s' finished in %f seconds\n", wm_job->name,
+ PIL_check_seconds_timer() - wm_job->start_time);
}
- steve->running = 0;
- BLI_end_threads(&steve->threads);
+ wm_job->running = FALSE;
+ BLI_end_threads(&wm_job->threads);
- if (steve->endnote)
- WM_event_add_notifier(C, steve->endnote, NULL);
+ if (wm_job->endnote)
+ WM_event_add_notifier(C, wm_job->endnote, NULL);
WM_event_add_notifier(C, NC_WM | ND_JOB, NULL);
- /* new job added for steve? */
- if (steve->customdata) {
- // printf("job restarted with new data %s\n", steve->name);
- WM_jobs_start(wm, steve);
+ /* new job added for wm_job? */
+ if (wm_job->customdata) {
+ // printf("job restarted with new data %s\n", wm_job->name);
+ WM_jobs_start(wm, wm_job);
}
else {
- WM_event_remove_timer(wm, steve->win, steve->wt);
- steve->wt = NULL;
+ WM_event_remove_timer(wm, wm_job->win, wm_job->wt);
+ wm_job->wt = NULL;
- /* remove steve */
- BLI_remlink(&wm->jobs, steve);
- MEM_freeN(steve);
+ /* remove wm_job */
+ BLI_remlink(&wm->jobs, wm_job);
+ MEM_freeN(wm_job);
}
}
- else if (steve->flag & WM_JOB_PROGRESS) {
+ else if (wm_job->flag & WM_JOB_PROGRESS) {
/* accumulate global progress for running jobs */
jobs_progress++;
- total_progress += steve->progress;
+ total_progress += wm_job->progress;
}
}
- else if (steve->suspended) {
- WM_jobs_start(wm, steve);
+ else if (wm_job->suspended) {
+ WM_jobs_start(wm, wm_job);
}
}
- else if (steve->threads.first && !steve->ready) {
- if (steve->flag & WM_JOB_PROGRESS) {
+ else if (wm_job->threads.first && !wm_job->ready) {
+ if (wm_job->flag & WM_JOB_PROGRESS) {
/* accumulate global progress for running jobs */
jobs_progress++;
- total_progress += steve->progress;
+ total_progress += wm_job->progress;
}
}
}
@@ -530,11 +541,13 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt)
int WM_jobs_has_running(wmWindowManager *wm)
{
- wmJob *steve;
+ wmJob *wm_job;
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->running)
- return 1;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->running) {
+ return TRUE;
+ }
+ }
- return 0;
+ return FALSE;
}
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 52436b6564c..67cd202591d 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -326,7 +326,7 @@ static int wm_macro_modal(bContext *C, wmOperator *op, wmEvent *event)
}
}
- WM_cursor_grab(CTX_wm_window(C), wrap, FALSE, bounds);
+ WM_cursor_grab_enable(CTX_wm_window(C), wrap, FALSE, bounds);
}
}
}
@@ -965,7 +965,7 @@ int WM_operator_check_ui_enabled(const bContext *C, const char *idname)
wmWindowManager *wm = CTX_wm_manager(C);
Scene *scene = CTX_data_scene(C);
- return !(ED_undo_valid(C, idname) == 0 || WM_jobs_test(wm, scene));
+ return !(ED_undo_valid(C, idname) == 0 || WM_jobs_test(wm, scene, WM_JOB_TYPE_ANY));
}
wmOperator *WM_operator_last_redo(const bContext *C)
@@ -1575,7 +1575,7 @@ static void WM_OT_save_homefile(wmOperatorType *ot)
ot->description = "Make the current file the default .blend file";
ot->invoke = WM_operator_confirm;
- ot->exec = WM_write_homefile;
+ ot->exec = WM_homefile_write_exec;
ot->poll = WM_operator_winactive;
}
@@ -1586,7 +1586,7 @@ static void WM_OT_read_homefile(wmOperatorType *ot)
ot->description = "Open the default file (doesn't save the current file)";
ot->invoke = WM_operator_confirm;
- ot->exec = WM_read_homefile_exec;
+ ot->exec = WM_homefile_read_exec;
/* ommit poll to run in background mode */
}
@@ -1597,7 +1597,7 @@ static void WM_OT_read_factory_settings(wmOperatorType *ot)
ot->description = "Load default file and user preferences";
ot->invoke = WM_operator_confirm;
- ot->exec = WM_read_homefile_exec;
+ ot->exec = WM_homefile_read_exec;
/* ommit poll to run in background mode */
}
@@ -1664,11 +1664,11 @@ static int wm_open_mainfile_exec(bContext *C, wmOperator *op)
else
G.f &= ~G_SCRIPT_AUTOEXEC;
- /* XXX wm in context is not set correctly after WM_read_file -> crash */
+ /* XXX wm in context is not set correctly after WM_file_read -> crash */
/* do it before for now, but is this correct with multiple windows? */
WM_event_add_notifier(C, NC_WINDOW, NULL);
- WM_read_file(C, path, op->reports);
+ WM_file_read(C, path, op->reports);
return OPERATOR_FINISHED;
}
@@ -1866,6 +1866,8 @@ static int wm_link_append_exec(bContext *C, wmOperator *op)
static void WM_OT_link_append(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
ot->name = "Link/Append from Library";
ot->idname = "WM_OT_link_append";
ot->description = "Link or Append from a Library .blend file";
@@ -1881,11 +1883,17 @@ static void WM_OT_link_append(wmOperatorType *ot)
WM_FILESEL_FILEPATH | WM_FILESEL_DIRECTORY | WM_FILESEL_FILENAME | WM_FILESEL_RELPATH | WM_FILESEL_FILES,
FILE_DEFAULTDISPLAY);
- RNA_def_boolean(ot->srna, "link", 1, "Link", "Link the objects or datablocks rather than appending");
- RNA_def_boolean(ot->srna, "autoselect", 1, "Select", "Select the linked objects");
- RNA_def_boolean(ot->srna, "active_layer", 1, "Active Layer", "Put the linked objects on the active layer");
- RNA_def_boolean(ot->srna, "instance_groups", 1, "Instance Groups", "Create instances for each group as a DupliGroup");
-}
+ /* better not save _any_ settings for this operator */
+ /* properties */
+ prop = RNA_def_boolean(ot->srna, "link", 1, "Link", "Link the objects or datablocks rather than appending");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "autoselect", 1, "Select", "Select the linked objects");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "active_layer", 1, "Active Layer", "Put the linked objects on the active layer");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "instance_groups", 1, "Instance Groups", "Create instances for each group as a DupliGroup");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+}
/* *************** recover last session **************** */
@@ -1895,13 +1903,13 @@ static int wm_recover_last_session_exec(bContext *C, wmOperator *op)
G.fileflags |= G_FILE_RECOVER;
- /* XXX wm in context is not set correctly after WM_read_file -> crash */
+ /* XXX wm in context is not set correctly after WM_file_read -> crash */
/* do it before for now, but is this correct with multiple windows? */
WM_event_add_notifier(C, NC_WINDOW, NULL);
/* load file */
BLI_make_file_string("/", filename, BLI_temporary_dir(), "quit.blend");
- WM_read_file(C, filename, op->reports);
+ WM_file_read(C, filename, op->reports);
G.fileflags &= ~G_FILE_RECOVER;
return OPERATOR_FINISHED;
@@ -1927,12 +1935,12 @@ static int wm_recover_auto_save_exec(bContext *C, wmOperator *op)
G.fileflags |= G_FILE_RECOVER;
- /* XXX wm in context is not set correctly after WM_read_file -> crash */
+ /* XXX wm in context is not set correctly after WM_file_read -> crash */
/* do it before for now, but is this correct with multiple windows? */
WM_event_add_notifier(C, NC_WINDOW, NULL);
/* load file */
- WM_read_file(C, path, op->reports);
+ WM_file_read(C, path, op->reports);
G.fileflags &= ~G_FILE_RECOVER;
@@ -2047,7 +2055,7 @@ static int wm_save_as_mainfile_exec(bContext *C, wmOperator *op)
}
#endif
- if (WM_write_file(C, path, fileflags, op->reports, copy) != 0)
+ if (WM_file_write(C, path, fileflags, op->reports, copy) != 0)
return OPERATOR_CANCELLED;
WM_event_add_notifier(C, NC_WM | ND_FILESAVE, NULL);
diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c
index 529910d220e..c9fb2644cfa 100644
--- a/source/blender/windowmanager/intern/wm_subwindow.c
+++ b/source/blender/windowmanager/intern/wm_subwindow.c
@@ -376,7 +376,7 @@ unsigned int index_to_framebuffer(int index)
#endif
-void WM_set_framebuffer_index_color(int index)
+void WM_framebuffer_index_set(int index)
{
const int col = index_to_framebuffer(index);
cpack(col);
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 28e50f1655e..c2aa99352e9 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -1202,7 +1202,7 @@ void wm_get_cursor_position(wmWindow *win, int *x, int *y)
/* called whem no ghost system was initialized */
-void WM_setprefsize(int stax, int stay, int sizx, int sizy)
+void WM_init_state_size_set(int stax, int stay, int sizx, int sizy)
{
wm_init_state.start_x = stax; /* left hand pos */
wm_init_state.start_y = stay; /* bottom pos */
@@ -1212,13 +1212,13 @@ void WM_setprefsize(int stax, int stay, int sizx, int sizy)
}
/* for borderless and border windows set from command-line */
-void WM_setinitialstate_fullscreen(void)
+void WM_init_state_fullscreen_set(void)
{
wm_init_state.windowstate = GHOST_kWindowStateFullScreen;
wm_init_state.override_flag |= WIN_OVERRIDE_WINSTATE;
}
-void WM_setinitialstate_normal(void)
+void WM_init_state_normal_set(void)
{
wm_init_state.windowstate = GHOST_kWindowStateNormal;
wm_init_state.override_flag |= WIN_OVERRIDE_WINSTATE;
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h
index 30f6c564688..95a8a7db635 100644
--- a/source/blender/windowmanager/wm_event_types.h
+++ b/source/blender/windowmanager/wm_event_types.h
@@ -285,25 +285,29 @@ enum {
/* for event checks */
/* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */
-#define ISTEXTINPUT(event) (event >=' ' && event <=255)
+#define ISTEXTINPUT(event) (event >= ' ' && event <= 255)
/* test whether the event is a key on the keyboard */
-#define ISKEYBOARD(event) (event >=' ' && event <=320)
+#define ISKEYBOARD(event) (event >= ' ' && event <= 320)
/* test whether the event is a modifier key */
-#define ISKEYMODIFIER(event) ((event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) || event == OSKEY)
+#define ISKEYMODIFIER(event) ((event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) || event == OSKEY)
/* test whether the event is a mouse button */
-#define ISMOUSE(event) (event >= LEFTMOUSE && event <= MOUSEROTATE)
+#define ISMOUSE(event) (event >= LEFTMOUSE && event <= MOUSEROTATE)
/* test whether the event is tweak event */
-#define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE)
+#define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE)
/* test whether the event is a NDOF event */
-#define ISNDOF(event) (event >= NDOF_MOTION && event < NDOF_LAST)
+#define ISNDOF(event) (event >= NDOF_MOTION && event < NDOF_LAST)
/* test whether event type is acceptable as hotkey, excluding modifiers */
-#define ISHOTKEY(event) ((ISKEYBOARD(event) || ISMOUSE(event) || ISNDOF(event)) && event!=ESCKEY && !(event>=LEFTCTRLKEY && event<=LEFTSHIFTKEY) && !(event>=UNKNOWNKEY && event<=GRLESSKEY))
+#define ISHOTKEY(event) \
+ ((ISKEYBOARD(event) || ISMOUSE(event) || ISNDOF(event)) && \
+ (event != ESCKEY) && \
+ (event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) == FALSE && \
+ (event >= UNKNOWNKEY && event <= GRLESSKEY) == FALSE)
/* **************** BLENDER GESTURE EVENTS (0x5000) **************** */