Changeset View
Changeset View
Standalone View
Standalone View
source/blender/windowmanager/intern/wm_window.c
| Show First 20 Lines • Show All 94 Lines • ▼ Show 20 Lines | |||||
| /* the global to talk to ghost */ | /* the global to talk to ghost */ | ||||
| static GHOST_SystemHandle g_system = NULL; | static GHOST_SystemHandle g_system = NULL; | ||||
| typedef enum WinOverrideFlag { | typedef enum WinOverrideFlag { | ||||
| WIN_OVERRIDE_GEOM = (1 << 0), | WIN_OVERRIDE_GEOM = (1 << 0), | ||||
| WIN_OVERRIDE_WINSTATE = (1 << 1), | WIN_OVERRIDE_WINSTATE = (1 << 1), | ||||
| } WinOverrideFlag; | } WinOverrideFlag; | ||||
| #define GHOST_WINDOW_STATE_DEFAULT GHOST_kWindowStateMaximized | |||||
| /* set by commandline */ | /* set by commandline */ | ||||
| static struct WMInitStruct { | static struct WMInitStruct { | ||||
| /* window geometry */ | /* window geometry */ | ||||
| int size_x, size_y; | int size_x, size_y; | ||||
| int start_x, start_y; | int start_x, start_y; | ||||
| int windowstate; | int windowstate; | ||||
| WinOverrideFlag override_flag; | WinOverrideFlag override_flag; | ||||
| bool window_focus; | bool window_focus; | ||||
| bool native_pixels; | bool native_pixels; | ||||
| } wm_init_state = {0, 0, 0, 0, GHOST_kWindowStateNormal, 0, true, true}; | } wm_init_state = {0, 0, 0, 0, GHOST_WINDOW_STATE_DEFAULT, 0, true, true}; | ||||
| /* ******** win open & close ************ */ | /* ******** win open & close ************ */ | ||||
| static void wm_window_set_drawable(wmWindowManager *wm, wmWindow *win, bool activate); | static void wm_window_set_drawable(wmWindowManager *wm, wmWindow *win, bool activate); | ||||
| static int wm_window_timer(const bContext *C); | static int wm_window_timer(const bContext *C); | ||||
| /* XXX this one should correctly check for apple top header... | /* XXX this one should correctly check for apple top header... | ||||
| * done for Cocoa : returns window contents (and not frame) max size*/ | * done for Cocoa : returns window contents (and not frame) max size*/ | ||||
| ▲ Show 20 Lines • Show All 620 Lines • ▼ Show 20 Lines | #endif | ||||
| for (win = wm->windows.first; win; win = win->next) { | for (win = wm->windows.first; win; win = win->next) { | ||||
| if (win->ghostwin == NULL) { | if (win->ghostwin == NULL) { | ||||
| if ((win->sizex == 0) || (wm_init_state.override_flag & WIN_OVERRIDE_GEOM)) { | if ((win->sizex == 0) || (wm_init_state.override_flag & WIN_OVERRIDE_GEOM)) { | ||||
| win->posx = wm_init_state.start_x; | win->posx = wm_init_state.start_x; | ||||
| win->posy = wm_init_state.start_y; | win->posy = wm_init_state.start_y; | ||||
| win->sizex = wm_init_state.size_x; | win->sizex = wm_init_state.size_x; | ||||
| win->sizey = wm_init_state.size_y; | win->sizey = wm_init_state.size_y; | ||||
| if (wm_init_state.override_flag & WIN_OVERRIDE_GEOM) { | |||||
| win->windowstate = GHOST_kWindowStateNormal; | win->windowstate = GHOST_kWindowStateNormal; | ||||
| wm_init_state.override_flag &= ~WIN_OVERRIDE_GEOM; | wm_init_state.override_flag &= ~WIN_OVERRIDE_GEOM; | ||||
| } | } | ||||
| else { | |||||
| win->windowstate = GHOST_WINDOW_STATE_DEFAULT; | |||||
| } | |||||
| } | |||||
| if (wm_init_state.override_flag & WIN_OVERRIDE_WINSTATE) { | if (wm_init_state.override_flag & WIN_OVERRIDE_WINSTATE) { | ||||
| win->windowstate = wm_init_state.windowstate; | win->windowstate = wm_init_state.windowstate; | ||||
| wm_init_state.override_flag &= ~WIN_OVERRIDE_WINSTATE; | wm_init_state.override_flag &= ~WIN_OVERRIDE_WINSTATE; | ||||
| } | } | ||||
| /* without this, cursor restore may fail, T45456 */ | /* without this, cursor restore may fail, T45456 */ | ||||
| if (win->cursor == 0) { | if (win->cursor == 0) { | ||||
| ▲ Show 20 Lines • Show All 1,589 Lines • Show Last 20 Lines | |||||