Commit: 2545e1754b807b33e09c43f7abff943ec03c8174
Author: Campbell Barton
Date:   Sat Dec 6 12:44:42 2014 +0100
Branches: input_method_editor_partial_support
https://developer.blender.org/rB2545e1754b807b33e09c43f7abff943ec03c8174

Cleanup: IME patch

- only link to IME when enabled.
- ifdef IME includes.
- minor changes to draw code.

===================================================================

M       CMakeLists.txt
M       intern/ghost/CMakeLists.txt
M       intern/ghost/GHOST_C-api.h
M       intern/ghost/GHOST_IWindow.h
M       intern/ghost/intern/GHOST_C-api.cpp
M       intern/ghost/intern/GHOST_WindowWin32.h
M       source/blender/editors/include/UI_interface.h
M       source/blender/editors/interface/interface_draw.c
M       source/blender/editors/interface/interface_handlers.c
M       source/blender/editors/interface/interface_intern.h
M       source/blender/editors/interface/interface_widgets.c
M       source/blender/makesdna/DNA_windowmanager_types.h
M       source/blender/windowmanager/WM_api.h
M       source/blender/windowmanager/intern/wm_window.c

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 93abf2b..45f2aaa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1152,7 +1152,11 @@ elseif(WIN32)
                set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} 
/SAFESEH:NO")
                set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} 
/SAFESEH:NO")
 
-               list(APPEND PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 
user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi imm32)
+               list(APPEND PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 
user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid psapi)
+
+               if(WITH_INPUT_IME)
+                       list(APPEND PLATFORM_LINKLIBS imm32)
+               endif()
 
                add_definitions(
                        -D_CRT_NONSTDC_NO_DEPRECATE
@@ -1508,7 +1512,12 @@ elseif(WIN32)
                        endif()
                endif()
                
-               list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 
-lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 
-lpsapi -limm32)
+               list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 
-lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 
-lpsapi)
+
+               if(WITH_INPUT_IME)
+                       list(APPEND PLATFORM_LINKLIBS -limm32)
+               endif()
+
                set(PLATFORM_CFLAGS "-pipe -funsigned-char 
-fno-strict-aliasing")
 
                if(WITH_MINGW64)
diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt
index 8f30564..dc55a81 100644
--- a/intern/ghost/CMakeLists.txt
+++ b/intern/ghost/CMakeLists.txt
@@ -285,11 +285,11 @@ elseif(WIN32)
 
                list(APPEND SRC
                        intern/GHOST_ImeWin32.cpp
-                               
+
                        intern/GHOST_ImeWin32.h
                )
        endif()
-       
+
        if(WITH_INPUT_NDOF)
                list(APPEND SRC
                        intern/GHOST_NDOFManagerWin32.cpp
diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h
index 56d30cb..c0f2651 100644
--- a/intern/ghost/GHOST_C-api.h
+++ b/intern/ghost/GHOST_C-api.h
@@ -906,8 +906,8 @@ extern float GHOST_GetNativePixelSize(GHOST_WindowHandle 
windowhandle);
  * \param w Requested width of the rectangle
  * \param h Requested height of the rectangle
  * \param complete Whether or not to complete the ongoing composition
- *     true:  Start a new composition
- *     false: Move the IME windows to the given position without finishing it.
+ * true:  Start a new composition
+ * false: Move the IME windows to the given position without finishing it.
  */
 extern void GHOST_BeginIME(GHOST_WindowHandle windowhandle,
                             GHOST_TInt32 x,
diff --git a/intern/ghost/GHOST_IWindow.h b/intern/ghost/GHOST_IWindow.h
index 58d8172..3f8215d 100644
--- a/intern/ghost/GHOST_IWindow.h
+++ b/intern/ghost/GHOST_IWindow.h
@@ -340,14 +340,13 @@ public:
         * \param w Requested width of the rectangle
         * \param h Requested height of the rectangle
         * \param complete Whether or not to complete the ongoing composition
-        *     true:  Start a new composition
-        *     false: Move the IME windows to the given position without 
finishing it.
-        */
-       virtual void beginIME(GHOST_TInt32 x,
-                           GHOST_TInt32 y,
-                           GHOST_TInt32 w,
-                           GHOST_TInt32 h,
-                           int completed) = 0;
+        * true:  Start a new composition
+        * false: Move the IME windows to the given position without finishing 
it.
+        */
+       virtual void beginIME(
+               GHOST_TInt32 x, GHOST_TInt32 y,
+               GHOST_TInt32 w, GHOST_TInt32 h,
+               int completed) = 0;
 
        /**
         * Disable the IME attached to the given window, i.e. prohibits any 
user-input
diff --git a/intern/ghost/intern/GHOST_C-api.cpp 
b/intern/ghost/intern/GHOST_C-api.cpp
index 71725c1..0da77ac 100644
--- a/intern/ghost/intern/GHOST_C-api.cpp
+++ b/intern/ghost/intern/GHOST_C-api.cpp
@@ -918,11 +918,9 @@ float GHOST_GetNativePixelSize(GHOST_WindowHandle 
windowhandle)
 #ifdef WITH_INPUT_IME
 
 void GHOST_BeginIME(GHOST_WindowHandle windowhandle,
-                     GHOST_TInt32 x,
-                     GHOST_TInt32 y,
-                     GHOST_TInt32 w,
-                     GHOST_TInt32 h,
-                     int complete)
+                    GHOST_TInt32 x, GHOST_TInt32 y,
+                    GHOST_TInt32 w, GHOST_TInt32 h,
+                    int complete)
 {
        GHOST_IWindow *window = (GHOST_IWindow *) windowhandle;
        window->beginIME(x, y, w, h, complete);
@@ -934,4 +932,4 @@ void GHOST_EndIME(GHOST_WindowHandle windowhandle)
        window->endIME();
 }
 
-#endif /* WITH_INPUT_IME */
+#endif  /* WITH_INPUT_IME */
diff --git a/intern/ghost/intern/GHOST_WindowWin32.h 
b/intern/ghost/intern/GHOST_WindowWin32.h
index 91f18ad..c4575d0 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.h
+++ b/intern/ghost/intern/GHOST_WindowWin32.h
@@ -40,7 +40,7 @@
 #include "GHOST_Window.h"
 #include "GHOST_TaskbarWin32.h"
 #ifdef WITH_INPUT_IME
-#include "GHOST_ImeWin32.h"
+#  include "GHOST_ImeWin32.h"
 #endif
 
 #include <wintab.h>
@@ -259,11 +259,10 @@ public:
 #ifdef WITH_INPUT_IME
        GHOST_ImeWin32 *getImeInput() {return &m_imeImput;}
 
-       virtual void beginIME(GHOST_TInt32 x,
-                             GHOST_TInt32 y,
-                             GHOST_TInt32 w,
-                             GHOST_TInt32 h,
-                             int completed);
+       virtual void beginIME(
+               GHOST_TInt32 x, GHOST_TInt32 y,
+               GHOST_TInt32 w, GHOST_TInt32 h,
+               int completed);
 
        virtual void endIME();
 #endif /* WITH_INPUT_IME */
diff --git a/source/blender/editors/include/UI_interface.h 
b/source/blender/editors/include/UI_interface.h
index 2823ada..a7bb570 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -1010,6 +1010,4 @@ void UI_butstore_unregister(uiButStore *bs_handle, uiBut 
**but_p);
 
 int UI_calc_float_precision(int prec, double value);
 
-/* Utility */
-void ui_region_to_window(const struct ARegion *ar, int *x, int *y);
 #endif  /* __UI_INTERFACE_H__ */
diff --git a/source/blender/editors/interface/interface_draw.c 
b/source/blender/editors/interface/interface_draw.c
index c145092..3f134ce 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -396,7 +396,7 @@ void UI_draw_roundbox(float minx, float miny, float maxx, 
float maxy, float rad)
 }
 
 void UI_text_draw_underline(int pos_x, int pos_y, int len, int height) {
-       short ofs_y = 4 * U.pixelsize;
+       int ofs_y = 4 * U.pixelsize;
        glRecti(pos_x, pos_y - ofs_y, pos_x + len, pos_y - ofs_y + (height * 
U.pixelsize));
 }
 
diff --git a/source/blender/editors/interface/interface_handlers.c 
b/source/blender/editors/interface/interface_handlers.c
index fd5cc65..39f8ea1 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -86,7 +86,10 @@
 
 #include "WM_api.h"
 #include "WM_types.h"
-#include "wm_window.h"
+
+#ifdef WITH_INPUT_IME
+#  include "wm_window.h"
+#endif
 
 /* place the mouse at the scaled down location when un-grabbing */
 #define USE_CONT_MOUSE_CORRECT
@@ -2634,9 +2637,13 @@ static void ui_do_but_textedit(bContext *C, uiBlock 
*block, uiBut *but, uiHandle
        int retval = WM_UI_HANDLER_CONTINUE;
        bool changed = false, inbox = false, update = false;
 
+#ifdef WITH_INPUT_IME
        wmWindow *win = CTX_wm_window(C);
        wmIMEData *ime_data = win->ime_data;
        bool is_ime_composing = ime_data && ime_data->is_ime_composing;
+#else
+       bool is_ime_composing = false;
+#endif
 
        switch (event->type) {
                case MOUSEMOVE:
@@ -2838,12 +2845,13 @@ static void ui_do_but_textedit(bContext *C, uiBlock 
*block, uiBut *but, uiHandle
                }
 
                if ((event->ascii || event->utf8_buf[0]) &&
-                       (retval == WM_UI_HANDLER_CONTINUE)
+                   (retval == WM_UI_HANDLER_CONTINUE)
 #ifdef WITH_INPUT_IME
-                        && !is_ime_composing &&
-                        !WM_event_is_ime_switch(event)
+                   &&
+                   !is_ime_composing &&
+                   !WM_event_is_ime_switch(event)
 #endif
-                       )
+                   )
                {
                        char ascii = event->ascii;
                        const char *utf8_buf = event->utf8_buf;
@@ -2882,13 +2890,16 @@ static void ui_do_but_textedit(bContext *C, uiBlock 
*block, uiBut *but, uiHandle
 #ifdef WITH_INPUT_IME
        if (event->type == WM_IME_COMPOSITE_START || event->type == 
WM_IME_COMPOSITE_EVENT) {
                changed = true;
-               
-               if (event->type == WM_IME_COMPOSITE_START && but->selend > 
but->selsta)
+
+               if (event->type == WM_IME_COMPOSITE_START && but->selend > 
but->selsta) {
                        ui_textedit_delete_selection(but, data);
-               if (event->type == WM_IME_COMPOSITE_EVENT && 
ime_data->result_len)
-                       ui_textedit_type_buf(but, data,
-                                            ime_data->str_result,
-                                                                
ime_data->result_len);
+               }
+               if (event->type == WM_IME_COMPOSITE_EVENT && 
ime_data->result_len) {
+                       ui_textedit_type_buf(
+                               but, data,
+                               ime_data->str_result,
+                               ime_data->result_len);
+               }
        }
        else if (event->type == WM_IME_COMPOSITE_END) {
                changed = true;
diff --git a/source/blender/editors/interface/interface_intern.h 
b/source/blender/editors/interface/interface_intern.h
index e0f538b..fe8adba 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -433,6 +433,7 @@ extern void ui_block_to_window_rctf(const struct ARegion 
*ar, uiBlock *block, rc
 extern void ui_window_to_block_fl(const struct ARegion *ar, uiBlock *block, 
float *x, float *y);
 extern void ui_window_to_block(const struct ARegion *ar, uiBlock *block, int 
*x, int *y);
 extern void ui_window_to_region(const ARegion *ar, int *x, int *y);
+extern void ui_region_to_window(const struct ARegion *ar, int *x, int *y);
 
 extern double ui_but_value_get(uiBut *but);
 extern void ui_but_value_set(uiBut *but, double value);
@@ -627,8 +628,10 @@ void ui_panel_menu(struct bContext *C, ARegion *ar, Panel 
*pa);
 uiBut *ui_but_find_old(uiBlock *block_old, const uiBut *but_new);
 uiBut *ui_but_find_new(uiBlock *block_old, const uiBut *but_new);
 
+#ifdef WITH_INPUT_IME
 void ui_but_ime_reposition(uiBut *but, int x, int y, int complete);
 struct wmIMEData *ui_but_get_ime_data(uiBut *but);
+#endif
 
 /* interface_widgets.c */
 void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float 
y3);
diff --git a/source/blender/editors/interface/interface_widgets.c 
b/source/blender/editors/interface/interface_widgets.c
index 84

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to