[Bf-blender-cvs] [42f6252] master: Fix T47782: popups with wrong size when switching from retina to non-retina on OS X.

Brecht Van Lommel noreply at git.blender.org
Thu Aug 4 01:12:47 CEST 2016


Commit: 42f6252f2d3d08f07d395f581c9acc419c670c19
Author: Brecht Van Lommel
Date:   Thu Aug 4 01:05:27 2016 +0200
Branches: master
https://developer.blender.org/rB42f6252f2d3d08f07d395f581c9acc419c670c19

Fix T47782: popups with wrong size when switching from retina to non-retina on OS X.

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

M	source/blender/windowmanager/intern/wm_window.c

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

diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index b68b607..4252879 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -69,6 +69,8 @@
 #include "ED_screen.h"
 #include "ED_fileselect.h"
 
+#include "UI_interface.h"
+
 #include "PIL_time.h"
 
 #include "GPU_draw.h"
@@ -1194,11 +1196,19 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
 				break;
 			}
 			case GHOST_kEventNativeResolutionChange:
+			{
 				// printf("change, pixel size %f\n", GHOST_GetNativePixelSize(win->ghostwin));
 				
 				U.pixelsize = wm_window_pixelsize(win);
 				BKE_blender_userdef_refresh();
 
+				// close all popups since they are positioned with the pixel
+				// size baked in and it's difficult to correct them
+				wmWindow *oldWindow = CTX_wm_window(C);
+				CTX_wm_window_set(C, win);
+				UI_popup_handlers_remove_all(C, &win->modalhandlers);
+				CTX_wm_window_set(C, oldWindow);
+
 				wm_window_make_drawable(wm, win);
 				wm_draw_window_clear(win);
 
@@ -1206,6 +1216,7 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
 				WM_event_add_notifier(C, NC_WINDOW | NA_EDITED, NULL);
 
 				break;
+			}
 			case GHOST_kEventTrackpad:
 			{
 				GHOST_TEventTrackpadData *pd = data;




More information about the Bf-blender-cvs mailing list