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
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2008-12-03 20:11:50 +0300
committerTon Roosendaal <ton@blender.org>2008-12-03 20:11:50 +0300
commit4e6b6dd3f91b837b81eaf44b8ea5b1652fd3bfea (patch)
treee48888c58b7da15eb4b17a737d31142621f2efdb /source/blender/editors/interface/interface_regions.c
parent880710cfb0d045c388b65a109b03d90af9566316 (diff)
2.5
- Tooltips now respect view2d view (rna viewer). - Bugfix in viewd.c UI_view2d_view_to_region() (typo)
Diffstat (limited to 'source/blender/editors/interface/interface_regions.c')
-rw-r--r--source/blender/editors/interface/interface_regions.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index ba7add6c875..b928dcb5b7e 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -5,6 +5,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_screen_types.h"
+#include "DNA_view2d_types.h"
#include "DNA_windowmanager_types.h"
#include "BLI_arithb.h"
@@ -21,8 +22,9 @@
#include "BIF_gl.h"
-#include "UI_text.h"
#include "UI_interface.h"
+#include "UI_text.h"
+#include "UI_view2d.h"
#include "ED_screen.h"
@@ -309,6 +311,15 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
x2 += 4;
if(butregion) {
+ /* XXX temp, region v2ds can be empty still */
+ if(butregion->v2d.cur.xmin != butregion->v2d.cur.xmax) {
+ short tx, ty;
+ UI_view2d_to_region_no_clip(&butregion->v2d, x1, y1, &tx, &ty);
+ x1= (int)tx; y1= (int)ty;
+ UI_view2d_to_region_no_clip(&butregion->v2d, x2, y2, &tx, &ty);
+ x2= (int)tx; y2= (int)ty;
+ }
+
x1 += butregion->winrct.xmin;
x2 += butregion->winrct.xmin;
y1 += butregion->winrct.ymin;
@@ -318,14 +329,21 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
wm_window_get_size(C->window, &winx, &winy);
if(x2 > winx) {
- x1 -= x2-winx;
- x2= winx;
+ /* super size */
+ if(x2 > winx + x1) {
+ x2= winx;
+ x1= 0;
+ }
+ else {
+ x1 -= x2-winx;
+ x2= winx;
+ }
}
if(y1 < 0) {
y1 += 36;
y2 += 36;
}
-
+
ar->winrct.xmin= x1;
ar->winrct.ymin= y1;
ar->winrct.xmax= x2;