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
path: root/intern
diff options
context:
space:
mode:
authorJoerg Mueller <nexyon@gmail.com>2011-08-16 18:11:58 +0400
committerJoerg Mueller <nexyon@gmail.com>2011-08-16 18:11:58 +0400
commit23807d1fb43de44ca7c4db5dc7bd92178f4b6a14 (patch)
tree6d2e17c8405789363e69df000cf14207110428b2 /intern
parent02d2472baacd8ac091a29392a2bc9ac8693fb5e7 (diff)
parentdddfb5e1738830c325e796a474d0ea14d64654f3 (diff)
Merging trunk up to r39447.
Diffstat (limited to 'intern')
-rw-r--r--intern/ghost/intern/GHOST_NDOFManagerCocoa.mm28
-rw-r--r--intern/ghost/intern/GHOST_SystemSDL.cpp20
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.cpp5
3 files changed, 37 insertions, 16 deletions
diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm
index 1d90b6daa68..409ed953134 100644
--- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm
+++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm
@@ -159,18 +159,22 @@ GHOST_NDOFManagerCocoa::GHOST_NDOFManagerCocoa(GHOST_System& sys)
GHOST_NDOFManagerCocoa::~GHOST_NDOFManagerCocoa()
{
- UnregisterConnexionClient(m_clientID);
- CleanupConnexionHandlers();
- ghost_system = NULL;
- ndof_manager = NULL;
+ if (available())
+ {
+ UnregisterConnexionClient(m_clientID);
+ CleanupConnexionHandlers();
+ ghost_system = NULL;
+ ndof_manager = NULL;
+ }
}
-
-bool GHOST_NDOFManagerCocoa::available()
-{
- // extern OSErr InstallConnexionHandlers() __attribute__((weak_import));
- // ^^ not needed since the entire framework is weak-linked
- return InstallConnexionHandlers != NULL;
- // this means that the driver is installed and dynamically linked to blender
+extern "C" {
+ bool GHOST_NDOFManagerCocoa::available()
+ {
+ extern OSErr InstallConnexionHandlers() __attribute__((weak_import));
+ // Make the linker happy for the framework check (see link below for more info)
+ // http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html
+ return InstallConnexionHandlers != NULL;
+ // this means that the driver is installed and dynamically linked to blender
+ }
}
-
#endif // WITH_INPUT_NDOF
diff --git a/intern/ghost/intern/GHOST_SystemSDL.cpp b/intern/ghost/intern/GHOST_SystemSDL.cpp
index aebb94d5cdf..f2cc45731fa 100644
--- a/intern/ghost/intern/GHOST_SystemSDL.cpp
+++ b/intern/ghost/intern/GHOST_SystemSDL.cpp
@@ -385,8 +385,26 @@ GHOST_SystemSDL::processEvent(SDL_Event *sdl_event)
GHOST_TKey gkey= convertSDLKey(sdl_sub_evt.keysym.scancode);
/* note, the sdl_sub_evt.keysym.sym is truncated, for unicode support ghost has to be modified */
+ /* printf("%d\n", sym); */
if(sym > 127) {
- sym= 0;
+ switch(sym) {
+ case SDLK_KP_DIVIDE: sym= '/'; break;
+ case SDLK_KP_MULTIPLY: sym= '*'; break;
+ case SDLK_KP_MINUS: sym= '-'; break;
+ case SDLK_KP_PLUS: sym= '+'; break;
+ case SDLK_KP_1: sym= '1'; break;
+ case SDLK_KP_2: sym= '2'; break;
+ case SDLK_KP_3: sym= '3'; break;
+ case SDLK_KP_4: sym= '4'; break;
+ case SDLK_KP_5: sym= '5'; break;
+ case SDLK_KP_6: sym= '6'; break;
+ case SDLK_KP_7: sym= '7'; break;
+ case SDLK_KP_8: sym= '8'; break;
+ case SDLK_KP_9: sym= '9'; break;
+ case SDLK_KP_0: sym= '0'; break;
+ case SDLK_KP_PERIOD: sym= '.'; break;
+ default: sym= 0; break;
+ }
}
else {
if(sdl_sub_evt.keysym.mod & (KMOD_LSHIFT|KMOD_RSHIFT)) {
diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp
index 1ba51376ff9..0c8c0adf041 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.cpp
+++ b/intern/ghost/intern/GHOST_WindowWin32.cpp
@@ -612,7 +612,6 @@ GHOST_TSuccess GHOST_WindowWin32::setState(GHOST_TWindowState state)
wp.showCmd = SW_SHOWMINIMIZED;
break;
case GHOST_kWindowStateMaximized:
- ShowWindow(m_hWnd, SW_HIDE);
wp.showCmd = SW_SHOWMAXIMIZED;
SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW);
break;
@@ -629,12 +628,12 @@ GHOST_TSuccess GHOST_WindowWin32::setState(GHOST_TWindowState state)
break;
case GHOST_kWindowStateNormal:
default:
- ShowWindow(m_hWnd, SW_HIDE);
wp.showCmd = SW_SHOWNORMAL;
SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_OVERLAPPEDWINDOW);
break;
}
- return ::SetWindowPlacement(m_hWnd, &wp) == TRUE ? GHOST_kSuccess : GHOST_kFailure;
+ SetWindowPos(m_hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); /*Clears window cache for SetWindowLongPtr */
+ return ::SetWindowPlacement(m_hWnd, &wp) == TRUE ? GHOST_kSuccess : GHOST_kFailure;
}