summaryrefslogtreecommitdiff
path: root/gtk/gtkwindow.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2016-11-06 23:47:56 +0100
committerBenjamin Otte <otte@redhat.com>2016-11-06 23:47:56 +0100
commit24d0baec38545feaf3e73d536fe143547e8d7f90 (patch)
tree3ed46b88a4f663f21079314cb60e6546bbf2a88e /gtk/gtkwindow.c
parent13d8ac83eefc3c939902e05c755b0dedd28ed975 (diff)
downloadgtk+-24d0baec38545feaf3e73d536fe143547e8d7f90.tar.gz
API: gdk: Add gdk_window_new_popup()
... and use it.
Diffstat (limited to 'gtk/gtkwindow.c')
-rw-r--r--gtk/gtkwindow.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 764cbf5ff7..28b68af933 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -6858,9 +6858,9 @@ gtk_window_realize (GtkWidget *widget)
GtkAllocation child_allocation;
GtkWindow *window;
GdkWindow *gdk_window;
- GdkWindowAttr attributes;
GtkBorder window_border;
GtkWindowPrivate *priv;
+ gint event_mask;
gint i;
GList *link;
@@ -6931,30 +6931,26 @@ gtk_window_realize (GtkWidget *widget)
}
else
{
- attributes.wclass = GDK_INPUT_OUTPUT;
-
_gtk_widget_get_allocation (widget, &allocation);
- attributes.width = allocation.width;
- attributes.height = allocation.height;
- attributes.event_mask = gtk_widget_get_events (widget);
- attributes.event_mask |= (GDK_EXPOSURE_MASK |
- GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK |
- GDK_BUTTON_MOTION_MASK |
- GDK_KEY_PRESS_MASK |
- GDK_KEY_RELEASE_MASK |
- GDK_ENTER_NOTIFY_MASK |
- GDK_LEAVE_NOTIFY_MASK |
- GDK_FOCUS_CHANGE_MASK |
- GDK_STRUCTURE_MASK);
+ event_mask = gtk_widget_get_events (widget);
+ event_mask |= (GDK_EXPOSURE_MASK |
+ GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_RELEASE_MASK |
+ GDK_BUTTON_MOTION_MASK |
+ GDK_KEY_PRESS_MASK |
+ GDK_KEY_RELEASE_MASK |
+ GDK_ENTER_NOTIFY_MASK |
+ GDK_LEAVE_NOTIFY_MASK |
+ GDK_FOCUS_CHANGE_MASK |
+ GDK_STRUCTURE_MASK);
if (priv->decorated && priv->client_decorated)
- attributes.event_mask |= GDK_POINTER_MOTION_MASK;
+ event_mask |= GDK_POINTER_MOTION_MASK;
switch (priv->type)
{
case GTK_WINDOW_TOPLEVEL:
gdk_window = gdk_window_new_toplevel (gtk_widget_get_display (widget),
- attributes.event_mask,
+ event_mask,
allocation.width,
allocation.height);
break;
@@ -6964,15 +6960,15 @@ gtk_window_realize (GtkWidget *widget)
GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (widget)))
{
gdk_window = gdk_wayland_window_new_subsurface (gtk_widget_get_display (widget),
- attributes.event_mask,
+ event_mask,
&allocation);
}
else
#endif
{
- attributes.window_type = GDK_WINDOW_TEMP;
- gdk_window = gdk_window_new (gdk_screen_get_root_window (_gtk_window_get_screen (window)),
- &attributes, 0);
+ gdk_window = gdk_window_new_popup (gtk_widget_get_display (widget),
+ event_mask,
+ &allocation);
}
break;
default: