diff options
author | Ton Roosendaal <ton@blender.org> | 2009-01-31 16:30:56 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-01-31 16:30:56 +0300 |
commit | 86a2a0f6947feab469a108eb7eb875fa5637d036 (patch) | |
tree | ff033132556d35991a488e6dc98807fa5b06b625 /source/blender/windowmanager | |
parent | 607a56cb7a0e5a7fef2214d60a723dd67e8209ab (diff) |
2.5
Edit Mesh:
- Added back "Edge Shortest Path select"
It now also does regular selection, more fun!
It's mapped to CTRL+click now, and makes or clears selections
between current and previously activated edge.
Seam/Sharp/etc marking is a toolsetting mode still. These
options cannot become properties easily, because the tool
uses the properties of selected edge to clear...
- Removed a whole bunch of G.f flags, related to mesh drawing.
It's all now local in me->drawflags. Here's the list of
removed old globals:
G_DRAWEDGES
G_DRAWFACES
G_DRAWNORMALS
G_DRAW_VNORMALS
G_ALLEDGES
G_HIDDENEDGES
G_DRAWCREASES
G_DRAWSEAMS
G_DRAWSHARP
G_DRAWBWEIGHTS
G_DRAW_EDGELEN
G_DRAW_FACEAREA
G_DRAW_EDGEANG
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 15 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 31 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_window.c | 15 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_event_system.h | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_window.h | 1 |
5 files changed, 25 insertions, 38 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 7df47ce3462..3d7cb25b134 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -72,14 +72,6 @@ void wm_event_add(wmWindow *win, wmEvent *event_to_add) BLI_addtail(&win->queue, event); } -wmEvent *wm_event_next(wmWindow *win) -{ - wmEvent *event= win->queue.first; - - if(event) BLI_remlink(&win->queue, event); - return event; -} - static void wm_event_free(wmEvent *event) { if(event->customdata && event->customdatafree) @@ -789,9 +781,9 @@ void wm_event_do_handlers(bContext *C) if( win->screen==NULL ) wm_event_free_all(win); - while( (event=wm_event_next(win)) ) { + while( (event= win->queue.first) ) { int action; - + CTX_wm_window_set(C, win); /* we let modal handlers get active area/region, also wm_paintcursor_test needs it */ @@ -852,6 +844,9 @@ void wm_event_do_handlers(bContext *C) win->eventstate->prevy= event->y; } } + + /* unlink and free here, blender-quit then frees all */ + BLI_remlink(&win->queue, event); wm_event_free(event); } diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index a496ebc3bea..55d0fd4ab46 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -461,6 +461,15 @@ static void WM_OT_window_fullscreen_toggle(wmOperatorType *ot) ot->poll= WM_operator_winactive; } +static int wm_exit_blender_op(bContext *C, wmOperator *op) +{ + WM_operator_free(op); + + WM_exit(C); + + return OPERATOR_FINISHED; +} + static void WM_OT_exit_blender(wmOperatorType *ot) { ot->name= "Exit Blender"; @@ -531,18 +540,18 @@ static int border_apply(bContext *C, wmOperator *op, int event_type) if(rect->xmin==rect->xmax || rect->ymin==rect->ymax) return 0; - else { - - /* operator arguments and storage. */ - RNA_int_set(op->ptr, "xmin", rect->xmin); - RNA_int_set(op->ptr, "ymin", rect->ymin); - RNA_int_set(op->ptr, "xmax", rect->xmax); - RNA_int_set(op->ptr, "ymax", rect->ymax); - if( RNA_struct_find_property(op->ptr, "event_type") ) - RNA_int_set(op->ptr, "event_type", event_type); - op->type->exec(C, op); - } + /* operator arguments and storage. */ + RNA_int_set(op->ptr, "xmin", rect->xmin); + RNA_int_set(op->ptr, "ymin", rect->ymin); + RNA_int_set(op->ptr, "xmax", rect->xmax); + RNA_int_set(op->ptr, "ymax", rect->ymax); + if( RNA_struct_find_property(op->ptr, "event_type") ) + RNA_int_set(op->ptr, "event_type", event_type); + + op->type->exec(C, op); + + return 1; } static void wm_gesture_end(bContext *C, wmOperator *op) diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index eebf89982c1..bf34406b111 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -322,21 +322,6 @@ int wm_window_fullscreen_toggle_op(bContext *C, wmOperator *op) } - -/* exit blender */ -int wm_exit_blender_op(bContext *C, wmOperator *op) -{ - wmWindowManager *wm= CTX_wm_manager(C); - wmWindow *win= wm->windows.first; - - while(win) { - wm_window_close(C, win); - win= win->next; - } - - return OPERATOR_FINISHED; -} - /* ************ events *************** */ diff --git a/source/blender/windowmanager/wm_event_system.h b/source/blender/windowmanager/wm_event_system.h index 8a5806497a3..5205c8c17e1 100644 --- a/source/blender/windowmanager/wm_event_system.h +++ b/source/blender/windowmanager/wm_event_system.h @@ -78,7 +78,6 @@ enum { /* wm_event_system.c */ void wm_event_add(wmWindow *win, wmEvent *event_to_add); void wm_event_free_all (wmWindow *win); -wmEvent *wm_event_next (wmWindow *win); /* goes over entire hierarchy: events -> window -> screen -> area -> region */ void wm_event_do_handlers (bContext *C); diff --git a/source/blender/windowmanager/wm_window.h b/source/blender/windowmanager/wm_window.h index 97b9f434982..86ceac9203e 100644 --- a/source/blender/windowmanager/wm_window.h +++ b/source/blender/windowmanager/wm_window.h @@ -58,7 +58,6 @@ void wm_window_testbreak (void); int wm_window_duplicate_op (bContext *C, wmOperator *op); int wm_window_rip_op (bContext *C, wmOperator *op, struct wmEvent *event); int wm_window_fullscreen_toggle_op(bContext *C, wmOperator *op); -int wm_exit_blender_op(bContext *C, wmOperator *op); #endif /* WM_WINDOW_H */ |