* add exit app with CTRLKEY+QKEY.
This commit is contained in:
@@ -78,6 +78,7 @@ static void wm_window_keymap(wmWindowManager *wm)
|
|||||||
WM_keymap_verify_item(&wm->windowkeymap, "WM_OT_window_duplicate", AKEY, KM_PRESS, 0, 0);
|
WM_keymap_verify_item(&wm->windowkeymap, "WM_OT_window_duplicate", AKEY, KM_PRESS, 0, 0);
|
||||||
WM_keymap_verify_item(&wm->windowkeymap, "WM_OT_save_homefile", UKEY, KM_PRESS, KM_CTRL, 0);
|
WM_keymap_verify_item(&wm->windowkeymap, "WM_OT_save_homefile", UKEY, KM_PRESS, KM_CTRL, 0);
|
||||||
WM_keymap_verify_item(&wm->windowkeymap, "WM_OT_window_fullscreen_toggle", FKEY, KM_PRESS, 0, 0);
|
WM_keymap_verify_item(&wm->windowkeymap, "WM_OT_window_fullscreen_toggle", FKEY, KM_PRESS, 0, 0);
|
||||||
|
WM_keymap_verify_item(&wm->windowkeymap, "WM_OT_exit_blender", QKEY, KM_PRESS, KM_CTRL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ****************************************** */
|
/* ****************************************** */
|
||||||
|
@@ -116,6 +116,16 @@ static void WM_OT_window_fullscreen_toggle(wmOperatorType *ot)
|
|||||||
ot->poll= WM_operator_winactive;
|
ot->poll= WM_operator_winactive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void WM_OT_exit_blender(wmOperatorType *ot)
|
||||||
|
{
|
||||||
|
ot->name= "Exit Blender";
|
||||||
|
ot->idname= "WM_OT_exit_blender";
|
||||||
|
|
||||||
|
ot->invoke= NULL; /* do confirm stuff */
|
||||||
|
ot->exec= wm_exit_blender_op;
|
||||||
|
ot->poll= WM_operator_winactive;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#define ADD_OPTYPE(opfunc) ot= MEM_callocN(sizeof(wmOperatorType), "operatortype"); \
|
#define ADD_OPTYPE(opfunc) ot= MEM_callocN(sizeof(wmOperatorType), "operatortype"); \
|
||||||
opfunc(ot); \
|
opfunc(ot); \
|
||||||
@@ -136,6 +146,7 @@ void wm_operatortype_init(void)
|
|||||||
ADD_OPTYPE(WM_OT_window_duplicate);
|
ADD_OPTYPE(WM_OT_window_duplicate);
|
||||||
ADD_OPTYPE(WM_OT_save_homefile);
|
ADD_OPTYPE(WM_OT_save_homefile);
|
||||||
ADD_OPTYPE(WM_OT_window_fullscreen_toggle);
|
ADD_OPTYPE(WM_OT_window_fullscreen_toggle);
|
||||||
|
ADD_OPTYPE(WM_OT_exit_blender);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* wrapped to get property from a operator. */
|
/* wrapped to get property from a operator. */
|
||||||
|
@@ -190,6 +190,18 @@ static void wm_window_close(bContext *C, wmWindow *win)
|
|||||||
WM_exit(C);
|
WM_exit(C);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* exit blender */
|
||||||
|
int wm_exit_blender_op(bContext *C, wmOperator *op)
|
||||||
|
{
|
||||||
|
wmWindow *win= C->wm->windows.first;
|
||||||
|
while(win) {
|
||||||
|
wm_window_close(C, win);
|
||||||
|
win= win->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static void wm_window_open(wmWindowManager *wm, char *title, wmWindow *win)
|
static void wm_window_open(wmWindowManager *wm, char *title, wmWindow *win)
|
||||||
{
|
{
|
||||||
GHOST_WindowHandle ghostwin;
|
GHOST_WindowHandle ghostwin;
|
||||||
|
@@ -54,6 +54,7 @@ wmWindow *wm_window_copy (bContext *C, wmWindow *winorig);
|
|||||||
/* *************** window operators ************** */
|
/* *************** window operators ************** */
|
||||||
int wm_window_duplicate_op (bContext *C, wmOperator *op);
|
int wm_window_duplicate_op (bContext *C, wmOperator *op);
|
||||||
int wm_window_fullscreen_toggle_op(bContext *C, wmOperator *op);
|
int wm_window_fullscreen_toggle_op(bContext *C, wmOperator *op);
|
||||||
|
int wm_exit_blender_op(bContext *C, wmOperator *op);
|
||||||
|
|
||||||
|
|
||||||
#endif /* WM_WINDOW_H */
|
#endif /* WM_WINDOW_H */
|
||||||
|
Reference in New Issue
Block a user