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:
-rw-r--r--source/blender/editors/interface/interface_handlers.c6
-rw-r--r--source/blender/editors/interface/interface_panel.c2
-rw-r--r--source/blender/editors/screen/screen_edit.c2
-rw-r--r--source/blender/editors/screen/screen_ops.c2
-rw-r--r--source/blender/editors/space_time/time_header.c8
-rw-r--r--source/blender/windowmanager/WM_api.h4
-rw-r--r--source/blender/windowmanager/WM_types.h1
-rw-r--r--source/blender/windowmanager/intern/wm_window.c11
-rw-r--r--source/blender/windowmanager/wm_event_types.h6
9 files changed, 27 insertions, 15 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 34cce7bf74e..17c3d6e3e69 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -2763,7 +2763,7 @@ static void button_tooltip_timer_reset(uiBut *but)
if(U.flag & USER_TOOLTIPS)
if(!but->block->tooltipdisabled)
- data->tooltiptimer= WM_event_add_window_timer(data->window, BUTTON_TOOLTIP_DELAY);
+ data->tooltiptimer= WM_event_add_window_timer(data->window, TIMER, BUTTON_TOOLTIP_DELAY);
}
static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState state)
@@ -2791,7 +2791,7 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s
else time= -1;
if(time >= 0)
- data->autoopentimer= WM_event_add_window_timer(data->window, 0.02*(double)time);
+ data->autoopentimer= WM_event_add_window_timer(data->window, TIMER, 0.02*(double)time);
}
}
}
@@ -2833,7 +2833,7 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s
/* add a short delay before exiting, to ensure there is some feedback */
if(state == BUTTON_STATE_WAIT_FLASH) {
- data->flashtimer= WM_event_add_window_timer(data->window, BUTTON_FLASH_DELAY);
+ data->flashtimer= WM_event_add_window_timer(data->window, TIMER, BUTTON_FLASH_DELAY);
}
else if(data->flashtimer) {
WM_event_remove_window_timer(data->window, data->flashtimer);
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index fd715cf6c4a..0d6aa4082d3 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -1583,7 +1583,7 @@ static void panel_activate_state(bContext *C, Panel *pa, uiHandlePanelState stat
}
if(ELEM(state, PANEL_STATE_ANIMATION, PANEL_STATE_DRAG))
- data->animtimer= WM_event_add_window_timer(win, ANIMATION_INTERVAL);
+ data->animtimer= WM_event_add_window_timer(win, TIMER, ANIMATION_INTERVAL);
data->state= state;
data->startx= win->eventstate->x;
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 414e3569c03..6d16e522a11 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1303,6 +1303,6 @@ void ED_screen_animation_timer(bContext *C, int enable)
screen->animtimer= NULL;
if(enable)
- screen->animtimer= WM_event_add_window_timer(win, (1.0/FPS));
+ screen->animtimer= WM_event_add_window_timer(win, TIMER0, (1.0/FPS));
}
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 82445cbb1fd..1846ea3972d 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -1469,7 +1469,7 @@ void ED_keymap_screen(wmWindowManager *wm)
RNA_enum_set(WM_keymap_add_item(keymap, "SCREEN_OT_region_split", SKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "dir", 'v');
/*frame offsets*/
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", TIMER, KM_ANY, KM_ANY, 0);
+ WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", TIMER0, KM_ANY, KM_ANY, 0);
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 10);
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -10);
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -1);
diff --git a/source/blender/editors/space_time/time_header.c b/source/blender/editors/space_time/time_header.c
index a4e26400417..b760f1f969b 100644
--- a/source/blender/editors/space_time/time_header.c
+++ b/source/blender/editors/space_time/time_header.c
@@ -302,18 +302,18 @@ static uiBlock *time_framemenu(bContext *C, uiMenuBlockHandle *handle, void *arg
block= uiBeginBlock(C, handle->region, "time_framemenu", UI_EMBOSSP, UI_HELV);
uiBlockSetButmFunc(block, do_time_framemenu, NULL);
- uiDefIconTextButO(C, block, BUTM, "ED_MARKER_OT_add", WM_OP_EXEC_REGION_WIN, ICON_BLANK1, "Add Marker",
+ uiDefIconTextButO(C, block, BUTM, "MARKER_OT_add", WM_OP_EXEC_REGION_WIN, ICON_BLANK1, "Add Marker",
0, yco-=2, menuwidth, 19, "");
- uiDefIconTextButO(C, block, BUTM, "ED_MARKER_OT_duplicate", WM_OP_EXEC_REGION_WIN, ICON_BLANK1, "Duplicate Marker",
+ uiDefIconTextButO(C, block, BUTM, "MARKER_OT_duplicate", WM_OP_EXEC_REGION_WIN, ICON_BLANK1, "Duplicate Marker",
0, yco-=20, menuwidth, 19, "");
- uiDefIconTextButO(C, block, BUTM, "ED_MARKER_OT_delete", WM_OP_EXEC_REGION_WIN, ICON_BLANK1, "Delete Marker",
+ uiDefIconTextButO(C, block, BUTM, "MARKER_OT_delete", WM_OP_EXEC_REGION_WIN, ICON_BLANK1, "Delete Marker",
0, yco-=20, menuwidth, 19, "");
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Name Marker|Ctrl M",
0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
- uiDefIconTextButO(C, block, BUTM, "ED_MARKER_OT_move", WM_OP_INVOKE_REGION_WIN, ICON_BLANK1, "Grab/Move Marker",
+ uiDefIconTextButO(C, block, BUTM, "MARKER_OT_move", WM_OP_INVOKE_REGION_WIN, ICON_BLANK1, "Grab/Move Marker",
0, yco-=20, menuwidth, 19, "");
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 1fe9da8b06c..be1297880f6 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -99,8 +99,8 @@ void WM_event_add_notifier(struct bContext *C, int type, int value, void *data)
void wm_event_add (wmWindow *win, struct wmEvent *event_to_add); /* XXX only for warning */
- /* at maximum, every timestep seconds it triggers TIMER events */
-struct wmTimer *WM_event_add_window_timer(wmWindow *win, double timestep);
+ /* at maximum, every timestep seconds it triggers event_type events */
+struct wmTimer *WM_event_add_window_timer(wmWindow *win, int event_type, double timestep);
void WM_event_remove_window_timer(wmWindow *win, struct wmTimer *timer);
void WM_event_window_timer_sleep(wmWindow *win, struct wmTimer *timer, int dosleep);
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 687a8a6628c..27a730f9dae 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -173,6 +173,7 @@ typedef struct wmTabletData {
typedef struct wmTimer {
struct wmTimer *next, *prev;
double timestep; /* set by timer user */
+ int event_type; /* set by timer user */
double duration; /* total running time in seconds */
double delta; /* time since previous step in seconds */
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 5773fd847c7..c12e7921e7f 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -517,11 +517,17 @@ static int wm_window_timer(const bContext *C)
for(wt= win->timers.first; wt; wt= wt->next) {
if(wt->sleep==0) {
if(wt->timestep < time - wt->ltime) {
+ wmEvent event= *(win->eventstate);
+
wt->delta= time - wt->ltime;
wt->duration += wt->delta;
wt->ltime= time;
- wm_event_add_ghostevent(win, GHOST_kEventTimer, wt);
+ event.type= wt->event_type;
+ event.custom= EVT_DATA_TIMER;
+ event.customdata= wt;
+ wm_event_add(win, &event);
+
retval= 1;
}
}
@@ -571,10 +577,11 @@ void WM_event_window_timer_sleep(wmWindow *win, wmTimer *timer, int dosleep)
}
}
-wmTimer *WM_event_add_window_timer(wmWindow *win, double timestep)
+wmTimer *WM_event_add_window_timer(wmWindow *win, int event_type, double timestep)
{
wmTimer *wt= MEM_callocN(sizeof(wmTimer), "window timer");
+ wt->event_type= event_type;
wt->ltime= PIL_check_seconds_timer();
wt->timestep= timestep;
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h
index 6fc9aa86e12..91427579c29 100644
--- a/source/blender/windowmanager/wm_event_types.h
+++ b/source/blender/windowmanager/wm_event_types.h
@@ -67,7 +67,11 @@
#define WINCLOSE 0x0107 /* window close */
#define WINQUIT 0x0108 /* signal from user that app is to go away */
#define Q_FIRSTTIME 0x0109 /* on startup */
-#define TIMER 0x0110 /* timer event */
+
+#define TIMER 0x0110 /* timer event, passed on to all queues */
+#define TIMER0 0x0111 /* timer event, slot for internal use */
+#define TIMER1 0x0112 /* timer event, slot for internal use */
+#define TIMER2 0x0113 /* timer event, slot for internal use */
/* standard keyboard */