mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
intel/tools: fix initial position of window in aubinator viewer
Currently position is set before widgets are sized by gtk and calculation can get wrong results where window is positioned offscreen. Patch fixes this by setting aubfile window position as 0,0 only when size_allocate has been called to the widget. Now window is always positioned to 0,0 if imgui.ini is missing. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
parent
eaa718588e
commit
30580640f2
1 changed files with 17 additions and 4 deletions
|
|
@ -1050,8 +1050,7 @@ show_aubfile_window(void)
|
|||
|
||||
list_inithead(&window->parent_link);
|
||||
window->size = ImVec2(-1, 250);
|
||||
window->position =
|
||||
ImVec2(0, ImGui::GetIO().DisplaySize.y - window->size.y);
|
||||
window->position = ImVec2(0, 0);
|
||||
window->opened = true;
|
||||
window->display = display_aubfile_window;
|
||||
window->destroy = NULL;
|
||||
|
|
@ -1143,6 +1142,21 @@ unrealize_area(GtkGLArea *area)
|
|||
ImGui::DestroyContext();
|
||||
}
|
||||
|
||||
static void
|
||||
size_allocate_area(GtkGLArea *area,
|
||||
GdkRectangle *allocation,
|
||||
gpointer user_data)
|
||||
{
|
||||
if (!gtk_widget_get_realized(GTK_WIDGET(area)))
|
||||
return;
|
||||
|
||||
/* We want to catch only initial size allocate. */
|
||||
g_signal_handlers_disconnect_by_func(area,
|
||||
(gpointer) size_allocate_area,
|
||||
user_data);
|
||||
show_aubfile_window();
|
||||
}
|
||||
|
||||
static void
|
||||
print_help(const char *progname, FILE *file)
|
||||
{
|
||||
|
|
@ -1198,12 +1212,11 @@ int main(int argc, char *argv[])
|
|||
g_signal_connect(gl_area, "render", G_CALLBACK(repaint_area), NULL);
|
||||
g_signal_connect(gl_area, "realize", G_CALLBACK(realize_area), NULL);
|
||||
g_signal_connect(gl_area, "unrealize", G_CALLBACK(unrealize_area), NULL);
|
||||
g_signal_connect(gl_area, "size_allocate", G_CALLBACK(size_allocate_area), NULL);
|
||||
gtk_container_add(GTK_CONTAINER(context.gtk_window), gl_area);
|
||||
|
||||
gtk_widget_show_all(context.gtk_window);
|
||||
|
||||
show_aubfile_window();
|
||||
|
||||
gtk_main();
|
||||
|
||||
free(context.xml_path);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue