diff options
-rw-r--r-- | gtk/Makefile.am | 1 | ||||
-rw-r--r-- | gtk/gtkpopover.c | 4 | ||||
-rw-r--r-- | gtk/gtkpopoverprivate.h | 29 | ||||
-rw-r--r-- | gtk/gtkwindow.c | 4 |
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); |