[Bf-blender-cvs] [9d69b3d48b3] blender2.8: Merge branch 'master' into blender2.8
Campbell Barton
noreply at git.blender.org
Tue Dec 19 09:39:56 CET 2017
Commit: 9d69b3d48b3b703c0ce3ebbfdc0ea9327fa9b792
Author: Campbell Barton
Date: Tue Dec 19 19:42:11 2017 +1100
Branches: blender2.8
https://developer.blender.org/rB9d69b3d48b3b703c0ce3ebbfdc0ea9327fa9b792
Merge branch 'master' into blender2.8
===================================================================
===================================================================
diff --cc source/blender/editors/interface/interface_region_tooltip.c
index f71b71fce43,523e03cb8a5..959d4ae86f5
--- a/source/blender/editors/interface/interface_region_tooltip.c
+++ b/source/blender/editors/interface/interface_region_tooltip.c
@@@ -827,6 -714,43 +774,59 @@@ static ARegion *ui_tooltip_create_with_
return ar;
}
+ /** \} */
+
+ /* -------------------------------------------------------------------- */
+ /** \name ToolTip Public API
+ * \{ */
+
+
+ ARegion *ui_tooltip_create_from_button(bContext *C, ARegion *butregion, uiBut *but)
+ {
+ wmWindow *win = CTX_wm_window(C);
+ /* aspect values that shrink text are likely unreadable */
+ const float aspect = min_ff(1.0f, but->block->aspect);
+ float init_position[2];
+
+ if (but->drawflag & UI_BUT_NO_TOOLTIP) {
+ return NULL;
+ }
+ uiTooltipData *data = NULL;
+
++ /* custom tips for pre-defined operators */
++ if (but->optype) {
++ if (STREQ(but->optype->idname, "WM_OT_tool_set")) {
++ char keymap[64] = "";
++ RNA_string_get(but->opptr, "keymap", keymap);
++ if (keymap[0]) {
++ ScrArea *sa = CTX_wm_area(C);
++ wmKeyMap *km = WM_keymap_find_all(C, keymap, sa->spacetype, RGN_TYPE_WINDOW);
++ if (km != NULL) {
++ data = ui_tooltip_data_from_keymap(C, km);
++ }
++ }
++ }
++ }
++ /* toolsystem exception */
++
+ if (data == NULL) {
+ data = ui_tooltip_data_from_button(C, but);
+ }
+ if (data == NULL) {
+ return NULL;
+ }
+
+ init_position[0] = BLI_rctf_cent_x(&but->rect);
+ init_position[1] = but->rect.ymin;
+
+ if (butregion) {
+ ui_block_to_window_fl(butregion, but->block, &init_position[0], &init_position[1]);
+ init_position[0] = win->eventstate->x;
+ }
+
+ return ui_tooltip_create_with_data(C, data, init_position, aspect);
+ }
+
void ui_tooltip_free(bContext *C, ARegion *ar)
{
ui_region_temp_remove(C, CTX_wm_screen(C), ar);
More information about the Bf-blender-cvs
mailing list