97580 Add EmbedPrivate::GetSize to match Resize

and don't call Resize if the allocation didn't
change dimensions.
Patch by tommi.komulainen@iki.fi r=blizzard sr=bryner
This commit is contained in:
marco%gnome.org 2005-01-20 10:26:44 +00:00
Родитель ca9204cc28
Коммит 286e9923db
3 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@ -336,6 +336,13 @@ EmbedPrivate::Resize(PRUint32 aWidth, PRUint32 aHeight)
0, 0, aWidth, aHeight);
}
void
EmbedPrivate::GetSize(PRInt32 *aWidth, PRInt32 *aHeight)
{
mWindow->GetDimensions(nsIEmbeddingSiteWindow::DIM_FLAGS_SIZE_INNER,
nsnull, nsnull, aWidth, aHeight);
}
void
EmbedPrivate::Destroy(void)
{

Просмотреть файл

@ -78,6 +78,7 @@ class EmbedPrivate {
void Show (void);
void Hide (void);
void Resize (PRUint32 aWidth, PRUint32 aHeight);
void GetSize (PRInt32 *aWidth, PRInt32 *aHeight);
void Destroy (void);
void SetURI (const char *aURI);
void LoadCurrentURI (void);

Просмотреть файл

@ -710,10 +710,16 @@ gtk_moz_embed_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
if (GTK_WIDGET_REALIZED(widget))
{
PRInt32 width, height;
embedPrivate->GetSize (&width, &height);
gdk_window_move_resize(widget->window,
allocation->x, allocation->y,
allocation->width, allocation->height);
embedPrivate->Resize(allocation->width, allocation->height);
if ((allocation->width != width) || (allocation->height != height))
embedPrivate->Resize(allocation->width, allocation->height);
}
}