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/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2013-05-25 18:08:56 +0400
committerTon Roosendaal <ton@blender.org>2013-05-25 18:08:56 +0400
commit24321d4891224befb9e9ee666950f02b21e6f1c7 (patch)
tree7859c456b71cc4a67ab5855c6a1dac6c3ce1fa63 /source
parent9bf7a2a8c49d07bf41b5b2f743075ccf45cc9e02 (diff)
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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/screen/screen_edit.c8
-rw-r--r--source/blender/windowmanager/intern/wm_window.c7
2 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index e3c5161463b..39bc31c35cf 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -664,15 +664,15 @@ static void screen_test_scale(bScreen *sc, int winsizex, int winsizey)
* 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);
}
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index fe419010780..282e14cc5fe 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -900,6 +900,13 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
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;