[Bf-blender-cvs] [a6a6c49] wiggly-widgets: Fix some registration issues, also add scale property for sequencer backdrop widget.
Antony Riakiotakis
noreply at git.blender.org
Wed Dec 10 19:24:35 CET 2014
Commit: a6a6c493988da78ac14390498cb3c671073fd2c1
Author: Antony Riakiotakis
Date: Wed Dec 10 19:24:28 2014 +0100
Branches: wiggly-widgets
https://developer.blender.org/rBa6a6c493988da78ac14390498cb3c671073fd2c1
Fix some registration issues, also add scale property for sequencer
backdrop widget.
===================================================================
M source/blender/editors/space_sequencer/sequencer_draw.c
M source/blender/editors/space_sequencer/sequencer_view.c
M source/blender/windowmanager/intern/wm_widgets.c
===================================================================
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index faace3b..3cbcd2b 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -1177,8 +1177,6 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
-
- WM_widgets_draw(C, ar->widgetmaps.first);
}
glBegin(GL_QUADS);
@@ -1233,7 +1231,6 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
-
}
glBindTexture(GL_TEXTURE_2D, last_texid);
@@ -1252,6 +1249,8 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
IMB_freeImBuf(ibuf);
if (draw_backdrop) {
+ UI_view2d_view_restore(C);
+ WM_widgets_draw(C, ar->widgetmaps.first);
return;
}
diff --git a/source/blender/editors/space_sequencer/sequencer_view.c b/source/blender/editors/space_sequencer/sequencer_view.c
index c978be7..3691ca1 100644
--- a/source/blender/editors/space_sequencer/sequencer_view.c
+++ b/source/blender/editors/space_sequencer/sequencer_view.c
@@ -262,6 +262,7 @@ static void widgetgroup_backdrop_draw(const struct bContext *C, struct wmWidgetG
wmWidget *cage = WIDGET_rect_transform_new(wgroup, WIDGET_RECT_TRANSFORM_STYLE_SCALE_UNIFORM |
WIDGET_RECT_TRANSFORM_STYLE_TRANSLATE, ibuf->x, ibuf->y);
WM_widget_property(cage, RECT_TRANSFORM_SLOT_OFFSET, op->ptr, "offset");
+ WM_widget_property(cage, RECT_TRANSFORM_SLOT_SCALE, op->ptr, "scale");
IMB_freeImBuf(ibuf);
}
@@ -284,14 +285,8 @@ static int sequencer_backdrop_transform_modal(bContext *C, wmOperator *op, const
case EVT_WIDGET_UPDATE:
break;
- case LEFTMOUSE:
- if (event->val == KM_DBL_CLICK)
- /* remove the widgetgroup before exiting */
- WM_widgetgrouptype_unregister(CTX_data_main(C), op->customdata);
- return OPERATOR_FINISHED;
- break;
-
case RETKEY:
+ WM_widgetgrouptype_unregister(CTX_data_main(C), op->customdata);
return OPERATOR_FINISHED;
}
@@ -316,5 +311,6 @@ void SEQUENCER_OT_backdrop_transform(struct wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
RNA_def_float_array(ot->srna, "offset", 2, default_offset, FLT_MIN, FLT_MAX, "Offset", "Offset of the backdrop", FLT_MIN, FLT_MAX);
+ RNA_def_float(ot->srna, "scale", 1.0f, 0.0f, FLT_MAX, "Scale", "Scale of the backdrop", 0.0f, FLT_MAX);
}
diff --git a/source/blender/windowmanager/intern/wm_widgets.c b/source/blender/windowmanager/intern/wm_widgets.c
index 37b17b0..1522eae 100644
--- a/source/blender/windowmanager/intern/wm_widgets.c
+++ b/source/blender/windowmanager/intern/wm_widgets.c
@@ -144,6 +144,7 @@ struct wmWidgetGroupType *WM_widgetgrouptype_new(
/* just add here, drawing will occur on next update */
BLI_addtail(&wmap->widgetgroups, wgroup);
+ wm_widgetmap_set_highlighted_widget(wmap, NULL, NULL, 0);
ED_region_tag_redraw(ar);
}
}
@@ -636,8 +637,6 @@ wmWidget *wm_widget_find_highlighted(struct wmWidgetMap *wmap, bContext *C, cons
void wm_widgetmap_set_highlighted_widget(struct wmWidgetMap *wmap, struct bContext *C, struct wmWidget *widget, unsigned char part)
{
if (widget != wmap->highlighted_widget || (widget && part != widget->highlighted_part)) {
- ARegion *ar = CTX_wm_region(C);
-
if (wmap->highlighted_widget) {
wmap->highlighted_widget->flag &= ~WM_WIDGET_HIGHLIGHT;
wmap->highlighted_widget->highlighted_part = 0;
@@ -650,8 +649,11 @@ void wm_widgetmap_set_highlighted_widget(struct wmWidgetMap *wmap, struct bConte
widget->highlighted_part = part;
}
- /* tag the region for redraw */
- ED_region_tag_redraw(ar);
+ if (C) {
+ ARegion *ar = CTX_wm_region(C);
+ /* tag the region for redraw */
+ ED_region_tag_redraw(ar);
+ }
}
}
@@ -819,10 +821,12 @@ void WM_widgetgrouptype_unregister(Main *bmain, wmWidgetGroupType *wgrouptype)
for (ar = lb->first; ar; ar = ar->next) {
wmWidgetMap *wmap;
for (wmap = ar->widgetmaps.first; wmap; wmap = wmap->next) {
- wmWidgetGroup *wgroup;
- for (wgroup = wmap->widgetgroups.first; wgroup; wgroup = wgroup->next) {
+ wmWidgetGroup *wgroup, *wgroup_tmp;
+ for (wgroup = wmap->widgetgroups.first; wgroup; wgroup = wgroup_tmp) {
+ wgroup_tmp = wgroup->next;
if (wgroup->type == wgrouptype) {
wm_widgetgroup_free(wmap, wgroup);
+ ED_region_tag_redraw(ar);
}
}
}
More information about the Bf-blender-cvs
mailing list