[Bf-blender-cvs] [0cd92a1e770] wm-drag-drop-rewrite: Merge branch 'master' into wm-drag-drop-rewrite

Julian Eisel noreply at git.blender.org
Fri Jan 24 11:37:29 CET 2020


Commit: 0cd92a1e770c63be5c2ae5a48fd2cb924cd19936
Author: Julian Eisel
Date:   Fri Jan 24 11:35:02 2020 +0100
Branches: wm-drag-drop-rewrite
https://developer.blender.org/rB0cd92a1e770c63be5c2ae5a48fd2cb924cd19936

Merge branch 'master' into wm-drag-drop-rewrite

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



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

diff --cc source/blender/editors/interface/interface_handlers.c
index 2a9edeed248,16996681695..2b97c2a1723
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@@ -7361,10 -7721,11 +7699,11 @@@ static void button_tooltip_timer_reset(
  
    if ((U.flag & USER_TOOLTIPS) || (data->tooltip_force)) {
      if (!but->block->tooltipdisabled) {
 -      if (!wm->drags.first) {
 +      if (!wm->drag.data) {
          bool is_label = UI_but_has_tooltip_label(but);
          double delay = is_label ? UI_TOOLTIP_DELAY_LABEL : UI_TOOLTIP_DELAY;
-         WM_tooltip_timer_init_ex(C, data->window, data->region, ui_but_tooltip_init, delay);
+         WM_tooltip_timer_init_ex(
+             C, data->window, data->area, data->region, ui_but_tooltip_init, delay);
          if (is_label) {
            bScreen *sc = WM_window_get_active_screen(data->window);
            if (sc->tool_tip) {
diff --cc source/blender/windowmanager/WM_api.h
index 70a5074aaf9,cfdb15026fd..4a62e5b34df
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@@ -628,94 -632,24 +632,88 @@@ void WM_event_fileselect_event(struct w
  
  void WM_operator_region_active_win_set(struct bContext *C);
  
- int WM_event_drag_threshold(const struct wmEvent *event);
- bool WM_event_drag_test(const struct wmEvent *event, const int prev_xy[2]);
- bool WM_event_drag_test_with_delta(const struct wmEvent *event, const int delta[2]);
- 
  /* drag and drop */
 -struct wmDrag *WM_event_start_drag(
 -    struct bContext *C, int icon, int type, void *poin, double value, unsigned int flags);
 -void WM_event_drag_image(struct wmDrag *, struct ImBuf *, float scale, int sx, int sy);
 -void WM_drag_free(struct wmDrag *drag);
 -void WM_drag_free_list(struct ListBase *lb);
 -
 -struct wmDropBox *WM_dropbox_add(
 -    ListBase *lb,
 -    const char *idname,
 -    bool (*poll)(struct bContext *, struct wmDrag *, const struct wmEvent *event, const char **),
 -    void (*copy)(struct wmDrag *, struct wmDropBox *));
 -ListBase *WM_dropboxmap_find(const char *idname, int spaceid, int regionid);
 -
 -/* ID drag and drop */
 -void WM_drag_add_ID(struct wmDrag *drag, struct ID *id, struct ID *from_parent);
 -struct ID *WM_drag_ID(const struct wmDrag *drag, short idcode);
 -struct ID *WM_drag_ID_from_event(const struct wmEvent *event, short idcode);
 +struct wmDragData *WM_drag_start_id(struct bContext *C, ID *id);
 +struct wmDragData *WM_drag_start_filepath(struct bContext *C, const char *filepath);
 +struct wmDragData *WM_drag_start_filepaths(struct bContext *C, const char **filepaths, int amount);
 +struct wmDragData *WM_drag_start_color(struct bContext *C, float color[3], bool gamma_corrected);
 +struct wmDragData *WM_drag_start_value(struct bContext *C, double value);
 +struct wmDragData *WM_drag_start_rna(struct bContext *C, struct PointerRNA *rna);
 +struct wmDragData *WM_drag_start_name(struct bContext *C, const char *name);
 +struct wmDragData *WM_drag_start_collection_children(struct bContext *C,
 +                                                     struct ListBase *collection_children);
 +
 +struct wmDragData *WM_drag_get_active(struct bContext *C);
 +struct wmDragData *WM_drag_data_from_event(const struct wmEvent *event);
 +void WM_drag_transfer_ownership_to_event(struct wmWindowManager *wm, struct wmEvent *event);
 +struct wmDropTarget *WM_drag_find_current_target(struct bContext *C,
 +                                                 struct wmDragData *drag_data,
 +                                                 const struct wmEvent *event);
 +
 +void WM_drag_display_set_color(struct wmDragData *drag_data, float color[3]);
 +void WM_drag_display_set_color_derived(struct wmDragData *drag_data);
 +void WM_drag_display_set_icon(struct wmDragData *drag_data, int icon_id);
 +void WM_drag_display_set_image(
 +    struct wmDragData *drag_data, struct ImBuf *imb, float scale, int width, int height);
 +
 +void WM_drag_data_free(struct wmDragData *drag);
 +void WM_drop_target_free(struct wmDropTarget *drop_target);
 +void WM_drag_stop(wmWindowManager *wm);
 +
 +struct ID *WM_drag_query_single_id(struct wmDragData *drag_data);
 +struct ID *WM_drag_query_single_id_of_type(struct wmDragData *drag_data, int idtype);
 +struct Collection *WM_drag_query_single_collection(struct wmDragData *drag_data);
 +struct Material *WM_drag_query_single_material(struct wmDragData *drag_data);
 +struct Object *WM_drag_query_single_object(struct wmDragData *drag_data);
 +const char *WM_drag_query_single_path(struct wmDragData *drag_data);
 +const char *WM_drag_query_single_path_of_types(struct wmDragData *drag_data, int types);
 +const char *WM_drag_query_single_path_text(struct wmDragData *drag_data);
 +const char *WM_drag_query_single_path_maybe_text(struct wmDragData *drag_data);
 +const char *WM_drag_query_single_path_image(struct wmDragData *drag_data);
 +const char *WM_drag_query_single_path_movie(struct wmDragData *drag_data);
 +const char *WM_drag_query_single_path_sound(struct wmDragData *drag_data);
 +const char *WM_drag_query_single_path_image_or_movie(struct wmDragData *drag_data);
 +struct ListBase *WM_drag_query_collection_children(struct wmDragData *drag_data);
 +bool WM_drag_query_single_color(struct wmDragData *drag_data,
 +                                float *r_color,
 +                                bool *r_gamma_corrected);
 +
 +typedef void (*wmDropTargetSetProps)(struct wmDragData *, struct PointerRNA *);
 +
 +enum DropTargetSize {
 +  DROP_TARGET_SIZE_BUT,
 +  DROP_TARGET_SIZE_OUTLINER_ROW,
 +  DROP_TARGET_SIZE_VISIBLE_OBJECT,
 +  DROP_TARGET_SIZE_REGION,
 +  DROP_TARGET_SIZE_AREA,
 +  DROP_TARGET_SIZE_WINDOW,
 +  DROP_TARGET_SIZE_MAX,
 +};
 +
 +void WM_drop_target_propose(struct wmDropTargetFinder *finder, struct wmDropTarget *target);
 +void WM_drop_target_propose__template_1(struct wmDropTargetFinder *finder,
 +                                        enum DropTargetSize size,
 +                                        const char *ot_idname,
 +                                        const char *tooltip,
 +                                        wmDropTargetSetProps set_properties);
 +void WM_drop_target_propose__template_2(struct wmDropTargetFinder *finder,
 +                                        enum DropTargetSize size,
 +                                        const char *ot_idname,
 +                                        const char *tooltip,
 +                                        wmDropTargetSetProps set_properties,
 +                                        short context);
 +
 +struct wmDropTarget *WM_drop_target_new(enum DropTargetSize size,
 +                                        char *ot_idname,
 +                                        char *tooltip,
 +                                        wmDropTargetSetProps set_properties,
 +                                        short context,
 +                                        bool free,
 +                                        bool free_idname,
 +                                        bool free_tooltip);
 +
 +void WM_drop_init_single_filepath(struct wmDragData *drag_data, struct PointerRNA *ptr);
 +void WM_drop_init_single_id_name(struct wmDragData *drag_data, struct PointerRNA *ptr);
  
  /* Set OpenGL viewport and scissor */
  void wmViewport(const struct rcti *rect);
diff --cc source/blender/windowmanager/intern/wm_dragdrop.c
index 22084824996,e2462bb59b1..8138c5b6f05
--- a/source/blender/windowmanager/intern/wm_dragdrop.c
+++ b/source/blender/windowmanager/intern/wm_dragdrop.c
@@@ -35,17 -33,16 +35,18 @@@
  #include "BLT_translation.h"
  
  #include "BLI_blenlib.h"
 +#include "BLI_math_vector.h"
  
- #include "BIF_gl.h"
  #include "BIF_glutil.h"
  
  #include "BKE_context.h"
  #include "BKE_idcode.h"
 +#include "BKE_screen.h"
  
+ #include "GPU_glew.h"
  #include "GPU_shader.h"
  #include "GPU_state.h"
+ #include "GPU_viewport.h"
  
  #include "IMB_imbuf_types.h"
  
diff --cc source/blender/windowmanager/intern/wm_event_system.c
index 99f03b57a40,ba1f34478ed..0c6177b8383
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@@ -172,18 -166,7 +164,14 @@@ static void wm_event_free_customdata_if
        }
      }
    }
 +  event->customdata = NULL;
 +  event->customdatafree = false;
 +}
 +
 +void wm_event_free(wmEvent *event)
 +{
 +  wm_event_free_customdata_if_necessary(event);
  
-   if (event->tablet_data) {
-     MEM_freeN((void *)event->tablet_data);
-   }
- 
    MEM_freeN(event);
  }



More information about the Bf-blender-cvs mailing list