Revision: 57018
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57018
Author:   ton
Date:     2013-05-25 14:08:56 +0000 (Sat, 25 May 2013)
Log Message:
-----------
Solving ancient Blender window sizing issue;

- Removed grid-snapping for area coordinates on scaling windows. 
  That caused the areas to shrink or expand, and eventually corrupt screen 
layouts.

- Added simple but efficient life resize for OSX. I need to know why this is so 
much
  code for Windows... I suggest Windows to just copy same method; dispatch the 
queue,
  and just let the event system draw.

Modified Paths:
--------------
    trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm
    trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp
    trunk/blender/source/blender/editors/screen/screen_edit.c
    trunk/blender/source/blender/windowmanager/intern/wm_window.c

Modified: trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm      2013-05-25 
13:34:21 UTC (rev 57017)
+++ trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm      2013-05-25 
14:08:56 UTC (rev 57018)
@@ -53,17 +53,7 @@
 #endif
 
 #pragma mark Cocoa window delegate object
-/* live resize ugly patch
-extern "C" {
-       struct bContext;
-       typedef struct bContext bContext;
-       bContext* ghostC;
-       extern int wm_window_timer(const bContext *C);
-       extern void wm_window_process_events(const bContext *C);
-       extern void wm_event_do_handlers(bContext *C);
-       extern void wm_event_do_notifiers(bContext *C);
-       extern void wm_draw_update(bContext *C);
-};*/
+
 @interface CocoaWindowDelegate : NSObject
 <NSWindowDelegate>
 {
@@ -125,14 +115,10 @@
 #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
        //}
 #endif
-       /* Live resize ugly patch. Needed because live resize runs in a modal 
loop, not letting main loop run
+       /* Live resize, send event, gets handled in wm_window.c. Needed because 
live resize runs in a modal loop, not letting main loop run */
         if ([[notification object] inLiveResize]) {
                systemCocoa->dispatchEvents();
-               wm_window_timer(ghostC);
-               wm_event_do_handlers(ghostC);
-               wm_event_do_notifiers(ghostC);
-               wm_draw_update(ghostC);
-       }*/
+       }
 }
 
 - (void)windowDidChangeBackingProperties:(NSNotification *)notification

Modified: trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp     2013-05-25 
13:34:21 UTC (rev 57017)
+++ trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp     2013-05-25 
14:08:56 UTC (rev 57018)
@@ -887,7 +887,7 @@
                                        }
                                        else {
                                                m_multisampleEnabled = 
GHOST_kSuccess;
-                                               printf("Multisample failed to 
initialized\n");
+                                               printf("Multisample failed to 
initialize\n");
                                                success = GHOST_kSuccess;
                                        }
                                }

Modified: trunk/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_edit.c   2013-05-25 
13:34:21 UTC (rev 57017)
+++ trunk/blender/source/blender/editors/screen/screen_edit.c   2013-05-25 
14:08:56 UTC (rev 57018)
@@ -664,15 +664,15 @@
                         * need some way to store these as floats internally 
and re-apply from there. */
                        tempf = ((float)sv->vec.x) * facx;
                        sv->vec.x = (short)(tempf + 0.5f);
-                       sv->vec.x += AREAGRID - 1;
-                       sv->vec.x -=  (sv->vec.x % AREAGRID);
+                       //sv->vec.x += AREAGRID - 1;
+                       //sv->vec.x -=  (sv->vec.x % AREAGRID);
 
                        CLAMP(sv->vec.x, 0, winsizex);
                        
                        tempf = ((float)sv->vec.y) * facy;
                        sv->vec.y = (short)(tempf + 0.5f);
-                       sv->vec.y += AREAGRID - 1;
-                       sv->vec.y -=  (sv->vec.y % AREAGRID);
+                       //sv->vec.y += AREAGRID - 1;
+                       //sv->vec.y -=  (sv->vec.y % AREAGRID);
 
                        CLAMP(sv->vec.y, 0, winsizey);
                }

Modified: trunk/blender/source/blender/windowmanager/intern/wm_window.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_window.c       
2013-05-25 13:34:21 UTC (rev 57017)
+++ trunk/blender/source/blender/windowmanager/intern/wm_window.c       
2013-05-25 14:08:56 UTC (rev 57018)
@@ -900,6 +900,13 @@
                                                wm_draw_window_clear(win);
                                                WM_event_add_notifier(C, 
NC_SCREEN | NA_EDITED, NULL);
                                                WM_event_add_notifier(C, 
NC_WINDOW | NA_EDITED, NULL);
+                                               
+#if defined(__APPLE__)
+                                               /* OSX doesn't return to the 
mainloop while resize */
+                                               wm_event_do_handlers(C);
+                                               wm_event_do_notifiers(C);
+                                               wm_draw_update(C);
+#endif
                                        }
                                }
                                break;

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

Reply via email to