diff options
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 6 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_panel.c | 2 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 2 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_time/time_header.c | 8 | ||||
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_window.c | 11 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_event_types.h | 6 |
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 */ |