gui fixes, vst3 checkSizeConstraints
This commit is contained in:
parent
4fcaedf689
commit
dedff39372
@ -1197,8 +1197,19 @@ static Steinberg_tresult plugViewCheckSizeConstraint(void* thisInterface, struct
|
|||||||
(void)rect;
|
(void)rect;
|
||||||
|
|
||||||
TRACE("plugView chekSizeContraint %p\n", thisInterface);
|
TRACE("plugView chekSizeContraint %p\n", thisInterface);
|
||||||
//TODO
|
# if DATA_UI_USER_RESIZABLE
|
||||||
|
return Steinberg_kResultTrue;
|
||||||
|
# else
|
||||||
|
# ifdef __linux__
|
||||||
|
plugView *v = (plugView *)((char *)thisInterface - offsetof(plugView, vtblIPlugView));
|
||||||
|
|
||||||
|
XWindowAttributes attr;
|
||||||
|
XGetWindowAttributes(v->display, (Window)(*((char **)v->ui)), &attr);
|
||||||
|
rect->right = rect->left + attr.width;
|
||||||
|
rect->bottom = rect->top + attr.height;
|
||||||
|
# endif
|
||||||
return Steinberg_kResultFalse;
|
return Steinberg_kResultFalse;
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
# ifdef __linux__
|
# ifdef __linux__
|
||||||
|
@ -196,6 +196,7 @@ static plugin_ui *plugin_ui_create(char has_parent, void *parent, plugin_ui_call
|
|||||||
instance->view = puglNewView(instance->world);
|
instance->view = puglNewView(instance->world);
|
||||||
puglSetSizeHint(instance->view, PUGL_DEFAULT_SIZE, WIDTH, HEIGHT);
|
puglSetSizeHint(instance->view, PUGL_DEFAULT_SIZE, WIDTH, HEIGHT);
|
||||||
puglSetViewHint(instance->view, PUGL_RESIZABLE, PUGL_TRUE);
|
puglSetViewHint(instance->view, PUGL_RESIZABLE, PUGL_TRUE);
|
||||||
|
puglSetHandle(instance->view, instance);
|
||||||
puglSetBackend(instance->view, puglCairoBackend());
|
puglSetBackend(instance->view, puglCairoBackend());
|
||||||
PuglRect frame = { 0, 0, WIDTH, HEIGHT };
|
PuglRect frame = { 0, 0, WIDTH, HEIGHT };
|
||||||
puglSetFrame(instance->view, frame);
|
puglSetFrame(instance->view, frame);
|
||||||
@ -207,10 +208,10 @@ static plugin_ui *plugin_ui_create(char has_parent, void *parent, plugin_ui_call
|
|||||||
puglFreeWorld(instance->world);
|
puglFreeWorld(instance->world);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
puglShow(instance->view, PUGL_SHOW_RAISE);
|
|
||||||
puglSetHandle(instance->view, instance);
|
|
||||||
instance->widget = (void *)puglGetNativeView(instance->view);
|
instance->widget = (void *)puglGetNativeView(instance->view);
|
||||||
instance->cbs = *cbs;
|
instance->cbs = *cbs;
|
||||||
|
puglSetFrame(instance->view, frame); // Intentionally duplicated because of ardour/lv2/mac strange event order call
|
||||||
|
puglShow(instance->view, PUGL_SHOW_RAISE); // Cocoa calls events at this so it's better this happens late
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user