137Fermer139
Kevin KoflerLe 05/07/2007 à 22:20
Twindruff (./131) :
Ah bah j'ai installé la 2.6.10-rc1 qui était conseillée sur le site de tiemu en fait

Comme déjà dit, on conseille actuellement celle-là parce que c'est la dernière qui marche sur les anciennes versions de Window$.
Twindruff (./132) :
Ca le fait toujours avec la 2.10.11, la sauvegarde de la position des fenêtres est gérée de base par GTK ?

Normalement oui, mais c'est bogué. Mais je soupçonne que notre workaround pour ce problème n'est pas parfait non plus:
/* 
	This function exists because GDK retrieves client coordinates, not window ones.
	(Kevin: GDK uses GetClientRect and ClientToScreen).
	We need that to save and restore windows position.
*/
void window_get_rect(GtkWidget *widget, GdkRect *rect)
{
	gtk_window_get_size(GTK_WINDOW(widget), &rect->w, &rect->h);
	gdk_window_get_position(widget->window, &rect->x, &rect->y);

#ifdef __WIN32__
	{
		BOOL bResult;
		HWND hWnd = GDK_WINDOW_HWND(widget->window);
		RECT lpRect;

		bResult = GetWindowRect(hWnd, &lpRect);

		rect->x = lpRect.left;
		rect->y = lpRect.top;
	}
#endif
}

Ton bogue vient probablement de ce code. Les coordonnées sont ensuite sauvegardées dans les options, puis utilisées pour positionner la fenêtre GTK+:
		gtk_window_resize(GTK_WINDOW(dbgw.heap), options3.heap.rect.w, options3.heap.rect.h);
		gtk_window_move(GTK_WINDOW(dbgw.heap), options3.heap.rect.x, options3.heap.rect.y);


Peut-être qu'il se trouve que quelqu'un ici s'y connaît l'API Win32 suffisamment bien pour voir tout de suite comment corriger ça? smile

[EDIT: Raaah, pourquoi le tag code que tous les autres forums utilisent n'est-il pas accepté? sad]