summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/Makefile.am1
-rw-r--r--gtk/gtkpopover.c4
-rw-r--r--gtk/gtkpopoverprivate.h29
-rw-r--r--gtk/gtkwindow.c4
4 files changed, 36 insertions, 2 deletions
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index e9d01ee0ef..6c4632eb07 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -625,6 +625,7 @@ gtk_private_h_sources = \
gtkorientableprivate.h \
gtkpango.h \
gtkpathbar.h \
+ gtkpopoverprivate.h \
gtkprintoperation-private.h \
gtkprintutils.h \
gtkprivate.h \
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index b660a904b4..0acb1337b9 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -78,6 +78,7 @@
#include <gdk/gdk.h>
#include <cairo-gobject.h>
#include "gtkpopover.h"
+#include "gtkpopoverprivate.h"
#include "gtktypebuiltins.h"
#include "gtkmain.h"
#include "gtkwindowprivate.h"
@@ -143,7 +144,6 @@ struct _GtkPopoverPrivate
static GQuark quark_widget_popovers = 0;
static guint signals[N_SIGNALS] = { 0 };
-static void gtk_popover_update_position (GtkPopover *popover);
static void gtk_popover_update_relative_to (GtkPopover *popover,
GtkWidget *relative_to);
@@ -761,7 +761,7 @@ opposite_position (GtkPositionType pos)
}
}
-static void
+void
gtk_popover_update_position (GtkPopover *popover)
{
GtkPopoverPrivate *priv = popover->priv;
diff --git a/gtk/gtkpopoverprivate.h b/gtk/gtkpopoverprivate.h
new file mode 100644
index 0000000000..ab61eb993e
--- /dev/null
+++ b/gtk/gtkpopoverprivate.h
@@ -0,0 +1,29 @@
+/* GTK - The GIMP Toolkit
+ * Copyright © 2014 Carlos Garnacho <carlosg@gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GTK_POPOVER_PRIVATE_H__
+#define __GTK_POPOVER_PRIVATE_H__
+
+#include "gtkpopover.h"
+
+G_BEGIN_DECLS
+
+void gtk_popover_update_position (GtkPopover *popover);
+
+G_END_DECLS
+
+#endif /* __GTK_POPOVER_PRIVATE_H__ */
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index e7b336b201..4da45b0694 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -56,6 +56,7 @@
#include "gtkbutton.h"
#include "gtkheaderbar.h"
#include "gtkheaderbarprivate.h"
+#include "gtkpopoverprivate.h"
#include "a11y/gtkwindowaccessible.h"
#include "a11y/gtkcontaineraccessibleprivate.h"
#include "gtkapplicationprivate.h"
@@ -7165,6 +7166,9 @@ popover_size_allocate (GtkWidget *widget,
if (!popover->window)
return;
+ if (GTK_IS_POPOVER (popover->widget))
+ gtk_popover_update_position (GTK_POPOVER (popover->widget));
+
popover_get_rect (popover, window, &rect);
gdk_window_move_resize (popover->window, rect.x, rect.y,
rect.width, rect.height);